|
19530
|
834
|
10
|
2026-05-11T12:59:53.134378+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778504393134_m1.jpg...
|
Code
|
Review rate limit handli… — app
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 12 pending changes
12
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php
SaveTranscription.php
SetupLayout.php
SyncActivity.php
SyncFieldMetadata.php
SyncHubspotObjects.php
SyncLeads.php
SyncObjects.php
SyncOpportunitiesJob.php
SyncOpportunity.php
SyncProfileMetadata.php
SyncTeamFieldsJob.php
SyncTeamMetadata.php
UpdateOpportunitySpecifications.php
UpdateStage.php
DealRisks
Mailbox
MeetingBot
Middleware
HandleHubspotRateLimit.php
RateLimited.php
Streaming
Team
Telephony
User
BaseProcessingJob.php
DummyJob.php
ImportRecallAIRecordingsJob.php
ImportRemoteTrackJob.php
Job.php
JobDispatcher.php
JobDispatcherInterface.php
PurgeSoftDeletedOpportunityJob.php
SqsVisibilityControl.php
Listeners
Mail
Models
Activity
Ai
AskAnything
Calendar
Connection
Crm
Jobs
app
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
MySQL Section
MYSQL
MYSQL
MatchActivityCrmData.php, Editor Group 1
RateLimitException.php, Editor Group 1
HandleHubspotRateLimit.php, Editor Group 1
Client.php, Editor Group 1
HubspotPaginationService.php, Editor Group 1
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Middleware;
use Illuminate\Support\Facades\Log;
use Jiminny\Exceptions\RateLimitException;
/**
* Job middleware that catches RateLimitException from HubSpot API calls
* and releases the job back to the queue with the appropriate delay.
*/
class HandleHubspotRateLimit
{
private const int MAX_RETRY_DELAY = 600;
private const int MIN_RETRY_DELAY = 1;
private const int JITTER_SECONDS = 5;
public function handle(object $job, callable $next): void
{
try {
$next($job);
} catch (RateLimitException $e) {
$delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));
// Add jitter to prevent thundering herd problem by randomizing retry times
$delay += random_int(0, self::JITTER_SECONDS);
$attempts = $job->attempts();
if ($attempts <= 3 || $attempts % 10 === 0) {
Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [
'job_class' => $job::class,
'attempts' => $attempts,
'retry_after' => $e->getRetryAfter(),
'delay' => $delay,
]);
}
$job->release($delay);
}
}
}
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Middleware;
use Illuminate\Support\Facades\Log;
use Jiminny\Exceptions\RateLimitException;
/**
* Job middleware that catches RateLimitException from HubSpot API calls
* and releases the job back to the queue with the appropriate delay.
*/
class HandleHubspotRateLimit
{
private const int MAX_RETRY_DELAY = 600;
private const int MIN_RETRY_DELAY = 1;
private const int JITTER_SECONDS = 5;
public function handle(object $job, callable $next): void
{
try {
$next($job);
} catch (RateLimitException $e) {
$delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));
// Add jitter to prevent thundering herd problem by randomizing retry times
$delay += random_int(0, self::JITTER_SECONDS);
$attempts = $job->attempts();
if ($attempts <= 3 || $attempts % 10 === 0) {
Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [
'job_class' => $job::class,
'attempts' => $attempts,
'retry_after' => $e->getRetryAfter(),
'delay' => $delay,
]);
}
$job->release($delay);
}
}
}
Review rate limit handli…, Editor Group 2
remote
app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...
JY-20725-handle-HS-search-rate-limit*
app (Git) - Synchronize Changes
Errors: 6, Warnings: 9, Infos: 2
6
9
2
Notifications
key, PHP extension: Premium features not active.
Sign In
Sign In
Diff editor
Clear
Review rate limit handling for HubSpot job queue
Session history
New session
Message actions
RateLimitException.php#9-9
RateLimitException.php#9-9
Reveiw the diff. Mostly
@app/Jobs/Crm/MatchActivityCrmData.php
,
@app/Exceptions/RateLimitException.php
,
@app/Jobs/Middleware/HandleHubspotRateLimit.php
,
@app/Services/Crm/Hubspot/Client.php
and
@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php
. The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?
Thought for 5s
Thought for 5s
I'll review the implementation carefully. Let me first check how
RateLimitException
is used elsewhere and look at the test files and
PaginationState
.
Bash
Find all usages of RateLimitException outside the changed files
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/app --include="*.php" | grep -v "HandleHubspotRateLimit\|MatchActivityCrmData\|Client.php\|RateLimitException.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:17:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:68: RateLimitException |
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:15:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:58: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:19:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:76: RateLimitException |
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:50: * @throws RateLimitException When rate limit is hit
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:195: // RateLimitException and other exceptions are re-thrown as-is
Read
PaginationState.php
PaginationState.php
Read
HandleHubspotRateLimitTest.php
HandleHubspotRateLimitTest.php
Bash
Check how RateLimitException is used in GenerateActionItemsJob
IN
grep -rn "RateLimitException\|LogicException\|RuntimeException" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -20
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
Bash
Find all catch blocks or instanceof checks for RateLimitException
IN
grep -rn "catch.*RateLimitException\|instanceof RateLimitException" /Users/lukas/jiminny/app/app --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:11: * Job middleware that catches RateLimitException from HubSpot API calls
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:24: } catch (RateLimitException $e) {
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:149: if (! $e instanceof RateLimitException) {
Bash
Find all test references to RateLimitException
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/tests --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:13:#[CoversClass(RateLimitException::class)]
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:14:class RateLimitExceptionTest extends TestCase
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:18: $exception = new RateLimitException();
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:28: $exception = new RateLimitException('Hubspot rate limit', 30, $previous);
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:52: $exception = new RateLimitException('test', $input);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:10:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:49: public function testPropagatesNonRateLimitExceptions(): void
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:103: throw new RateLimitException('rate limited', $retryAfter);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:150: throw new RateLimitException('rate limited', 1);
Bash
Check retry/failure handling in GenerateActionItemsJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -30
Copy code to clipboard
OUT
13:use Jiminny\Exceptions\RateLimitException;
51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
56: $this->release(30);
Bash
Check retry/failure handling in GenerateAiCallScoringJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php | head -30
Copy code to clipboard
OUT
17:use Jiminny\Exceptions\RateLimitException;
68: RateLimitException |
75: $this->release(30);
Bash
Check retry config in MatchActivityCrmData
IN
grep -n "retryAfter\|RETRY_WINDOW\|retryUntil\|maxTries" /Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php
Copy code to clipboard
OUT
34: private const int RETRY_WINDOW_MINUTES = 30;
45: public function retryUntil(): \DateTimeInterface
47: return now()->addMinutes(self::RETRY_WINDOW_MINUTES);
77: return self::RETRY_WINDOW_MINUTES * 60 + 60;
Bash
Check the cache key format
IN
grep -n "getRateLimitCacheKey\|hubspot:ratelimit" /Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Client.php
Copy code to clipboard
OUT
78: $cacheKey = $this->getRateLimitCacheKey();
110: private function getRateLimitCacheKey(): string
112: return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());
Bash
Find other jobs that might use the rate limit middleware
IN
grep -rn "class.*Middleware\|HandleHubspotRateLimit" /Users/lukas/jiminny/app/app/Jobs --include="*.php" | grep -v "HandleHubspotRateLimit.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:18:use Jiminny\Jobs\Middleware\HandleHubspotRateLimit;
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:42: return [new HandleHubspotRateLimit()];
Read
HubspotClientInterface.php
HubspotClientInterface.php
Thought for 73s
Thought for 73s
Now I have a complete picture. Here's my full analysis:
Review Summary
Review Summary
RuntimeException vs LogicException — Safe ✓
RuntimeException
vs
LogicException
— Safe ✓
The change is semantically correct and won't break anything.
LogicException
is for programmer errors (invalid arguments, contract violations). A rate limit from an external API is a runtime condition —
RuntimeException
is the right parent. All callers catch
RateLimitException
by name explicitly (union catches in
GenerateActionItemsJob
,
GenerateAiCallScoringJob
,
SummarizeTranscriptionJob
,
GenerateAiActivityTypeJob
) or check
instanceof RateLimitException
— none relies on the parent class type, so nothing breaks.
Issue 1 — Circuit breaker stores stale delay (most important bug)
Issue 1 — Circuit breaker stores stale delay (most important bug)
Client.php:94...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Explorer (⇧⌘E)","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":true},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Search (⇧⌘F)","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Source Control (⌃⇧G) - 12 pending changes","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"12","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Run and Debug (⇧⌘D)","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Remote Explorer","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Extensions (⇧⌘X) - 2 require update","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Testing","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Claude Code","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"EXPLORER","depth":17,"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"EXPLORER","depth":18,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Explorer Section: app","depth":21,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXStaticText","text":"","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"Explorer Section: app","depth":22,"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"APP","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CheckAndRetryRemoteMatch.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateFollowupActivity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateNotes.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivitiesToNewOpportunity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivityCrmData.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"NoteObject.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SaveActivity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SaveTranscription.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SetupLayout.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncActivity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncFieldMetadata.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncHubspotObjects.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncLeads.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncObjects.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncOpportunitiesJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncOpportunity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncProfileMetadata.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncTeamFieldsJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncTeamMetadata.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"UpdateOpportunitySpecifications.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"UpdateStage.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"DealRisks","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mailbox","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MeetingBot","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Middleware","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"HandleHubspotRateLimit.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"RateLimited.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Streaming","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Team","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Telephony","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"User","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"BaseProcessingJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"DummyJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"ImportRecallAIRecordingsJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"ImportRemoteTrackJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Job.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JobDispatcher.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JobDispatcherInterface.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"PurgeSoftDeletedOpportunityJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SqsVisibilityControl.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Listeners","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mail","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Models","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Activity","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Ai","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"AskAnything","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Calendar","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Connection","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Crm","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Jobs","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"app","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Outline Section","depth":21,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"OUTLINE","depth":22,"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"OUTLINE","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Timeline Section","depth":21,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"TIMELINE","depth":22,"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"TIMELINE","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"MySQL Section","depth":21,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"MYSQL","depth":22,"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"MYSQL","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"MatchActivityCrmData.php, Editor Group 1","depth":28,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"RateLimitException.php, Editor Group 1","depth":28,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"HandleHubspotRateLimit.php, Editor Group 1","depth":28,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXRadioButton","text":"Client.php, Editor Group 1","depth":28,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"HubspotPaginationService.php, Editor Group 1","depth":28,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Middleware;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Exceptions\\RateLimitException;\n\n/**\n * Job middleware that catches RateLimitException from HubSpot API calls\n * and releases the job back to the queue with the appropriate delay.\n */\nclass HandleHubspotRateLimit\n{\n private const int MAX_RETRY_DELAY = 600;\n private const int MIN_RETRY_DELAY = 1;\n private const int JITTER_SECONDS = 5;\n\n public function handle(object $job, callable $next): void\n {\n try {\n $next($job);\n } catch (RateLimitException $e) {\n $delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));\n // Add jitter to prevent thundering herd problem by randomizing retry times\n $delay += random_int(0, self::JITTER_SECONDS);\n\n $attempts = $job->attempts();\n if ($attempts <= 3 || $attempts % 10 === 0) {\n Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [\n 'job_class' => $job::class,\n 'attempts' => $attempts,\n 'retry_after' => $e->getRetryAfter(),\n 'delay' => $delay,\n ]);\n }\n\n $job->release($delay);\n }\n }\n}","depth":28,"on_screen":true,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Middleware;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Exceptions\\RateLimitException;\n\n/**\n * Job middleware that catches RateLimitException from HubSpot API calls\n * and releases the job back to the queue with the appropriate delay.\n */\nclass HandleHubspotRateLimit\n{\n private const int MAX_RETRY_DELAY = 600;\n private const int MIN_RETRY_DELAY = 1;\n private const int JITTER_SECONDS = 5;\n\n public function handle(object $job, callable $next): void\n {\n try {\n $next($job);\n } catch (RateLimitException $e) {\n $delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));\n // Add jitter to prevent thundering herd problem by randomizing retry times\n $delay += random_int(0, self::JITTER_SECONDS);\n\n $attempts = $job->attempts();\n if ($attempts <= 3 || $attempts % 10 === 0) {\n Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [\n 'job_class' => $job::class,\n 'attempts' => $attempts,\n 'retry_after' => $e->getRetryAfter(),\n 'delay' => $delay,\n ]);\n }\n\n $job->release($delay);\n }\n }\n}","role_description":"editor","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Middleware;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Exceptions\\RateLimitException;\n\n/**\n * Job middleware that catches RateLimitException from HubSpot API calls\n * and releases the job back to the queue with the appropriate delay.\n */\nclass HandleHubspotRateLimit\n{\n private const int MAX_RETRY_DELAY = 600;\n private const int MIN_RETRY_DELAY = 1;\n private const int JITTER_SECONDS = 5;\n\n public function handle(object $job, callable $next): void\n {\n try {\n $next($job);\n } catch (RateLimitException $e) {\n $delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));\n // Add jitter to prevent thundering herd problem by randomizing retry times\n $delay += random_int(0, self::JITTER_SECONDS);\n\n $attempts = $job->attempts();\n if ($attempts <= 3 || $attempts % 10 === 0) {\n Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [\n 'job_class' => $job::class,\n 'attempts' => $attempts,\n 'retry_after' => $e->getRetryAfter(),\n 'delay' => $delay,\n ]);\n }\n\n $job->release($delay);\n }\n }\n}","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Review rate limit handli…, Editor Group 2","depth":28,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXButton","text":"remote","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JY-20725-handle-HS-search-rate-limit*","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"app (Git) - Synchronize Changes","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Errors: 6, Warnings: 9, Infos: 2","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"6","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"9","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Notifications","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"key, PHP extension: Premium features not active.","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sign In","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Sign In","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Diff editor","depth":12,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Clear","depth":12,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Review rate limit handling for HubSpot job queue","depth":19,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Session history","depth":19,"on_screen":true,"help_text":"Session history","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New session","depth":19,"on_screen":true,"help_text":"New session","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Message actions","depth":24,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"RateLimitException.php#9-9","depth":23,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"RateLimitException.php#9-9","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Reveiw the diff. Mostly","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Jobs/Crm/MatchActivityCrmData.php","depth":26,"on_screen":false,"help_text":"Open app/Jobs/Crm/MatchActivityCrmData.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Exceptions/RateLimitException.php","depth":26,"on_screen":false,"help_text":"Open app/Exceptions/RateLimitException.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Jobs/Middleware/HandleHubspotRateLimit.php","depth":26,"on_screen":false,"help_text":"Open app/Jobs/Middleware/HandleHubspotRateLimit.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Services/Crm/Hubspot/Client.php","depth":26,"on_screen":false,"help_text":"Open app/Services/Crm/Hubspot/Client.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"and","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php","depth":26,"on_screen":false,"help_text":"Open app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":". The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Thought for 5s","depth":23,"on_screen":false,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thought for 5s","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"I'll review the implementation carefully. Let me first check how","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is used elsewhere and look at the test files and","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"PaginationState","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":".","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find all usages of RateLimitException outside the changed files","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"RateLimitException\" /Users/lukas/jiminny/app/app --include=\"*.php\" | grep -v \"HandleHubspotRateLimit\\|MatchActivityCrmData\\|Client.php\\|RateLimitException.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception\n/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:17:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:68: RateLimitException |\n/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:15:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:58: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception\n/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:19:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:76: RateLimitException |\n/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:8:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:50: * @throws RateLimitException When rate limit is hit\n/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:195: // RateLimitException and other exceptions are re-thrown as-is","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"PaginationState.php","depth":24,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"PaginationState.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"HandleHubspotRateLimitTest.php","depth":24,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"HandleHubspotRateLimitTest.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check how RateLimitException is used in GenerateActionItemsJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"RateLimitException\\|LogicException\\|RuntimeException\" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -20","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find all catch blocks or instanceof checks for RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"catch.*RateLimitException\\|instanceof RateLimitException\" /Users/lukas/jiminny/app/app --include=\"*.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:11: * Job middleware that catches RateLimitException from HubSpot API calls\n/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:24: } catch (RateLimitException $e) {\n/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:149: if (! $e instanceof RateLimitException) {","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find all test references to RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"RateLimitException\" /Users/lukas/jiminny/app/tests --include=\"*.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:8:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:13:#[CoversClass(RateLimitException::class)]\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:14:class RateLimitExceptionTest extends TestCase\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:18: $exception = new RateLimitException();\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:28: $exception = new RateLimitException('Hubspot rate limit', 30, $previous);\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:52: $exception = new RateLimitException('test', $input);\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:10:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:49: public function testPropagatesNonRateLimitExceptions(): void\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:103: throw new RateLimitException('rate limited', $retryAfter);\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:150: throw new RateLimitException('rate limited', 1);","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check retry/failure handling in GenerateActionItemsJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"RateLimitException\\|retryUntil\\|backoff\\|maxExceptions\\|maxTries\\|release\\|failed\" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -30","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"13:use Jiminny\\Exceptions\\RateLimitException;\n51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception\n56: $this->release(30);","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check retry/failure handling in GenerateAiCallScoringJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"RateLimitException\\|retryUntil\\|backoff\\|maxExceptions\\|maxTries\\|release\\|failed\" /Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php | head -30","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"17:use Jiminny\\Exceptions\\RateLimitException;\n68: RateLimitException |\n75: $this->release(30);","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check retry config in MatchActivityCrmData","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"retryAfter\\|RETRY_WINDOW\\|retryUntil\\|maxTries\" /Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"34: private const int RETRY_WINDOW_MINUTES = 30;\n45: public function retryUntil(): \\DateTimeInterface\n47: return now()->addMinutes(self::RETRY_WINDOW_MINUTES);\n77: return self::RETRY_WINDOW_MINUTES * 60 + 60;","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check the cache key format","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"getRateLimitCacheKey\\|hubspot:ratelimit\" /Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Client.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"78: $cacheKey = $this->getRateLimitCacheKey();\n110: private function getRateLimitCacheKey(): string\n112: return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find other jobs that might use the rate limit middleware","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"class.*Middleware\\|HandleHubspotRateLimit\" /Users/lukas/jiminny/app/app/Jobs --include=\"*.php\" | grep -v \"HandleHubspotRateLimit.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:18:use Jiminny\\Jobs\\Middleware\\HandleHubspotRateLimit;\n/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:42: return [new HandleHubspotRateLimit()];","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"HubspotClientInterface.php","depth":24,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"HubspotClientInterface.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Thought for 73s","depth":23,"on_screen":false,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thought for 73s","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Now I have a complete picture. Here's my full analysis:","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"Review Summary","depth":22,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"Review Summary","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"RuntimeException vs LogicException — Safe ✓","depth":22,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"RuntimeException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"vs","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"LogicException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"— Safe ✓","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"The change is semantically correct and won't break anything.","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"LogicException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is for programmer errors (invalid arguments, contract violations). A rate limit from an external API is a runtime condition —","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RuntimeException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is the right parent. All callers catch","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"by name explicitly (union catches in","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"GenerateActionItemsJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"GenerateAiCallScoringJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"SummarizeTranscriptionJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"GenerateAiActivityTypeJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":") or check","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"instanceof RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"— none relies on the parent class type, so nothing breaks.","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"Issue 1 — Circuit breaker stores stale delay (most important bug)","depth":22,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"Issue 1 — Circuit breaker stores stale delay (most important bug)","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"Client.php:94","depth":23,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
5828449654167692574
|
-7290746955265952573
|
idle
|
accessibility
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 12 pending changes
12
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php
SaveTranscription.php
SetupLayout.php
SyncActivity.php
SyncFieldMetadata.php
SyncHubspotObjects.php
SyncLeads.php
SyncObjects.php
SyncOpportunitiesJob.php
SyncOpportunity.php
SyncProfileMetadata.php
SyncTeamFieldsJob.php
SyncTeamMetadata.php
UpdateOpportunitySpecifications.php
UpdateStage.php
DealRisks
Mailbox
MeetingBot
Middleware
HandleHubspotRateLimit.php
RateLimited.php
Streaming
Team
Telephony
User
BaseProcessingJob.php
DummyJob.php
ImportRecallAIRecordingsJob.php
ImportRemoteTrackJob.php
Job.php
JobDispatcher.php
JobDispatcherInterface.php
PurgeSoftDeletedOpportunityJob.php
SqsVisibilityControl.php
Listeners
Mail
Models
Activity
Ai
AskAnything
Calendar
Connection
Crm
Jobs
app
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
MySQL Section
MYSQL
MYSQL
MatchActivityCrmData.php, Editor Group 1
RateLimitException.php, Editor Group 1
HandleHubspotRateLimit.php, Editor Group 1
Client.php, Editor Group 1
HubspotPaginationService.php, Editor Group 1
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Middleware;
use Illuminate\Support\Facades\Log;
use Jiminny\Exceptions\RateLimitException;
/**
* Job middleware that catches RateLimitException from HubSpot API calls
* and releases the job back to the queue with the appropriate delay.
*/
class HandleHubspotRateLimit
{
private const int MAX_RETRY_DELAY = 600;
private const int MIN_RETRY_DELAY = 1;
private const int JITTER_SECONDS = 5;
public function handle(object $job, callable $next): void
{
try {
$next($job);
} catch (RateLimitException $e) {
$delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));
// Add jitter to prevent thundering herd problem by randomizing retry times
$delay += random_int(0, self::JITTER_SECONDS);
$attempts = $job->attempts();
if ($attempts <= 3 || $attempts % 10 === 0) {
Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [
'job_class' => $job::class,
'attempts' => $attempts,
'retry_after' => $e->getRetryAfter(),
'delay' => $delay,
]);
}
$job->release($delay);
}
}
}
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Middleware;
use Illuminate\Support\Facades\Log;
use Jiminny\Exceptions\RateLimitException;
/**
* Job middleware that catches RateLimitException from HubSpot API calls
* and releases the job back to the queue with the appropriate delay.
*/
class HandleHubspotRateLimit
{
private const int MAX_RETRY_DELAY = 600;
private const int MIN_RETRY_DELAY = 1;
private const int JITTER_SECONDS = 5;
public function handle(object $job, callable $next): void
{
try {
$next($job);
} catch (RateLimitException $e) {
$delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));
// Add jitter to prevent thundering herd problem by randomizing retry times
$delay += random_int(0, self::JITTER_SECONDS);
$attempts = $job->attempts();
if ($attempts <= 3 || $attempts % 10 === 0) {
Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [
'job_class' => $job::class,
'attempts' => $attempts,
'retry_after' => $e->getRetryAfter(),
'delay' => $delay,
]);
}
$job->release($delay);
}
}
}
Review rate limit handli…, Editor Group 2
remote
app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...
JY-20725-handle-HS-search-rate-limit*
app (Git) - Synchronize Changes
Errors: 6, Warnings: 9, Infos: 2
6
9
2
Notifications
key, PHP extension: Premium features not active.
Sign In
Sign In
Diff editor
Clear
Review rate limit handling for HubSpot job queue
Session history
New session
Message actions
RateLimitException.php#9-9
RateLimitException.php#9-9
Reveiw the diff. Mostly
@app/Jobs/Crm/MatchActivityCrmData.php
,
@app/Exceptions/RateLimitException.php
,
@app/Jobs/Middleware/HandleHubspotRateLimit.php
,
@app/Services/Crm/Hubspot/Client.php
and
@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php
. The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?
Thought for 5s
Thought for 5s
I'll review the implementation carefully. Let me first check how
RateLimitException
is used elsewhere and look at the test files and
PaginationState
.
Bash
Find all usages of RateLimitException outside the changed files
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/app --include="*.php" | grep -v "HandleHubspotRateLimit\|MatchActivityCrmData\|Client.php\|RateLimitException.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:17:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:68: RateLimitException |
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:15:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:58: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:19:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:76: RateLimitException |
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:50: * @throws RateLimitException When rate limit is hit
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:195: // RateLimitException and other exceptions are re-thrown as-is
Read
PaginationState.php
PaginationState.php
Read
HandleHubspotRateLimitTest.php
HandleHubspotRateLimitTest.php
Bash
Check how RateLimitException is used in GenerateActionItemsJob
IN
grep -rn "RateLimitException\|LogicException\|RuntimeException" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -20
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
Bash
Find all catch blocks or instanceof checks for RateLimitException
IN
grep -rn "catch.*RateLimitException\|instanceof RateLimitException" /Users/lukas/jiminny/app/app --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:11: * Job middleware that catches RateLimitException from HubSpot API calls
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:24: } catch (RateLimitException $e) {
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:149: if (! $e instanceof RateLimitException) {
Bash
Find all test references to RateLimitException
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/tests --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:13:#[CoversClass(RateLimitException::class)]
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:14:class RateLimitExceptionTest extends TestCase
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:18: $exception = new RateLimitException();
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:28: $exception = new RateLimitException('Hubspot rate limit', 30, $previous);
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:52: $exception = new RateLimitException('test', $input);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:10:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:49: public function testPropagatesNonRateLimitExceptions(): void
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:103: throw new RateLimitException('rate limited', $retryAfter);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:150: throw new RateLimitException('rate limited', 1);
Bash
Check retry/failure handling in GenerateActionItemsJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -30
Copy code to clipboard
OUT
13:use Jiminny\Exceptions\RateLimitException;
51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
56: $this->release(30);
Bash
Check retry/failure handling in GenerateAiCallScoringJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php | head -30
Copy code to clipboard
OUT
17:use Jiminny\Exceptions\RateLimitException;
68: RateLimitException |
75: $this->release(30);
Bash
Check retry config in MatchActivityCrmData
IN
grep -n "retryAfter\|RETRY_WINDOW\|retryUntil\|maxTries" /Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php
Copy code to clipboard
OUT
34: private const int RETRY_WINDOW_MINUTES = 30;
45: public function retryUntil(): \DateTimeInterface
47: return now()->addMinutes(self::RETRY_WINDOW_MINUTES);
77: return self::RETRY_WINDOW_MINUTES * 60 + 60;
Bash
Check the cache key format
IN
grep -n "getRateLimitCacheKey\|hubspot:ratelimit" /Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Client.php
Copy code to clipboard
OUT
78: $cacheKey = $this->getRateLimitCacheKey();
110: private function getRateLimitCacheKey(): string
112: return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());
Bash
Find other jobs that might use the rate limit middleware
IN
grep -rn "class.*Middleware\|HandleHubspotRateLimit" /Users/lukas/jiminny/app/app/Jobs --include="*.php" | grep -v "HandleHubspotRateLimit.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:18:use Jiminny\Jobs\Middleware\HandleHubspotRateLimit;
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:42: return [new HandleHubspotRateLimit()];
Read
HubspotClientInterface.php
HubspotClientInterface.php
Thought for 73s
Thought for 73s
Now I have a complete picture. Here's my full analysis:
Review Summary
Review Summary
RuntimeException vs LogicException — Safe ✓
RuntimeException
vs
LogicException
— Safe ✓
The change is semantically correct and won't break anything.
LogicException
is for programmer errors (invalid arguments, contract violations). A rate limit from an external API is a runtime condition —
RuntimeException
is the right parent. All callers catch
RateLimitException
by name explicitly (union catches in
GenerateActionItemsJob
,
GenerateAiCallScoringJob
,
SummarizeTranscriptionJob
,
GenerateAiActivityTypeJob
) or check
instanceof RateLimitException
— none relies on the parent class type, so nothing breaks.
Issue 1 — Circuit breaker stores stale delay (most important bug)
Issue 1 — Circuit breaker stores stale delay (most important bug)
Client.php:94...
|
19528
|
NULL
|
NULL
|
NULL
|
|
19532
|
834
|
11
|
2026-05-11T13:00:23.554772+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778504423554_m1.jpg...
|
Code
|
Review rate limit handli… — app
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 12 pending changes
12
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php
SaveTranscription.php
SetupLayout.php
SyncActivity.php
SyncFieldMetadata.php
SyncHubspotObjects.php
SyncLeads.php
SyncObjects.php
SyncOpportunitiesJob.php
SyncOpportunity.php
SyncProfileMetadata.php
SyncTeamFieldsJob.php
SyncTeamMetadata.php
UpdateOpportunitySpecifications.php
UpdateStage.php
DealRisks
Mailbox
MeetingBot
Middleware
HandleHubspotRateLimit.php
RateLimited.php
Streaming
Team
Telephony
User
BaseProcessingJob.php
DummyJob.php
ImportRecallAIRecordingsJob.php
ImportRemoteTrackJob.php
Job.php
JobDispatcher.php
JobDispatcherInterface.php
PurgeSoftDeletedOpportunityJob.php
SqsVisibilityControl.php
Listeners
Mail
Models
Activity
Ai
AskAnything
Calendar
Connection
Crm
Jobs
app
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
MySQL Section
MYSQL
MYSQL
MatchActivityCrmData.php, Editor Group 1
RateLimitException.php, Editor Group 1
HandleHubspotRateLimit.php, Editor Group 1
Client.php, Editor Group 1
HubspotPaginationService.php, Editor Group 1
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Middleware;
use Illuminate\Support\Facades\Log;
use Jiminny\Exceptions\RateLimitException;
/**
* Job middleware that catches RateLimitException from HubSpot API calls
* and releases the job back to the queue with the appropriate delay.
*/
class HandleHubspotRateLimit
{
private const int MAX_RETRY_DELAY = 600;
private const int MIN_RETRY_DELAY = 1;
private const int JITTER_SECONDS = 5;
public function handle(object $job, callable $next): void
{
try {
$next($job);
} catch (RateLimitException $e) {
$delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));
// Add jitter to prevent thundering herd problem by randomizing retry times
$delay += random_int(0, self::JITTER_SECONDS);
$attempts = $job->attempts();
if ($attempts <= 3 || $attempts % 10 === 0) {
Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [
'job_class' => $job::class,
'attempts' => $attempts,
'retry_after' => $e->getRetryAfter(),
'delay' => $delay,
]);
}
$job->release($delay);
}
}
}
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Middleware;
use Illuminate\Support\Facades\Log;
use Jiminny\Exceptions\RateLimitException;
/**
* Job middleware that catches RateLimitException from HubSpot API calls
* and releases the job back to the queue with the appropriate delay.
*/
class HandleHubspotRateLimit
{
private const int MAX_RETRY_DELAY = 600;
private const int MIN_RETRY_DELAY = 1;
private const int JITTER_SECONDS = 5;
public function handle(object $job, callable $next): void
{
try {
$next($job);
} catch (RateLimitException $e) {
$delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));
// Add jitter to prevent thundering herd problem by randomizing retry times
$delay += random_int(0, self::JITTER_SECONDS);
$attempts = $job->attempts();
if ($attempts <= 3 || $attempts % 10 === 0) {
Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [
'job_class' => $job::class,
'attempts' => $attempts,
'retry_after' => $e->getRetryAfter(),
'delay' => $delay,
]);
}
$job->release($delay);
}
}
}
Review rate limit handli…, Editor Group 2
remote
app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...
JY-20725-handle-HS-search-rate-limit*
app (Git) - Synchronize Changes
Errors: 6, Warnings: 9, Infos: 2
6
9
2
Notifications
key, PHP extension: Premium features not active.
Sign In
Sign In
Diff editor
Clear
Review rate limit handling for HubSpot job queue
Session history
New session
Message actions
RateLimitException.php#9-9
RateLimitException.php#9-9
Reveiw the diff. Mostly
@app/Jobs/Crm/MatchActivityCrmData.php
,
@app/Exceptions/RateLimitException.php
,
@app/Jobs/Middleware/HandleHubspotRateLimit.php
,
@app/Services/Crm/Hubspot/Client.php
and
@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php
. The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?
Thought for 5s
Thought for 5s
I'll review the implementation carefully. Let me first check how...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Explorer (⇧⌘E)","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":true},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Search (⇧⌘F)","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Source Control (⌃⇧G) - 12 pending changes","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"12","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Run and Debug (⇧⌘D)","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Remote Explorer","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Extensions (⇧⌘X) - 2 require update","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Testing","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Claude Code","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"EXPLORER","depth":17,"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"EXPLORER","depth":18,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Explorer Section: app","depth":21,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXStaticText","text":"","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"Explorer Section: app","depth":22,"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"APP","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CheckAndRetryRemoteMatch.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateFollowupActivity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateNotes.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivitiesToNewOpportunity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivityCrmData.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"NoteObject.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SaveActivity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SaveTranscription.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SetupLayout.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncActivity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncFieldMetadata.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncHubspotObjects.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncLeads.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncObjects.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncOpportunitiesJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncOpportunity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncProfileMetadata.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncTeamFieldsJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncTeamMetadata.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"UpdateOpportunitySpecifications.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"UpdateStage.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"DealRisks","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mailbox","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MeetingBot","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Middleware","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"HandleHubspotRateLimit.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"RateLimited.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Streaming","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Team","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Telephony","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"User","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"BaseProcessingJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"DummyJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"ImportRecallAIRecordingsJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"ImportRemoteTrackJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Job.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JobDispatcher.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JobDispatcherInterface.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"PurgeSoftDeletedOpportunityJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SqsVisibilityControl.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Listeners","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mail","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Models","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Activity","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Ai","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"AskAnything","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Calendar","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Connection","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Crm","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Jobs","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"app","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Outline Section","depth":21,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"OUTLINE","depth":22,"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"OUTLINE","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Timeline Section","depth":21,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"TIMELINE","depth":22,"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"TIMELINE","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"MySQL Section","depth":21,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"MYSQL","depth":22,"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"MYSQL","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"MatchActivityCrmData.php, Editor Group 1","depth":28,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"RateLimitException.php, Editor Group 1","depth":28,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"HandleHubspotRateLimit.php, Editor Group 1","depth":28,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXRadioButton","text":"Client.php, Editor Group 1","depth":28,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"HubspotPaginationService.php, Editor Group 1","depth":28,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Middleware;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Exceptions\\RateLimitException;\n\n/**\n * Job middleware that catches RateLimitException from HubSpot API calls\n * and releases the job back to the queue with the appropriate delay.\n */\nclass HandleHubspotRateLimit\n{\n private const int MAX_RETRY_DELAY = 600;\n private const int MIN_RETRY_DELAY = 1;\n private const int JITTER_SECONDS = 5;\n\n public function handle(object $job, callable $next): void\n {\n try {\n $next($job);\n } catch (RateLimitException $e) {\n $delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));\n // Add jitter to prevent thundering herd problem by randomizing retry times\n $delay += random_int(0, self::JITTER_SECONDS);\n\n $attempts = $job->attempts();\n if ($attempts <= 3 || $attempts % 10 === 0) {\n Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [\n 'job_class' => $job::class,\n 'attempts' => $attempts,\n 'retry_after' => $e->getRetryAfter(),\n 'delay' => $delay,\n ]);\n }\n\n $job->release($delay);\n }\n }\n}","depth":28,"on_screen":true,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Middleware;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Exceptions\\RateLimitException;\n\n/**\n * Job middleware that catches RateLimitException from HubSpot API calls\n * and releases the job back to the queue with the appropriate delay.\n */\nclass HandleHubspotRateLimit\n{\n private const int MAX_RETRY_DELAY = 600;\n private const int MIN_RETRY_DELAY = 1;\n private const int JITTER_SECONDS = 5;\n\n public function handle(object $job, callable $next): void\n {\n try {\n $next($job);\n } catch (RateLimitException $e) {\n $delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));\n // Add jitter to prevent thundering herd problem by randomizing retry times\n $delay += random_int(0, self::JITTER_SECONDS);\n\n $attempts = $job->attempts();\n if ($attempts <= 3 || $attempts % 10 === 0) {\n Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [\n 'job_class' => $job::class,\n 'attempts' => $attempts,\n 'retry_after' => $e->getRetryAfter(),\n 'delay' => $delay,\n ]);\n }\n\n $job->release($delay);\n }\n }\n}","role_description":"editor","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Middleware;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Exceptions\\RateLimitException;\n\n/**\n * Job middleware that catches RateLimitException from HubSpot API calls\n * and releases the job back to the queue with the appropriate delay.\n */\nclass HandleHubspotRateLimit\n{\n private const int MAX_RETRY_DELAY = 600;\n private const int MIN_RETRY_DELAY = 1;\n private const int JITTER_SECONDS = 5;\n\n public function handle(object $job, callable $next): void\n {\n try {\n $next($job);\n } catch (RateLimitException $e) {\n $delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));\n // Add jitter to prevent thundering herd problem by randomizing retry times\n $delay += random_int(0, self::JITTER_SECONDS);\n\n $attempts = $job->attempts();\n if ($attempts <= 3 || $attempts % 10 === 0) {\n Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [\n 'job_class' => $job::class,\n 'attempts' => $attempts,\n 'retry_after' => $e->getRetryAfter(),\n 'delay' => $delay,\n ]);\n }\n\n $job->release($delay);\n }\n }\n}","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Review rate limit handli…, Editor Group 2","depth":28,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXButton","text":"remote","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JY-20725-handle-HS-search-rate-limit*","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"app (Git) - Synchronize Changes","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Errors: 6, Warnings: 9, Infos: 2","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"6","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"9","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Notifications","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"key, PHP extension: Premium features not active.","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sign In","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Sign In","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Diff editor","depth":12,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Clear","depth":12,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Review rate limit handling for HubSpot job queue","depth":19,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Session history","depth":19,"on_screen":true,"help_text":"Session history","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New session","depth":19,"on_screen":true,"help_text":"New session","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Message actions","depth":24,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"RateLimitException.php#9-9","depth":23,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"RateLimitException.php#9-9","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Reveiw the diff. Mostly","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Jobs/Crm/MatchActivityCrmData.php","depth":26,"on_screen":false,"help_text":"Open app/Jobs/Crm/MatchActivityCrmData.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Exceptions/RateLimitException.php","depth":26,"on_screen":false,"help_text":"Open app/Exceptions/RateLimitException.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Jobs/Middleware/HandleHubspotRateLimit.php","depth":26,"on_screen":false,"help_text":"Open app/Jobs/Middleware/HandleHubspotRateLimit.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Services/Crm/Hubspot/Client.php","depth":26,"on_screen":false,"help_text":"Open app/Services/Crm/Hubspot/Client.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"and","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php","depth":26,"on_screen":false,"help_text":"Open app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":". The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Thought for 5s","depth":23,"on_screen":false,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thought for 5s","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"I'll review the implementation carefully. Let me first check how","depth":23,"on_screen":false,"role_description":"text"}]...
|
6877734459676489568
|
-7290735294403955345
|
idle
|
accessibility
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 12 pending changes
12
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php
SaveTranscription.php
SetupLayout.php
SyncActivity.php
SyncFieldMetadata.php
SyncHubspotObjects.php
SyncLeads.php
SyncObjects.php
SyncOpportunitiesJob.php
SyncOpportunity.php
SyncProfileMetadata.php
SyncTeamFieldsJob.php
SyncTeamMetadata.php
UpdateOpportunitySpecifications.php
UpdateStage.php
DealRisks
Mailbox
MeetingBot
Middleware
HandleHubspotRateLimit.php
RateLimited.php
Streaming
Team
Telephony
User
BaseProcessingJob.php
DummyJob.php
ImportRecallAIRecordingsJob.php
ImportRemoteTrackJob.php
Job.php
JobDispatcher.php
JobDispatcherInterface.php
PurgeSoftDeletedOpportunityJob.php
SqsVisibilityControl.php
Listeners
Mail
Models
Activity
Ai
AskAnything
Calendar
Connection
Crm
Jobs
app
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
MySQL Section
MYSQL
MYSQL
MatchActivityCrmData.php, Editor Group 1
RateLimitException.php, Editor Group 1
HandleHubspotRateLimit.php, Editor Group 1
Client.php, Editor Group 1
HubspotPaginationService.php, Editor Group 1
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Middleware;
use Illuminate\Support\Facades\Log;
use Jiminny\Exceptions\RateLimitException;
/**
* Job middleware that catches RateLimitException from HubSpot API calls
* and releases the job back to the queue with the appropriate delay.
*/
class HandleHubspotRateLimit
{
private const int MAX_RETRY_DELAY = 600;
private const int MIN_RETRY_DELAY = 1;
private const int JITTER_SECONDS = 5;
public function handle(object $job, callable $next): void
{
try {
$next($job);
} catch (RateLimitException $e) {
$delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));
// Add jitter to prevent thundering herd problem by randomizing retry times
$delay += random_int(0, self::JITTER_SECONDS);
$attempts = $job->attempts();
if ($attempts <= 3 || $attempts % 10 === 0) {
Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [
'job_class' => $job::class,
'attempts' => $attempts,
'retry_after' => $e->getRetryAfter(),
'delay' => $delay,
]);
}
$job->release($delay);
}
}
}
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Middleware;
use Illuminate\Support\Facades\Log;
use Jiminny\Exceptions\RateLimitException;
/**
* Job middleware that catches RateLimitException from HubSpot API calls
* and releases the job back to the queue with the appropriate delay.
*/
class HandleHubspotRateLimit
{
private const int MAX_RETRY_DELAY = 600;
private const int MIN_RETRY_DELAY = 1;
private const int JITTER_SECONDS = 5;
public function handle(object $job, callable $next): void
{
try {
$next($job);
} catch (RateLimitException $e) {
$delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));
// Add jitter to prevent thundering herd problem by randomizing retry times
$delay += random_int(0, self::JITTER_SECONDS);
$attempts = $job->attempts();
if ($attempts <= 3 || $attempts % 10 === 0) {
Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [
'job_class' => $job::class,
'attempts' => $attempts,
'retry_after' => $e->getRetryAfter(),
'delay' => $delay,
]);
}
$job->release($delay);
}
}
}
Review rate limit handli…, Editor Group 2
remote
app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...
JY-20725-handle-HS-search-rate-limit*
app (Git) - Synchronize Changes
Errors: 6, Warnings: 9, Infos: 2
6
9
2
Notifications
key, PHP extension: Premium features not active.
Sign In
Sign In
Diff editor
Clear
Review rate limit handling for HubSpot job queue
Session history
New session
Message actions
RateLimitException.php#9-9
RateLimitException.php#9-9
Reveiw the diff. Mostly
@app/Jobs/Crm/MatchActivityCrmData.php
,
@app/Exceptions/RateLimitException.php
,
@app/Jobs/Middleware/HandleHubspotRateLimit.php
,
@app/Services/Crm/Hubspot/Client.php
and
@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php
. The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?
Thought for 5s
Thought for 5s
I'll review the implementation carefully. Let me first check how...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
19534
|
834
|
12
|
2026-05-11T13:00:53.890774+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778504453890_m1.jpg...
|
Code
|
Review rate limit handli… — app
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 12 pending changes
12
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php
SaveTranscription.php
SetupLayout.php
SyncActivity.php
SyncFieldMetadata.php
SyncHubspotObjects.php
SyncLeads.php
SyncObjects.php
SyncOpportunitiesJob.php
SyncOpportunity.php
SyncProfileMetadata.php
SyncTeamFieldsJob.php
SyncTeamMetadata.php
UpdateOpportunitySpecifications.php
UpdateStage.php
DealRisks
Mailbox
MeetingBot
Middleware
HandleHubspotRateLimit.php
RateLimited.php
Streaming
Team
Telephony
User
BaseProcessingJob.php
DummyJob.php
ImportRecallAIRecordingsJob.php
ImportRemoteTrackJob.php
Job.php
JobDispatcher.php
JobDispatcherInterface.php
PurgeSoftDeletedOpportunityJob.php
SqsVisibilityControl.php
Listeners
Mail
Models
Activity
Ai
AskAnything
Calendar
Connection
Crm
Jobs
app
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
MySQL Section
MYSQL
MYSQL
MatchActivityCrmData.php, Editor Group 1
RateLimitException.php, Editor Group 1
HandleHubspotRateLimit.php, Editor Group 1
Client.php, Editor Group 1
HubspotPaginationService.php, Editor Group 1
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Middleware;
use Illuminate\Support\Facades\Log;
use Jiminny\Exceptions\RateLimitException;
/**
* Job middleware that catches RateLimitException from HubSpot API calls
* and releases the job back to the queue with the appropriate delay.
*/
class HandleHubspotRateLimit
{
private const int MAX_RETRY_DELAY = 600;
private const int MIN_RETRY_DELAY = 1;
private const int JITTER_SECONDS = 5;
public function handle(object $job, callable $next): void
{
try {
$next($job);
} catch (RateLimitException $e) {
$delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));
// Add jitter to prevent thundering herd problem by randomizing retry times
$delay += random_int(0, self::JITTER_SECONDS);
$attempts = $job->attempts();
if ($attempts <= 3 || $attempts % 10 === 0) {
Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [
'job_class' => $job::class,
'attempts' => $attempts,
'retry_after' => $e->getRetryAfter(),
'delay' => $delay,
]);
}
$job->release($delay);
}
}
}
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Middleware;
use Illuminate\Support\Facades\Log;
use Jiminny\Exceptions\RateLimitException;
/**
* Job middleware that catches RateLimitException from HubSpot API calls
* and releases the job back to the queue with the appropriate delay.
*/
class HandleHubspotRateLimit
{
private const int MAX_RETRY_DELAY = 600;
private const int MIN_RETRY_DELAY = 1;
private const int JITTER_SECONDS = 5;
public function handle(object $job, callable $next): void
{
try {
$next($job);
} catch (RateLimitException $e) {
$delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));
// Add jitter to prevent thundering herd problem by randomizing retry times
$delay += random_int(0, self::JITTER_SECONDS);
$attempts = $job->attempts();
if ($attempts <= 3 || $attempts % 10 === 0) {
Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [
'job_class' => $job::class,
'attempts' => $attempts,
'retry_after' => $e->getRetryAfter(),
'delay' => $delay,
]);
}
$job->release($delay);
}
}
}
Review rate limit handli…, Editor Group 2
remote
app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...
JY-20725-handle-HS-search-rate-limit*
app (Git) - Synchronize Changes
Errors: 6, Warnings: 9, Infos: 2
6
9
2
Notifications
key, PHP extension: Premium features not active.
Sign In
Sign In
Diff editor
Clear
Review rate limit handling for HubSpot job queue
Session history
New session
Message actions
RateLimitException.php#9-9
RateLimitException.php#9-9
Reveiw the diff. Mostly
@app/Jobs/Crm/MatchActivityCrmData.php
,
@app/Exceptions/RateLimitException.php
,
@app/Jobs/Middleware/HandleHubspotRateLimit.php
,
@app/Services/Crm/Hubspot/Client.php
and
@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php
. The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?
Thought for 5s
Thought for 5s
I'll review the implementation carefully. Let me first check how
RateLimitException
is used elsewhere and look at the test files and
PaginationState
.
Bash
Find all usages of RateLimitException outside the changed files
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/app --include="*.php" | grep -v "HandleHubspotRateLimit\|MatchActivityCrmData\|Client.php\|RateLimitException.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:17:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:68: RateLimitException |
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:15:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:58: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:19:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:76: RateLimitException |
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:50: * @throws RateLimitException When rate limit is hit
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:195: // RateLimitException and other exceptions are re-thrown as-is
Read
PaginationState.php
PaginationState.php
Read
HandleHubspotRateLimitTest.php
HandleHubspotRateLimitTest.php
Bash
Check how RateLimitException is used in GenerateActionItemsJob
IN
grep -rn "RateLimitException\|LogicException\|RuntimeException" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -20
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
Bash
Find all catch blocks or instanceof checks for RateLimitException
IN
grep -rn "catch.*RateLimitException\|instanceof RateLimitException" /Users/lukas/jiminny/app/app --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:11: * Job middleware that catches RateLimitException from HubSpot API calls
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:24: } catch (RateLimitException $e) {
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:149: if (! $e instanceof RateLimitException) {
Bash
Find all test references to RateLimitException
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/tests --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:13:#[CoversClass(RateLimitException::class)]
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:14:class RateLimitExceptionTest extends TestCase
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:18: $exception = new RateLimitException();
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:28: $exception = new RateLimitException('Hubspot rate limit', 30, $previous);
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:52: $exception = new RateLimitException('test', $input);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:10:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:49: public function testPropagatesNonRateLimitExceptions(): void
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:103: throw new RateLimitException('rate limited', $retryAfter);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:150: throw new RateLimitException('rate limited', 1);
Bash
Check retry/failure handling in GenerateActionItemsJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -30
Copy code to clipboard
OUT
13:use Jiminny\Exceptions\RateLimitException;
51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
56: $this->release(30);
Bash
Check retry/failure handling in GenerateAiCallScoringJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php | head -30
Copy code to clipboard
OUT
17:use Jiminny\Exceptions\RateLimitException;
68: RateLimitException |
75: $this->release(30);
Bash
Check retry config in MatchActivityCrmData
IN
grep -n "retryAfter\|RETRY_WINDOW\|retryUntil\|maxTries" /Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php
Copy code to clipboard
OUT
34: private const int RETRY_WINDOW_MINUTES = 30;
45: public function retryUntil(): \DateTimeInterface
47: return now()->addMinutes(self::RETRY_WINDOW_MINUTES);
77: return self::RETRY_WINDOW_MINUTES * 60 + 60;
Bash
Check the cache key format
IN
grep -n "getRateLimitCacheKey\|hubspot:ratelimit" /Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Client.php
Copy code to clipboard
OUT
78: $cacheKey = $this->getRateLimitCacheKey();
110: private function getRateLimitCacheKey(): string
112: return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());
Bash
Find other jobs that might use the rate limit middleware
IN
grep -rn "class.*Middleware\|HandleHubspotRateLimit" /Users/lukas/jiminny/app/app/Jobs --include="*.php" | grep -v "HandleHubspotRateLimit.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:18:use Jiminny\Jobs\Middleware\HandleHubspotRateLimit;
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:42: return [new HandleHubspotRateLimit()];
Read
HubspotClientInterface.php
HubspotClientInterface.php
Thought for 73s
Thought for 73s
Now I have a complete picture. Here's my full analysis:
Review Summary
Review Summary
RuntimeException vs LogicException — Safe ✓
RuntimeException
vs
LogicException
— Safe ✓
The change is semantically correct and won't break anything.
LogicException
is for programmer errors (invalid arguments, contract violations). A rate limit from an external API is a runtime condition —
RuntimeException
is the right parent. All callers catch
RateLimitException
by name explicitly (union catches in
GenerateActionItemsJob
,
GenerateAiCallScoringJob
,
SummarizeTranscriptionJob
,
GenerateAiActivityTypeJob
) or check
instanceof RateLimitException
— none relies on the parent class type, so nothing breaks.
Issue 1 — Circuit breaker stores stale delay (most important bug)
Issue 1 — Circuit breaker stores stale delay (most important bug)
Client.php:94
Client.php:94
Copy code to clipboard
Redis::setex($cacheKey, $retryAfter, (string) $retryAfter);
The TTL is
$retryAfter
seconds, but the
stored value
is also the original
$retryAfter
. If a second job reads this cache 20 seconds later, it throws
RateLimitException(retryAfter=30)
and gets delayed 30 more seconds — even though only 10 remain. In a spike of 100 jobs, each subsequent job inflates its wait.
Fix:
store the absolute expiry timestamp, reconstruct the remaining delay when reading:
Copy code to clipboard
// on 429:
Redis::setex($cacheKey, $retryAfter, (string) (time() + $retryAfter));
// in the cached-read branch:
$remaining = max(1, (int) $cachedRetryAfter - time());
throw new RateLimitException('Hubspot rate limit (cached circuit-breaker)', $remaining);
Issue 2 — retryUntil() window may expire under sustained rate limiting
Issue 2 —
retryUntil()
window may expire under sustained rate limiting
MatchActivityCrmData.php:45-47
MatchActivityCrmData.php:45-47
retryUntil()
is calculated as
now() + 30 min
at...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Explorer (⇧⌘E)","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":true},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Search (⇧⌘F)","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Source Control (⌃⇧G) - 12 pending changes","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"12","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Run and Debug (⇧⌘D)","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Remote Explorer","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Extensions (⇧⌘X) - 2 require update","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Testing","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Claude Code","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"EXPLORER","depth":17,"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"EXPLORER","depth":18,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Explorer Section: app","depth":21,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXStaticText","text":"","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"Explorer Section: app","depth":22,"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"APP","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CheckAndRetryRemoteMatch.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateFollowupActivity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateNotes.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivitiesToNewOpportunity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivityCrmData.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"NoteObject.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SaveActivity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SaveTranscription.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SetupLayout.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncActivity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncFieldMetadata.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncHubspotObjects.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncLeads.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncObjects.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncOpportunitiesJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncOpportunity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncProfileMetadata.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncTeamFieldsJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncTeamMetadata.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"UpdateOpportunitySpecifications.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"UpdateStage.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"DealRisks","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mailbox","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MeetingBot","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Middleware","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"HandleHubspotRateLimit.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"RateLimited.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Streaming","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Team","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Telephony","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"User","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"BaseProcessingJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"DummyJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"ImportRecallAIRecordingsJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"ImportRemoteTrackJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Job.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JobDispatcher.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JobDispatcherInterface.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"PurgeSoftDeletedOpportunityJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SqsVisibilityControl.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Listeners","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mail","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Models","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Activity","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Ai","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"AskAnything","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Calendar","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Connection","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Crm","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Jobs","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"app","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Outline Section","depth":21,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"OUTLINE","depth":22,"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"OUTLINE","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Timeline Section","depth":21,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"TIMELINE","depth":22,"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"TIMELINE","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"MySQL Section","depth":21,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"MYSQL","depth":22,"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"MYSQL","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"MatchActivityCrmData.php, Editor Group 1","depth":28,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"RateLimitException.php, Editor Group 1","depth":28,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"HandleHubspotRateLimit.php, Editor Group 1","depth":28,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXRadioButton","text":"Client.php, Editor Group 1","depth":28,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"HubspotPaginationService.php, Editor Group 1","depth":28,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Middleware;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Exceptions\\RateLimitException;\n\n/**\n * Job middleware that catches RateLimitException from HubSpot API calls\n * and releases the job back to the queue with the appropriate delay.\n */\nclass HandleHubspotRateLimit\n{\n private const int MAX_RETRY_DELAY = 600;\n private const int MIN_RETRY_DELAY = 1;\n private const int JITTER_SECONDS = 5;\n\n public function handle(object $job, callable $next): void\n {\n try {\n $next($job);\n } catch (RateLimitException $e) {\n $delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));\n // Add jitter to prevent thundering herd problem by randomizing retry times\n $delay += random_int(0, self::JITTER_SECONDS);\n\n $attempts = $job->attempts();\n if ($attempts <= 3 || $attempts % 10 === 0) {\n Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [\n 'job_class' => $job::class,\n 'attempts' => $attempts,\n 'retry_after' => $e->getRetryAfter(),\n 'delay' => $delay,\n ]);\n }\n\n $job->release($delay);\n }\n }\n}","depth":28,"on_screen":true,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Middleware;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Exceptions\\RateLimitException;\n\n/**\n * Job middleware that catches RateLimitException from HubSpot API calls\n * and releases the job back to the queue with the appropriate delay.\n */\nclass HandleHubspotRateLimit\n{\n private const int MAX_RETRY_DELAY = 600;\n private const int MIN_RETRY_DELAY = 1;\n private const int JITTER_SECONDS = 5;\n\n public function handle(object $job, callable $next): void\n {\n try {\n $next($job);\n } catch (RateLimitException $e) {\n $delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));\n // Add jitter to prevent thundering herd problem by randomizing retry times\n $delay += random_int(0, self::JITTER_SECONDS);\n\n $attempts = $job->attempts();\n if ($attempts <= 3 || $attempts % 10 === 0) {\n Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [\n 'job_class' => $job::class,\n 'attempts' => $attempts,\n 'retry_after' => $e->getRetryAfter(),\n 'delay' => $delay,\n ]);\n }\n\n $job->release($delay);\n }\n }\n}","role_description":"editor","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Middleware;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Exceptions\\RateLimitException;\n\n/**\n * Job middleware that catches RateLimitException from HubSpot API calls\n * and releases the job back to the queue with the appropriate delay.\n */\nclass HandleHubspotRateLimit\n{\n private const int MAX_RETRY_DELAY = 600;\n private const int MIN_RETRY_DELAY = 1;\n private const int JITTER_SECONDS = 5;\n\n public function handle(object $job, callable $next): void\n {\n try {\n $next($job);\n } catch (RateLimitException $e) {\n $delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));\n // Add jitter to prevent thundering herd problem by randomizing retry times\n $delay += random_int(0, self::JITTER_SECONDS);\n\n $attempts = $job->attempts();\n if ($attempts <= 3 || $attempts % 10 === 0) {\n Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [\n 'job_class' => $job::class,\n 'attempts' => $attempts,\n 'retry_after' => $e->getRetryAfter(),\n 'delay' => $delay,\n ]);\n }\n\n $job->release($delay);\n }\n }\n}","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Review rate limit handli…, Editor Group 2","depth":28,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXButton","text":"remote","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JY-20725-handle-HS-search-rate-limit*","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"app (Git) - Synchronize Changes","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Errors: 6, Warnings: 9, Infos: 2","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"6","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"9","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Notifications","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"key, PHP extension: Premium features not active.","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sign In","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Sign In","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Diff editor","depth":12,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Clear","depth":12,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Review rate limit handling for HubSpot job queue","depth":19,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Session history","depth":19,"on_screen":true,"help_text":"Session history","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New session","depth":19,"on_screen":true,"help_text":"New session","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Message actions","depth":24,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"RateLimitException.php#9-9","depth":23,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"RateLimitException.php#9-9","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Reveiw the diff. Mostly","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Jobs/Crm/MatchActivityCrmData.php","depth":26,"on_screen":false,"help_text":"Open app/Jobs/Crm/MatchActivityCrmData.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Exceptions/RateLimitException.php","depth":26,"on_screen":false,"help_text":"Open app/Exceptions/RateLimitException.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Jobs/Middleware/HandleHubspotRateLimit.php","depth":26,"on_screen":false,"help_text":"Open app/Jobs/Middleware/HandleHubspotRateLimit.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Services/Crm/Hubspot/Client.php","depth":26,"on_screen":false,"help_text":"Open app/Services/Crm/Hubspot/Client.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"and","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php","depth":26,"on_screen":false,"help_text":"Open app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":". The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Thought for 5s","depth":23,"on_screen":false,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thought for 5s","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"I'll review the implementation carefully. Let me first check how","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is used elsewhere and look at the test files and","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"PaginationState","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":".","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find all usages of RateLimitException outside the changed files","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"RateLimitException\" /Users/lukas/jiminny/app/app --include=\"*.php\" | grep -v \"HandleHubspotRateLimit\\|MatchActivityCrmData\\|Client.php\\|RateLimitException.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception\n/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:17:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:68: RateLimitException |\n/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:15:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:58: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception\n/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:19:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:76: RateLimitException |\n/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:8:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:50: * @throws RateLimitException When rate limit is hit\n/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:195: // RateLimitException and other exceptions are re-thrown as-is","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"PaginationState.php","depth":24,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"PaginationState.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"HandleHubspotRateLimitTest.php","depth":24,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"HandleHubspotRateLimitTest.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check how RateLimitException is used in GenerateActionItemsJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"RateLimitException\\|LogicException\\|RuntimeException\" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -20","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find all catch blocks or instanceof checks for RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"catch.*RateLimitException\\|instanceof RateLimitException\" /Users/lukas/jiminny/app/app --include=\"*.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:11: * Job middleware that catches RateLimitException from HubSpot API calls\n/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:24: } catch (RateLimitException $e) {\n/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:149: if (! $e instanceof RateLimitException) {","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find all test references to RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"RateLimitException\" /Users/lukas/jiminny/app/tests --include=\"*.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:8:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:13:#[CoversClass(RateLimitException::class)]\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:14:class RateLimitExceptionTest extends TestCase\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:18: $exception = new RateLimitException();\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:28: $exception = new RateLimitException('Hubspot rate limit', 30, $previous);\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:52: $exception = new RateLimitException('test', $input);\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:10:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:49: public function testPropagatesNonRateLimitExceptions(): void\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:103: throw new RateLimitException('rate limited', $retryAfter);\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:150: throw new RateLimitException('rate limited', 1);","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check retry/failure handling in GenerateActionItemsJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"RateLimitException\\|retryUntil\\|backoff\\|maxExceptions\\|maxTries\\|release\\|failed\" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -30","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"13:use Jiminny\\Exceptions\\RateLimitException;\n51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception\n56: $this->release(30);","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check retry/failure handling in GenerateAiCallScoringJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"RateLimitException\\|retryUntil\\|backoff\\|maxExceptions\\|maxTries\\|release\\|failed\" /Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php | head -30","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"17:use Jiminny\\Exceptions\\RateLimitException;\n68: RateLimitException |\n75: $this->release(30);","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check retry config in MatchActivityCrmData","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"retryAfter\\|RETRY_WINDOW\\|retryUntil\\|maxTries\" /Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"34: private const int RETRY_WINDOW_MINUTES = 30;\n45: public function retryUntil(): \\DateTimeInterface\n47: return now()->addMinutes(self::RETRY_WINDOW_MINUTES);\n77: return self::RETRY_WINDOW_MINUTES * 60 + 60;","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check the cache key format","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"getRateLimitCacheKey\\|hubspot:ratelimit\" /Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Client.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"78: $cacheKey = $this->getRateLimitCacheKey();\n110: private function getRateLimitCacheKey(): string\n112: return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find other jobs that might use the rate limit middleware","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"class.*Middleware\\|HandleHubspotRateLimit\" /Users/lukas/jiminny/app/app/Jobs --include=\"*.php\" | grep -v \"HandleHubspotRateLimit.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:18:use Jiminny\\Jobs\\Middleware\\HandleHubspotRateLimit;\n/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:42: return [new HandleHubspotRateLimit()];","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"HubspotClientInterface.php","depth":24,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"HubspotClientInterface.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Thought for 73s","depth":23,"on_screen":false,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thought for 73s","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Now I have a complete picture. Here's my full analysis:","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"Review Summary","depth":22,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"Review Summary","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"RuntimeException vs LogicException — Safe ✓","depth":22,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"RuntimeException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"vs","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"LogicException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"— Safe ✓","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"The change is semantically correct and won't break anything.","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"LogicException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is for programmer errors (invalid arguments, contract violations). A rate limit from an external API is a runtime condition —","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RuntimeException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is the right parent. All callers catch","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"by name explicitly (union catches in","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"GenerateActionItemsJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"GenerateAiCallScoringJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"SummarizeTranscriptionJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"GenerateAiActivityTypeJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":") or check","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"instanceof RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"— none relies on the parent class type, so nothing breaks.","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"Issue 1 — Circuit breaker stores stale delay (most important bug)","depth":22,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"Issue 1 — Circuit breaker stores stale delay (most important bug)","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"Client.php:94","depth":23,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Client.php:94","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":23,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Redis::setex($cacheKey, $retryAfter, (string) $retryAfter);","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"The TTL is","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"$retryAfter","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"seconds, but the","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"stored value","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is also the original","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"$retryAfter","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":". If a second job reads this cache 20 seconds later, it throws","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RateLimitException(retryAfter=30)","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"and gets delayed 30 more seconds — even though only 10 remain. In a spike of 100 jobs, each subsequent job inflates its wait.","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Fix:","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"store the absolute expiry timestamp, reconstruct the remaining delay when reading:","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":23,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"// on 429:\nRedis::setex($cacheKey, $retryAfter, (string) (time() + $retryAfter));\n\n// in the cached-read branch:\n$remaining = max(1, (int) $cachedRetryAfter - time());\nthrow new RateLimitException('Hubspot rate limit (cached circuit-breaker)', $remaining);","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"Issue 2 — retryUntil() window may expire under sustained rate limiting","depth":22,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"Issue 2 —","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"retryUntil()","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"window may expire under sustained rate limiting","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"MatchActivityCrmData.php:45-47","depth":23,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"MatchActivityCrmData.php:45-47","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"retryUntil()","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is calculated as","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"now() + 30 min","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"at","depth":23,"on_screen":false,"role_description":"text"}]...
|
-5978675328916547819
|
-7434862143272602045
|
idle
|
accessibility
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 12 pending changes
12
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php
SaveTranscription.php
SetupLayout.php
SyncActivity.php
SyncFieldMetadata.php
SyncHubspotObjects.php
SyncLeads.php
SyncObjects.php
SyncOpportunitiesJob.php
SyncOpportunity.php
SyncProfileMetadata.php
SyncTeamFieldsJob.php
SyncTeamMetadata.php
UpdateOpportunitySpecifications.php
UpdateStage.php
DealRisks
Mailbox
MeetingBot
Middleware
HandleHubspotRateLimit.php
RateLimited.php
Streaming
Team
Telephony
User
BaseProcessingJob.php
DummyJob.php
ImportRecallAIRecordingsJob.php
ImportRemoteTrackJob.php
Job.php
JobDispatcher.php
JobDispatcherInterface.php
PurgeSoftDeletedOpportunityJob.php
SqsVisibilityControl.php
Listeners
Mail
Models
Activity
Ai
AskAnything
Calendar
Connection
Crm
Jobs
app
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
MySQL Section
MYSQL
MYSQL
MatchActivityCrmData.php, Editor Group 1
RateLimitException.php, Editor Group 1
HandleHubspotRateLimit.php, Editor Group 1
Client.php, Editor Group 1
HubspotPaginationService.php, Editor Group 1
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Middleware;
use Illuminate\Support\Facades\Log;
use Jiminny\Exceptions\RateLimitException;
/**
* Job middleware that catches RateLimitException from HubSpot API calls
* and releases the job back to the queue with the appropriate delay.
*/
class HandleHubspotRateLimit
{
private const int MAX_RETRY_DELAY = 600;
private const int MIN_RETRY_DELAY = 1;
private const int JITTER_SECONDS = 5;
public function handle(object $job, callable $next): void
{
try {
$next($job);
} catch (RateLimitException $e) {
$delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));
// Add jitter to prevent thundering herd problem by randomizing retry times
$delay += random_int(0, self::JITTER_SECONDS);
$attempts = $job->attempts();
if ($attempts <= 3 || $attempts % 10 === 0) {
Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [
'job_class' => $job::class,
'attempts' => $attempts,
'retry_after' => $e->getRetryAfter(),
'delay' => $delay,
]);
}
$job->release($delay);
}
}
}
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Middleware;
use Illuminate\Support\Facades\Log;
use Jiminny\Exceptions\RateLimitException;
/**
* Job middleware that catches RateLimitException from HubSpot API calls
* and releases the job back to the queue with the appropriate delay.
*/
class HandleHubspotRateLimit
{
private const int MAX_RETRY_DELAY = 600;
private const int MIN_RETRY_DELAY = 1;
private const int JITTER_SECONDS = 5;
public function handle(object $job, callable $next): void
{
try {
$next($job);
} catch (RateLimitException $e) {
$delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));
// Add jitter to prevent thundering herd problem by randomizing retry times
$delay += random_int(0, self::JITTER_SECONDS);
$attempts = $job->attempts();
if ($attempts <= 3 || $attempts % 10 === 0) {
Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [
'job_class' => $job::class,
'attempts' => $attempts,
'retry_after' => $e->getRetryAfter(),
'delay' => $delay,
]);
}
$job->release($delay);
}
}
}
Review rate limit handli…, Editor Group 2
remote
app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...
JY-20725-handle-HS-search-rate-limit*
app (Git) - Synchronize Changes
Errors: 6, Warnings: 9, Infos: 2
6
9
2
Notifications
key, PHP extension: Premium features not active.
Sign In
Sign In
Diff editor
Clear
Review rate limit handling for HubSpot job queue
Session history
New session
Message actions
RateLimitException.php#9-9
RateLimitException.php#9-9
Reveiw the diff. Mostly
@app/Jobs/Crm/MatchActivityCrmData.php
,
@app/Exceptions/RateLimitException.php
,
@app/Jobs/Middleware/HandleHubspotRateLimit.php
,
@app/Services/Crm/Hubspot/Client.php
and
@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php
. The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?
Thought for 5s
Thought for 5s
I'll review the implementation carefully. Let me first check how
RateLimitException
is used elsewhere and look at the test files and
PaginationState
.
Bash
Find all usages of RateLimitException outside the changed files
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/app --include="*.php" | grep -v "HandleHubspotRateLimit\|MatchActivityCrmData\|Client.php\|RateLimitException.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:17:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:68: RateLimitException |
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:15:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:58: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:19:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:76: RateLimitException |
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:50: * @throws RateLimitException When rate limit is hit
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:195: // RateLimitException and other exceptions are re-thrown as-is
Read
PaginationState.php
PaginationState.php
Read
HandleHubspotRateLimitTest.php
HandleHubspotRateLimitTest.php
Bash
Check how RateLimitException is used in GenerateActionItemsJob
IN
grep -rn "RateLimitException\|LogicException\|RuntimeException" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -20
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
Bash
Find all catch blocks or instanceof checks for RateLimitException
IN
grep -rn "catch.*RateLimitException\|instanceof RateLimitException" /Users/lukas/jiminny/app/app --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:11: * Job middleware that catches RateLimitException from HubSpot API calls
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:24: } catch (RateLimitException $e) {
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:149: if (! $e instanceof RateLimitException) {
Bash
Find all test references to RateLimitException
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/tests --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:13:#[CoversClass(RateLimitException::class)]
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:14:class RateLimitExceptionTest extends TestCase
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:18: $exception = new RateLimitException();
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:28: $exception = new RateLimitException('Hubspot rate limit', 30, $previous);
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:52: $exception = new RateLimitException('test', $input);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:10:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:49: public function testPropagatesNonRateLimitExceptions(): void
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:103: throw new RateLimitException('rate limited', $retryAfter);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:150: throw new RateLimitException('rate limited', 1);
Bash
Check retry/failure handling in GenerateActionItemsJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -30
Copy code to clipboard
OUT
13:use Jiminny\Exceptions\RateLimitException;
51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
56: $this->release(30);
Bash
Check retry/failure handling in GenerateAiCallScoringJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php | head -30
Copy code to clipboard
OUT
17:use Jiminny\Exceptions\RateLimitException;
68: RateLimitException |
75: $this->release(30);
Bash
Check retry config in MatchActivityCrmData
IN
grep -n "retryAfter\|RETRY_WINDOW\|retryUntil\|maxTries" /Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php
Copy code to clipboard
OUT
34: private const int RETRY_WINDOW_MINUTES = 30;
45: public function retryUntil(): \DateTimeInterface
47: return now()->addMinutes(self::RETRY_WINDOW_MINUTES);
77: return self::RETRY_WINDOW_MINUTES * 60 + 60;
Bash
Check the cache key format
IN
grep -n "getRateLimitCacheKey\|hubspot:ratelimit" /Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Client.php
Copy code to clipboard
OUT
78: $cacheKey = $this->getRateLimitCacheKey();
110: private function getRateLimitCacheKey(): string
112: return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());
Bash
Find other jobs that might use the rate limit middleware
IN
grep -rn "class.*Middleware\|HandleHubspotRateLimit" /Users/lukas/jiminny/app/app/Jobs --include="*.php" | grep -v "HandleHubspotRateLimit.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:18:use Jiminny\Jobs\Middleware\HandleHubspotRateLimit;
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:42: return [new HandleHubspotRateLimit()];
Read
HubspotClientInterface.php
HubspotClientInterface.php
Thought for 73s
Thought for 73s
Now I have a complete picture. Here's my full analysis:
Review Summary
Review Summary
RuntimeException vs LogicException — Safe ✓
RuntimeException
vs
LogicException
— Safe ✓
The change is semantically correct and won't break anything.
LogicException
is for programmer errors (invalid arguments, contract violations). A rate limit from an external API is a runtime condition —
RuntimeException
is the right parent. All callers catch
RateLimitException
by name explicitly (union catches in
GenerateActionItemsJob
,
GenerateAiCallScoringJob
,
SummarizeTranscriptionJob
,
GenerateAiActivityTypeJob
) or check
instanceof RateLimitException
— none relies on the parent class type, so nothing breaks.
Issue 1 — Circuit breaker stores stale delay (most important bug)
Issue 1 — Circuit breaker stores stale delay (most important bug)
Client.php:94
Client.php:94
Copy code to clipboard
Redis::setex($cacheKey, $retryAfter, (string) $retryAfter);
The TTL is
$retryAfter
seconds, but the
stored value
is also the original
$retryAfter
. If a second job reads this cache 20 seconds later, it throws
RateLimitException(retryAfter=30)
and gets delayed 30 more seconds — even though only 10 remain. In a spike of 100 jobs, each subsequent job inflates its wait.
Fix:
store the absolute expiry timestamp, reconstruct the remaining delay when reading:
Copy code to clipboard
// on 429:
Redis::setex($cacheKey, $retryAfter, (string) (time() + $retryAfter));
// in the cached-read branch:
$remaining = max(1, (int) $cachedRetryAfter - time());
throw new RateLimitException('Hubspot rate limit (cached circuit-breaker)', $remaining);
Issue 2 — retryUntil() window may expire under sustained rate limiting
Issue 2 —
retryUntil()
window may expire under sustained rate limiting
MatchActivityCrmData.php:45-47
MatchActivityCrmData.php:45-47
retryUntil()
is calculated as
now() + 30 min
at...
|
19532
|
NULL
|
NULL
|
NULL
|
|
19536
|
834
|
13
|
2026-05-11T13:01:03.563028+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778504463563_m1.jpg...
|
Code
|
Review rate limit handli… — app
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 12 pending changes
12
Run and Debug (⇧⌘D)
...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Explorer (⇧⌘E)","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":true},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Search (⇧⌘F)","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Source Control (⌃⇧G) - 12 pending changes","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"12","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Run and Debug (⇧⌘D)","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"}]...
|
7404019384730810318
|
-940529146714256248
|
click
|
hybrid
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 12 pending changes
12
Run and Debug (⇧⌘D)
SlackFileEditViewGoHistoryWindowHelpAPPDOCKER₴81DEV (docker)₴2APP (-zsh)-zsh* @param string SobjectType The object type('deals''companies''contacts''cal)* @param array<string, mixed>Spayload Thesearch payload with filters, sorts, prop‹* @return array The search response with'results''total''paging'keys* @throws RateLimitException When rate limit is hit* @throws HubspotException On API errors** @return array The search response with 'results', 'total', 'paging' keys*/public function search(string SobjectType, array Spayload): arrayend diff4) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation)begin diff --/home/jiminny/app/Console/Commands/JiminnyDebugCommand.php+++/home/jiminny/app/Console/Commands/JiminnyDebugCommand.php-359,11+359,11 @ScrmService = ScrmResolver->prepareCrmService);-//-/1for ($i = 0; si < 3; Si++) {if (Si % 250) {Sthis->info("Syncing opportunity {Si}");Sthis->info("Matching contact {$i}");-1/-1/.+++++ScrmService->syncOpportunity('374720564');if ($i % 25=0{//Sthis->info("Syncing opportunity {$i}");Sthis->info("Matching contact {$i}");////}ScrmService->syncOpportunity('374720564');$crmService->matchByName('Robot');end diffFixed 4 of 5666 files in 146.870 seconds, 60.00 MB memory usedWhat's next:Try Docker Debug for seamless, persistent debugging tools in any containeror image →Learn more at https://docs.docker.com/go/debug-cli/lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-lirHomeDMsActivityFilesLater..•More(abl•[Platform) Refinemen... now100%8• Mon 11 May 16:01:03→[Platform] Refinement •now - 16:00-17:00Ci Join Google MeetJiminny ...# contusion-clinic# curiosity_lab# engineering# general# jiminny-bg# platform-tickets# product_launches# random# releases# sofia-office# support# thank-yous# the_people_of_jimi...•MessagesC FilesBookmarks+^ Direct messagesP. Aneliya Angelova®. Galya DimitrovaPetko Kashinski&. Stefka StoyanovaVasil Vasilev&. Nikolay IvanovAneliya Angelova, ...Stoyan Tanev• VesE Lukas Kovalik y... 020832): RemoveToday ~ ok 4.0 and 4.1 models(#506) (steliyan-g)NewGitHub APP 2:13 PM9 new commits pushed to master by ilian-jiminny861859d2 - Stop sending signals to datadog forincresed/ decreased workers.23ad2bb1 - Drop usage of RunForSeconds.3aedca4a - Generage Workerld on the fly.86cb0855 - ignore-missing-request-id-on-transcript Handle wrong format for assemblytranscriptions, this happends for old activitiesthat had a different provider and were updatedto point to Assembly when the providers weredeleted49ca4dfe - ignore-missing-request-id-on-transcript added log importShow morejiminny/app| Added by GitHubCircleCI APP 2:38 PMDeployment Successful!Project: appWhen:05/11/202611:38:14Tag:View JobE:: AppsS Jira CloudToastGanala Cala112Message #releases+..•...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
19540
|
834
|
14
|
2026-05-11T13:01:35.172661+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778504495172_m1.jpg...
|
Code
|
Review rate limit handli… — app
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G)
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php
SaveTranscription.php
SetupLayout.php
SyncActivity.php
SyncFieldMetadata.php
SyncHubspotObjects.php
SyncLeads.php
SyncObjects.php
SyncOpportunitiesJob.php
SyncOpportunity.php
SyncProfileMetadata.php
SyncTeamFieldsJob.php
SyncTeamMetadata.php
UpdateOpportunitySpecifications.php
UpdateStage.php
DealRisks
Mailbox
MeetingBot
Middleware
HandleHubspotRateLimit.php
RateLimited.php
Streaming
Team
Telephony
User
BaseProcessingJob.php
DummyJob.php
ImportRecallAIRecordingsJob.php
ImportRemoteTrackJob.php
Job.php
JobDispatcher.php
JobDispatcherInterface.php
PurgeSoftDeletedOpportunityJob.php
SqsVisibilityControl.php
Listeners
Mail
Models
Activity
Ai
AskAnything
Calendar
Connection
Crm
Jobs
app
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
MySQL Section
MYSQL
MYSQL
MatchActivityCrmData.php, Editor Group 1
RateLimitException.php, Editor Group 1
HandleHubspotRateLimit.php, Editor Group 1
Client.php, Editor Group 1
HubspotPaginationService.php, Editor Group 1
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Middleware;
use Illuminate\Support\Facades\Log;
use Jiminny\Exceptions\RateLimitException;
/**
* Job middleware that catches RateLimitException from HubSpot API calls
* and releases the job back to the queue with the appropriate delay.
*/
class HandleHubspotRateLimit
{
private const int MAX_RETRY_DELAY = 600;
private const int MIN_RETRY_DELAY = 1;
private const int JITTER_SECONDS = 5;
public function handle(object $job, callable $next): void
{
try {
$next($job);
} catch (RateLimitException $e) {
$delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));
// Add jitter to prevent thundering herd problem by randomizing retry times
$delay += random_int(0, self::JITTER_SECONDS);
$attempts = $job->attempts();
if ($attempts <= 3 || $attempts % 10 === 0) {
Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [
'job_class' => $job::class,
'attempts' => $attempts,
'retry_after' => $e->getRetryAfter(),
'delay' => $delay,
]);
}
$job->release($delay);
}
}
}
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Middleware;
use Illuminate\Support\Facades\Log;
use Jiminny\Exceptions\RateLimitException;
/**
* Job middleware that catches RateLimitException from HubSpot API calls
* and releases the job back to the queue with the appropriate delay.
*/
class HandleHubspotRateLimit
{
private const int MAX_RETRY_DELAY = 600;
private const int MIN_RETRY_DELAY = 1;
private const int JITTER_SECONDS = 5;
public function handle(object $job, callable $next): void
{
try {
$next($job);
} catch (RateLimitException $e) {
$delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));
// Add jitter to prevent thundering herd problem by randomizing retry times
$delay += random_int(0, self::JITTER_SECONDS);
$attempts = $job->attempts();
if ($attempts <= 3 || $attempts % 10 === 0) {
Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [
'job_class' => $job::class,
'attempts' => $attempts,
'retry_after' => $e->getRetryAfter(),
'delay' => $delay,
]);
}
$job->release($delay);
}
}
}
Review rate limit handli…, Editor Group 2
remote
app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...
JY-20725-handle-HS-search-rate-limit*
app (Git) - Synchronize Changes
Errors: 6, Warnings: 9, Infos: 2
6
9
2
Notifications
key, PHP extension: Premium features not active.
Sign In
Sign In
Diff editor
Clear
Review rate limit handling for HubSpot job queue
Session history
New session
Message actions
RateLimitException.php#9-9
RateLimitException.php#9-9
Reveiw the diff. Mostly
@app/Jobs/Crm/MatchActivityCrmData.php
,
@app/Exceptions/RateLimitException.php
,
@app/Jobs/Middleware/HandleHubspotRateLimit.php
,
@app/Services/Crm/Hubspot/Client.php
and
@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php
. The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?
Thought for 5s
Thought for 5s
I'll review the implementation carefully. Let me first check how
RateLimitException
is used elsewhere and look at the test files and
PaginationState
.
Bash
Find all usages of RateLimitException outside the changed files
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/app --include="*.php" | grep -v "HandleHubspotRateLimit\|MatchActivityCrmData\|Client.php\|RateLimitException.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:17:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:68: RateLimitException |
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:15:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:58: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:19:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:76: RateLimitException |
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:50: * @throws RateLimitException When rate limit is hit
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:195: // RateLimitException and other exceptions are re-thrown as-is
Read
PaginationState.php
PaginationState.php
Read
HandleHubspotRateLimitTest.php
HandleHubspotRateLimitTest.php
Bash
Check how RateLimitException is used in GenerateActionItemsJob
IN
grep -rn "RateLimitException\|LogicException\|RuntimeException" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -20
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
Bash
Find all catch blocks or instanceof checks for RateLimitException
IN
grep -rn "catch.*RateLimitException\|instanceof RateLimitException" /Users/lukas/jiminny/app/app --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:11: * Job middleware that catches RateLimitException from HubSpot API calls
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:24: } catch (RateLimitException $e) {
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:149: if (! $e instanceof RateLimitException) {
Bash
Find all test references to RateLimitException
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/tests --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:13:#[CoversClass(RateLimitException::class)]
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:14:class RateLimitExceptionTest extends TestCase
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:18: $exception = new RateLimitException();
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:28: $exception = new RateLimitException('Hubspot rate limit', 30, $previous);
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:52: $exception = new RateLimitException('test', $input);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:10:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:49: public function testPropagatesNonRateLimitExceptions(): void
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:103: throw new RateLimitException('rate limited', $retryAfter);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:150: throw new RateLimitException('rate limited', 1);
Bash
Check retry/failure handling in GenerateActionItemsJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -30
Copy code to clipboard
OUT
13:use Jiminny\Exceptions\RateLimitException;
51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
56: $this->release(30);
Bash
Check retry/failure handling in GenerateAiCallScoringJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php | head -30
Copy code to clipboard
OUT
17:use Jiminny\Exceptions\RateLimitException;
68: RateLimitException |
75: $this->release(30);
Bash
Check retry config in MatchActivityCrmData
IN
grep -n "retryAfter\|RETRY_WINDOW\|retryUntil\|maxTries" /Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php
Copy code to clipboard
OUT
34: private const int RETRY_WINDOW_MINUTES = 30;
45: public function retryUntil(): \DateTimeInterface
47: return now()->addMinutes(self::RETRY_WINDOW_MINUTES);
77: return self::RETRY_WINDOW_MINUTES * 60 + 60;
Bash
Check the cache key format
IN
grep -n "getRateLimitCacheKey\|hubspot:ratelimit" /Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Client.php
Copy code to clipboard
OUT
78: $cacheKey = $this->getRateLimitCacheKey();
110: private function getRateLimitCacheKey(): string
112: return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());
Bash
Find other jobs that might use the rate limit middleware
IN
grep -rn "class.*Middleware\|HandleHubspotRateLimit" /Users/lukas/jiminny/app/app/Jobs --include="*.php" | grep -v "HandleHubspotRateLimit.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:18:use Jiminny\Jobs\Middleware\HandleHubspotRateLimit;
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:42: return [new HandleHubspotRateLimit()];
Read
HubspotClientInterface.php
HubspotClientInterface.php
Thought for 73s
Thought for 73s
Now I have a complete picture. Here's my full analysis:
Review Summary
Review Summary
RuntimeException vs LogicException — Safe ✓
RuntimeException
vs
LogicException
— Safe ✓
The change is semantically correct and won't break anything.
LogicException
is for programmer errors (invalid arguments, contract violations). A rate limit from an external API is a runtime condition —
RuntimeException
is the right parent. All callers catch
RateLimitException
by name explicitly (union catches in
GenerateActionItemsJob
,
GenerateAiCallScoringJob
,
SummarizeTranscriptionJob
,
GenerateAiActivityTypeJob
) or check
instanceof RateLimitException
— none relies on the parent class type, so nothing breaks.
Issue 1 — Circuit breaker stores stale delay (most important bug)
Issue 1 — Circuit breaker stores stale delay (most important bug)
Client.php:94
Client.php:94
Copy code to clipboard
Redis::setex($cacheKey, $retryAfter, (string) $retryAfter);
The TTL is
$retryAfter
seconds, but the...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Explorer (⇧⌘E)","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":true},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Search (⇧⌘F)","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Source Control (⌃⇧G)","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Run and Debug (⇧⌘D)","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Remote Explorer","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Extensions (⇧⌘X) - 2 require update","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Testing","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Claude Code","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"EXPLORER","depth":17,"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"EXPLORER","depth":18,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Explorer Section: app","depth":21,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXStaticText","text":"","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"Explorer Section: app","depth":22,"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"APP","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CheckAndRetryRemoteMatch.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateFollowupActivity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateNotes.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivitiesToNewOpportunity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivityCrmData.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"NoteObject.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SaveActivity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SaveTranscription.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SetupLayout.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncActivity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncFieldMetadata.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncHubspotObjects.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncLeads.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncObjects.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncOpportunitiesJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncOpportunity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncProfileMetadata.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncTeamFieldsJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncTeamMetadata.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"UpdateOpportunitySpecifications.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"UpdateStage.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"DealRisks","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mailbox","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MeetingBot","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Middleware","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"HandleHubspotRateLimit.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"RateLimited.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Streaming","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Team","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Telephony","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"User","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"BaseProcessingJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"DummyJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"ImportRecallAIRecordingsJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"ImportRemoteTrackJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Job.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JobDispatcher.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JobDispatcherInterface.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"PurgeSoftDeletedOpportunityJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SqsVisibilityControl.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Listeners","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mail","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Models","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Activity","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Ai","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"AskAnything","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Calendar","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Connection","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Crm","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Jobs","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"app","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Outline Section","depth":21,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"OUTLINE","depth":22,"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"OUTLINE","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Timeline Section","depth":21,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"TIMELINE","depth":22,"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"TIMELINE","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"MySQL Section","depth":21,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"MYSQL","depth":22,"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"MYSQL","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"MatchActivityCrmData.php, Editor Group 1","depth":28,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"RateLimitException.php, Editor Group 1","depth":28,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"HandleHubspotRateLimit.php, Editor Group 1","depth":28,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXRadioButton","text":"Client.php, Editor Group 1","depth":28,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"HubspotPaginationService.php, Editor Group 1","depth":28,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Middleware;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Exceptions\\RateLimitException;\n\n/**\n * Job middleware that catches RateLimitException from HubSpot API calls\n * and releases the job back to the queue with the appropriate delay.\n */\nclass HandleHubspotRateLimit\n{\n private const int MAX_RETRY_DELAY = 600;\n private const int MIN_RETRY_DELAY = 1;\n private const int JITTER_SECONDS = 5;\n\n public function handle(object $job, callable $next): void\n {\n try {\n $next($job);\n } catch (RateLimitException $e) {\n $delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));\n // Add jitter to prevent thundering herd problem by randomizing retry times\n $delay += random_int(0, self::JITTER_SECONDS);\n\n $attempts = $job->attempts();\n if ($attempts <= 3 || $attempts % 10 === 0) {\n Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [\n 'job_class' => $job::class,\n 'attempts' => $attempts,\n 'retry_after' => $e->getRetryAfter(),\n 'delay' => $delay,\n ]);\n }\n\n $job->release($delay);\n }\n }\n}","depth":28,"on_screen":true,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Middleware;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Exceptions\\RateLimitException;\n\n/**\n * Job middleware that catches RateLimitException from HubSpot API calls\n * and releases the job back to the queue with the appropriate delay.\n */\nclass HandleHubspotRateLimit\n{\n private const int MAX_RETRY_DELAY = 600;\n private const int MIN_RETRY_DELAY = 1;\n private const int JITTER_SECONDS = 5;\n\n public function handle(object $job, callable $next): void\n {\n try {\n $next($job);\n } catch (RateLimitException $e) {\n $delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));\n // Add jitter to prevent thundering herd problem by randomizing retry times\n $delay += random_int(0, self::JITTER_SECONDS);\n\n $attempts = $job->attempts();\n if ($attempts <= 3 || $attempts % 10 === 0) {\n Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [\n 'job_class' => $job::class,\n 'attempts' => $attempts,\n 'retry_after' => $e->getRetryAfter(),\n 'delay' => $delay,\n ]);\n }\n\n $job->release($delay);\n }\n }\n}","role_description":"editor","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Middleware;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Exceptions\\RateLimitException;\n\n/**\n * Job middleware that catches RateLimitException from HubSpot API calls\n * and releases the job back to the queue with the appropriate delay.\n */\nclass HandleHubspotRateLimit\n{\n private const int MAX_RETRY_DELAY = 600;\n private const int MIN_RETRY_DELAY = 1;\n private const int JITTER_SECONDS = 5;\n\n public function handle(object $job, callable $next): void\n {\n try {\n $next($job);\n } catch (RateLimitException $e) {\n $delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));\n // Add jitter to prevent thundering herd problem by randomizing retry times\n $delay += random_int(0, self::JITTER_SECONDS);\n\n $attempts = $job->attempts();\n if ($attempts <= 3 || $attempts % 10 === 0) {\n Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [\n 'job_class' => $job::class,\n 'attempts' => $attempts,\n 'retry_after' => $e->getRetryAfter(),\n 'delay' => $delay,\n ]);\n }\n\n $job->release($delay);\n }\n }\n}","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Review rate limit handli…, Editor Group 2","depth":28,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXButton","text":"remote","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JY-20725-handle-HS-search-rate-limit*","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"app (Git) - Synchronize Changes","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Errors: 6, Warnings: 9, Infos: 2","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"6","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"9","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Notifications","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"key, PHP extension: Premium features not active.","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sign In","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Sign In","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Diff editor","depth":12,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Clear","depth":12,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Review rate limit handling for HubSpot job queue","depth":19,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Session history","depth":19,"on_screen":true,"help_text":"Session history","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New session","depth":19,"on_screen":true,"help_text":"New session","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Message actions","depth":24,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"RateLimitException.php#9-9","depth":23,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"RateLimitException.php#9-9","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Reveiw the diff. Mostly","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Jobs/Crm/MatchActivityCrmData.php","depth":26,"on_screen":false,"help_text":"Open app/Jobs/Crm/MatchActivityCrmData.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Exceptions/RateLimitException.php","depth":26,"on_screen":false,"help_text":"Open app/Exceptions/RateLimitException.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Jobs/Middleware/HandleHubspotRateLimit.php","depth":26,"on_screen":false,"help_text":"Open app/Jobs/Middleware/HandleHubspotRateLimit.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Services/Crm/Hubspot/Client.php","depth":26,"on_screen":false,"help_text":"Open app/Services/Crm/Hubspot/Client.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"and","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php","depth":26,"on_screen":false,"help_text":"Open app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":". The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Thought for 5s","depth":23,"on_screen":false,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thought for 5s","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"I'll review the implementation carefully. Let me first check how","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is used elsewhere and look at the test files and","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"PaginationState","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":".","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find all usages of RateLimitException outside the changed files","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"RateLimitException\" /Users/lukas/jiminny/app/app --include=\"*.php\" | grep -v \"HandleHubspotRateLimit\\|MatchActivityCrmData\\|Client.php\\|RateLimitException.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception\n/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:17:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:68: RateLimitException |\n/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:15:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:58: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception\n/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:19:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:76: RateLimitException |\n/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:8:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:50: * @throws RateLimitException When rate limit is hit\n/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:195: // RateLimitException and other exceptions are re-thrown as-is","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"PaginationState.php","depth":24,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"PaginationState.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"HandleHubspotRateLimitTest.php","depth":24,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"HandleHubspotRateLimitTest.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check how RateLimitException is used in GenerateActionItemsJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"RateLimitException\\|LogicException\\|RuntimeException\" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -20","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find all catch blocks or instanceof checks for RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"catch.*RateLimitException\\|instanceof RateLimitException\" /Users/lukas/jiminny/app/app --include=\"*.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:11: * Job middleware that catches RateLimitException from HubSpot API calls\n/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:24: } catch (RateLimitException $e) {\n/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:149: if (! $e instanceof RateLimitException) {","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find all test references to RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"RateLimitException\" /Users/lukas/jiminny/app/tests --include=\"*.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:8:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:13:#[CoversClass(RateLimitException::class)]\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:14:class RateLimitExceptionTest extends TestCase\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:18: $exception = new RateLimitException();\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:28: $exception = new RateLimitException('Hubspot rate limit', 30, $previous);\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:52: $exception = new RateLimitException('test', $input);\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:10:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:49: public function testPropagatesNonRateLimitExceptions(): void\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:103: throw new RateLimitException('rate limited', $retryAfter);\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:150: throw new RateLimitException('rate limited', 1);","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check retry/failure handling in GenerateActionItemsJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"RateLimitException\\|retryUntil\\|backoff\\|maxExceptions\\|maxTries\\|release\\|failed\" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -30","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"13:use Jiminny\\Exceptions\\RateLimitException;\n51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception\n56: $this->release(30);","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check retry/failure handling in GenerateAiCallScoringJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"RateLimitException\\|retryUntil\\|backoff\\|maxExceptions\\|maxTries\\|release\\|failed\" /Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php | head -30","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"17:use Jiminny\\Exceptions\\RateLimitException;\n68: RateLimitException |\n75: $this->release(30);","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check retry config in MatchActivityCrmData","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"retryAfter\\|RETRY_WINDOW\\|retryUntil\\|maxTries\" /Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"34: private const int RETRY_WINDOW_MINUTES = 30;\n45: public function retryUntil(): \\DateTimeInterface\n47: return now()->addMinutes(self::RETRY_WINDOW_MINUTES);\n77: return self::RETRY_WINDOW_MINUTES * 60 + 60;","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check the cache key format","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"getRateLimitCacheKey\\|hubspot:ratelimit\" /Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Client.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"78: $cacheKey = $this->getRateLimitCacheKey();\n110: private function getRateLimitCacheKey(): string\n112: return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find other jobs that might use the rate limit middleware","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"class.*Middleware\\|HandleHubspotRateLimit\" /Users/lukas/jiminny/app/app/Jobs --include=\"*.php\" | grep -v \"HandleHubspotRateLimit.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:18:use Jiminny\\Jobs\\Middleware\\HandleHubspotRateLimit;\n/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:42: return [new HandleHubspotRateLimit()];","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"HubspotClientInterface.php","depth":24,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"HubspotClientInterface.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Thought for 73s","depth":23,"on_screen":false,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thought for 73s","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Now I have a complete picture. Here's my full analysis:","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"Review Summary","depth":22,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"Review Summary","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"RuntimeException vs LogicException — Safe ✓","depth":22,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"RuntimeException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"vs","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"LogicException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"— Safe ✓","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"The change is semantically correct and won't break anything.","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"LogicException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is for programmer errors (invalid arguments, contract violations). A rate limit from an external API is a runtime condition —","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RuntimeException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is the right parent. All callers catch","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"by name explicitly (union catches in","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"GenerateActionItemsJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"GenerateAiCallScoringJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"SummarizeTranscriptionJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"GenerateAiActivityTypeJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":") or check","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"instanceof RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"— none relies on the parent class type, so nothing breaks.","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"Issue 1 — Circuit breaker stores stale delay (most important bug)","depth":22,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"Issue 1 — Circuit breaker stores stale delay (most important bug)","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"Client.php:94","depth":23,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Client.php:94","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":23,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Redis::setex($cacheKey, $retryAfter, (string) $retryAfter);","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"The TTL is","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"$retryAfter","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"seconds, but the","depth":23,"on_screen":false,"role_description":"text"}]...
|
64285688363226448
|
-7290746955262282045
|
idle
|
accessibility
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G)
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php
SaveTranscription.php
SetupLayout.php
SyncActivity.php
SyncFieldMetadata.php
SyncHubspotObjects.php
SyncLeads.php
SyncObjects.php
SyncOpportunitiesJob.php
SyncOpportunity.php
SyncProfileMetadata.php
SyncTeamFieldsJob.php
SyncTeamMetadata.php
UpdateOpportunitySpecifications.php
UpdateStage.php
DealRisks
Mailbox
MeetingBot
Middleware
HandleHubspotRateLimit.php
RateLimited.php
Streaming
Team
Telephony
User
BaseProcessingJob.php
DummyJob.php
ImportRecallAIRecordingsJob.php
ImportRemoteTrackJob.php
Job.php
JobDispatcher.php
JobDispatcherInterface.php
PurgeSoftDeletedOpportunityJob.php
SqsVisibilityControl.php
Listeners
Mail
Models
Activity
Ai
AskAnything
Calendar
Connection
Crm
Jobs
app
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
MySQL Section
MYSQL
MYSQL
MatchActivityCrmData.php, Editor Group 1
RateLimitException.php, Editor Group 1
HandleHubspotRateLimit.php, Editor Group 1
Client.php, Editor Group 1
HubspotPaginationService.php, Editor Group 1
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Middleware;
use Illuminate\Support\Facades\Log;
use Jiminny\Exceptions\RateLimitException;
/**
* Job middleware that catches RateLimitException from HubSpot API calls
* and releases the job back to the queue with the appropriate delay.
*/
class HandleHubspotRateLimit
{
private const int MAX_RETRY_DELAY = 600;
private const int MIN_RETRY_DELAY = 1;
private const int JITTER_SECONDS = 5;
public function handle(object $job, callable $next): void
{
try {
$next($job);
} catch (RateLimitException $e) {
$delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));
// Add jitter to prevent thundering herd problem by randomizing retry times
$delay += random_int(0, self::JITTER_SECONDS);
$attempts = $job->attempts();
if ($attempts <= 3 || $attempts % 10 === 0) {
Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [
'job_class' => $job::class,
'attempts' => $attempts,
'retry_after' => $e->getRetryAfter(),
'delay' => $delay,
]);
}
$job->release($delay);
}
}
}
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Middleware;
use Illuminate\Support\Facades\Log;
use Jiminny\Exceptions\RateLimitException;
/**
* Job middleware that catches RateLimitException from HubSpot API calls
* and releases the job back to the queue with the appropriate delay.
*/
class HandleHubspotRateLimit
{
private const int MAX_RETRY_DELAY = 600;
private const int MIN_RETRY_DELAY = 1;
private const int JITTER_SECONDS = 5;
public function handle(object $job, callable $next): void
{
try {
$next($job);
} catch (RateLimitException $e) {
$delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));
// Add jitter to prevent thundering herd problem by randomizing retry times
$delay += random_int(0, self::JITTER_SECONDS);
$attempts = $job->attempts();
if ($attempts <= 3 || $attempts % 10 === 0) {
Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [
'job_class' => $job::class,
'attempts' => $attempts,
'retry_after' => $e->getRetryAfter(),
'delay' => $delay,
]);
}
$job->release($delay);
}
}
}
Review rate limit handli…, Editor Group 2
remote
app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...
JY-20725-handle-HS-search-rate-limit*
app (Git) - Synchronize Changes
Errors: 6, Warnings: 9, Infos: 2
6
9
2
Notifications
key, PHP extension: Premium features not active.
Sign In
Sign In
Diff editor
Clear
Review rate limit handling for HubSpot job queue
Session history
New session
Message actions
RateLimitException.php#9-9
RateLimitException.php#9-9
Reveiw the diff. Mostly
@app/Jobs/Crm/MatchActivityCrmData.php
,
@app/Exceptions/RateLimitException.php
,
@app/Jobs/Middleware/HandleHubspotRateLimit.php
,
@app/Services/Crm/Hubspot/Client.php
and
@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php
. The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?
Thought for 5s
Thought for 5s
I'll review the implementation carefully. Let me first check how
RateLimitException
is used elsewhere and look at the test files and
PaginationState
.
Bash
Find all usages of RateLimitException outside the changed files
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/app --include="*.php" | grep -v "HandleHubspotRateLimit\|MatchActivityCrmData\|Client.php\|RateLimitException.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:17:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:68: RateLimitException |
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:15:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:58: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:19:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:76: RateLimitException |
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:50: * @throws RateLimitException When rate limit is hit
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:195: // RateLimitException and other exceptions are re-thrown as-is
Read
PaginationState.php
PaginationState.php
Read
HandleHubspotRateLimitTest.php
HandleHubspotRateLimitTest.php
Bash
Check how RateLimitException is used in GenerateActionItemsJob
IN
grep -rn "RateLimitException\|LogicException\|RuntimeException" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -20
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
Bash
Find all catch blocks or instanceof checks for RateLimitException
IN
grep -rn "catch.*RateLimitException\|instanceof RateLimitException" /Users/lukas/jiminny/app/app --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:11: * Job middleware that catches RateLimitException from HubSpot API calls
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:24: } catch (RateLimitException $e) {
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:149: if (! $e instanceof RateLimitException) {
Bash
Find all test references to RateLimitException
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/tests --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:13:#[CoversClass(RateLimitException::class)]
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:14:class RateLimitExceptionTest extends TestCase
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:18: $exception = new RateLimitException();
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:28: $exception = new RateLimitException('Hubspot rate limit', 30, $previous);
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:52: $exception = new RateLimitException('test', $input);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:10:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:49: public function testPropagatesNonRateLimitExceptions(): void
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:103: throw new RateLimitException('rate limited', $retryAfter);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:150: throw new RateLimitException('rate limited', 1);
Bash
Check retry/failure handling in GenerateActionItemsJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -30
Copy code to clipboard
OUT
13:use Jiminny\Exceptions\RateLimitException;
51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
56: $this->release(30);
Bash
Check retry/failure handling in GenerateAiCallScoringJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php | head -30
Copy code to clipboard
OUT
17:use Jiminny\Exceptions\RateLimitException;
68: RateLimitException |
75: $this->release(30);
Bash
Check retry config in MatchActivityCrmData
IN
grep -n "retryAfter\|RETRY_WINDOW\|retryUntil\|maxTries" /Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php
Copy code to clipboard
OUT
34: private const int RETRY_WINDOW_MINUTES = 30;
45: public function retryUntil(): \DateTimeInterface
47: return now()->addMinutes(self::RETRY_WINDOW_MINUTES);
77: return self::RETRY_WINDOW_MINUTES * 60 + 60;
Bash
Check the cache key format
IN
grep -n "getRateLimitCacheKey\|hubspot:ratelimit" /Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Client.php
Copy code to clipboard
OUT
78: $cacheKey = $this->getRateLimitCacheKey();
110: private function getRateLimitCacheKey(): string
112: return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());
Bash
Find other jobs that might use the rate limit middleware
IN
grep -rn "class.*Middleware\|HandleHubspotRateLimit" /Users/lukas/jiminny/app/app/Jobs --include="*.php" | grep -v "HandleHubspotRateLimit.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:18:use Jiminny\Jobs\Middleware\HandleHubspotRateLimit;
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:42: return [new HandleHubspotRateLimit()];
Read
HubspotClientInterface.php
HubspotClientInterface.php
Thought for 73s
Thought for 73s
Now I have a complete picture. Here's my full analysis:
Review Summary
Review Summary
RuntimeException vs LogicException — Safe ✓
RuntimeException
vs
LogicException
— Safe ✓
The change is semantically correct and won't break anything.
LogicException
is for programmer errors (invalid arguments, contract violations). A rate limit from an external API is a runtime condition —
RuntimeException
is the right parent. All callers catch
RateLimitException
by name explicitly (union catches in
GenerateActionItemsJob
,
GenerateAiCallScoringJob
,
SummarizeTranscriptionJob
,
GenerateAiActivityTypeJob
) or check
instanceof RateLimitException
— none relies on the parent class type, so nothing breaks.
Issue 1 — Circuit breaker stores stale delay (most important bug)
Issue 1 — Circuit breaker stores stale delay (most important bug)
Client.php:94
Client.php:94
Copy code to clipboard
Redis::setex($cacheKey, $retryAfter, (string) $retryAfter);
The TTL is
$retryAfter
seconds, but the...
|
19536
|
NULL
|
NULL
|
NULL
|
|
19512
|
835
|
0
|
2026-05-11T12:57:27.632226+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778504247632_m2.jpg...
|
Code
|
Review rate limit handli… — app
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 12 pending changes
12
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php
SaveTranscription.php
SetupLayout.php
SyncActivity.php
SyncFieldMetadata.php
SyncHubspotObjects.php
SyncLeads.php
SyncObjects.php
SyncOpportunitiesJob.php
SyncOpportunity.php
SyncProfileMetadata.php
SyncTeamFieldsJob.php
SyncTeamMetadata.php
UpdateOpportunitySpecifications.php
UpdateStage.php
DealRisks
Mailbox
MeetingBot
Middleware
HandleHubspotRateLimit.php
RateLimited.php
Streaming
Team
Telephony
User
BaseProcessingJob.php
DummyJob.php
ImportRecallAIRecordingsJob.php
ImportRemoteTrackJob.php
Job.php
JobDispatcher.php
JobDispatcherInterface.php
PurgeSoftDeletedOpportunityJob.php
SqsVisibilityControl.php
Listeners
Mail
Models
Activity
Ai
AskAnything
Calendar
Connection
Crm
Jobs
app
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
MySQL Section
MYSQL
MYSQL
MatchActivityCrmData.php, Editor Group 1
RateLimitException.php, Editor Group 1
HandleHubspotRateLimit.php, Editor Group 1
Client.php, Editor Group 1
HubspotPaginationService.php, Editor Group 1
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Middleware;
use Illuminate\Support\Facades\Log;
use Jiminny\Exceptions\RateLimitException;
/**
* Job middleware that catches RateLimitException from HubSpot API calls
* and releases the job back to the queue with the appropriate delay.
*/
class HandleHubspotRateLimit
{
private const int MAX_RETRY_DELAY = 600;
private const int MIN_RETRY_DELAY = 1;
private const int JITTER_SECONDS = 5;
public function handle(object $job, callable $next): void
{
try {
$next($job);
} catch (RateLimitException $e) {
$delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));
// Add jitter to prevent thundering herd problem by randomizing retry times
$delay += random_int(0, self::JITTER_SECONDS);
$attempts = $job->attempts();
if ($attempts <= 3 || $attempts % 10 === 0) {
Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [
'job_class' => $job::class,
'attempts' => $attempts,
'retry_after' => $e->getRetryAfter(),
'delay' => $delay,
]);
}
$job->release($delay);
}
}
}
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Middleware;
use Illuminate\Support\Facades\Log;
use Jiminny\Exceptions\RateLimitException;
/**
* Job middleware that catches RateLimitException from HubSpot API calls
* and releases the job back to the queue with the appropriate delay.
*/
class HandleHubspotRateLimit
{
private const int MAX_RETRY_DELAY = 600;
private const int MIN_RETRY_DELAY = 1;
private const int JITTER_SECONDS = 5;
public function handle(object $job, callable $next): void
{
try {
$next($job);
} catch (RateLimitException $e) {
$delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));
// Add jitter to prevent thundering herd problem by randomizing retry times
$delay += random_int(0, self::JITTER_SECONDS);
$attempts = $job->attempts();
if ($attempts <= 3 || $attempts % 10 === 0) {
Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [
'job_class' => $job::class,
'attempts' => $attempts,
'retry_after' => $e->getRetryAfter(),
'delay' => $delay,
]);
}
$job->release($delay);
}
}
}
Review rate limit handli…, Editor Group 2
remote
app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...
JY-20725-handle-HS-search-rate-limit*
app (Git) - Synchronize Changes
Errors: 6, Warnings: 9, Infos: 2
6
9
2
Notifications
key, PHP extension: Premium features not active.
Sign In
Sign In
Diff editor
Clear
Review rate limit handling for HubSpot job queue
Session history
New session
Message actions
RateLimitException.php#9-9
RateLimitException.php#9-9
Reveiw the diff. Mostly
@app/Jobs/Crm/MatchActivityCrmData.php
,
@app/Exceptions/RateLimitException.php
,
@app/Jobs/Middleware/HandleHubspotRateLimit.php
,
@app/Services/Crm/Hubspot/Client.php
and
@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php
. The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?
Thought for 5s
Thought for 5s
I'll review the implementation carefully. Let me first check how
RateLimitException
is used elsewhere and look at the test files and
PaginationState
.
Bash
Find all usages of RateLimitException outside the changed files
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/app --include="*.php" | grep -v "HandleHubspotRateLimit\|MatchActivityCrmData\|Client.php\|RateLimitException.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:17:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:68: RateLimitException |
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:15:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:58: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:19:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:76: RateLimitException |
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:50: * @throws RateLimitException When rate limit is hit
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:195: // RateLimitException and other exceptions are re-thrown as-is
Read
PaginationState.php
PaginationState.php
Read
HandleHubspotRateLimitTest.php
HandleHubspotRateLimitTest.php
Bash
Check how RateLimitException is used in GenerateActionItemsJob
IN
grep -rn "RateLimitException\|LogicException\|RuntimeException" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -20
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
Bash
Find all catch blocks or instanceof checks for RateLimitException
IN
grep -rn "catch.*RateLimitException\|instanceof RateLimitException" /Users/lukas/jiminny/app/app --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:11: * Job middleware that catches RateLimitException from HubSpot API calls
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:24: } catch (RateLimitException $e) {
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:149: if (! $e instanceof RateLimitException) {
Bash
Find all test references to RateLimitException
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/tests --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:13:#[CoversClass(RateLimitException::class)]
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:14:class RateLimitExceptionTest extends TestCase
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:18: $exception = new RateLimitException();
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:28: $exception = new RateLimitException('Hubspot rate limit', 30, $previous);
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:52: $exception = new RateLimitException('test', $input);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:10:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:49: public function testPropagatesNonRateLimitExceptions(): void
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:103: throw new RateLimitException('rate limited', $retryAfter);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:150: throw new RateLimitException('rate limited', 1);
Bash
Check retry/failure handling in GenerateActionItemsJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -30
Copy code to clipboard
OUT
13:use Jiminny\Exceptions\RateLimitException;
51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
56: $this->release(30);
Bash
Check retry/failure handling in GenerateAiCallScoringJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php | head -30
Copy code to clipboard
OUT
17:use Jiminny\Exceptions\RateLimitException;
68: RateLimitException |
75: $this->release(30);
Bash
Check retry config in MatchActivityCrmData
IN
grep -n "retryAfter\|RETRY_WINDOW\|retryUntil\|maxTries" /Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php
Copy code to clipboard
OUT
34: private const int RETRY_WINDOW_MINUTES = 30;
45: public function retryUntil(): \DateTimeInterface
47: return now()->addMinutes(self::RETRY_WINDOW_MINUTES);
77: return self::RETRY_WINDOW_MINUTES * 60 + 60;
Bash
Check the cache key format
IN
grep -n "getRateLimitCacheKey\|hubspot:ratelimit" /Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Client.php
Copy code to clipboard
OUT
78: $cacheKey = $this->getRateLimitCacheKey();
110: private function getRateLimitCacheKey(): string
112: return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());
Bash
Find other jobs that might use the rate limit middleware
IN
grep -rn "class.*Middleware\|HandleHubspotRateLimit" /Users/lukas/jiminny/app/app/Jobs --include="*.php" | grep -v "HandleHubspotRateLimit.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:18:use Jiminny\Jobs\Middleware\HandleHubspotRateLimit;
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:42: return [new HandleHubspotRateLimit()];
Read
HubspotClientInterface.php
HubspotClientInterface.php
Thought for 73s
Thought for 73s
Now I have a complete picture. Here's my full analysis:
Review Summary
Review Summary
RuntimeException vs LogicException — Safe ✓
RuntimeException
vs
LogicException
— Safe ✓
The change is semantically correct and won't break anything.
LogicException
is for programmer errors (invalid arguments, contract violations). A rate limit from an external API is a runtime condition —
RuntimeException
is the right parent. All callers catch
RateLimitException
by name explicitly (union catches in
GenerateActionItemsJob
,
GenerateAiCallScoringJob
,
SummarizeTranscriptionJob
,
GenerateAiActivityTypeJob
) or check
instanceof RateLimitException
— none relies on the parent class type, so nothing breaks.
Issue 1 — Circuit breaker stores stale delay (most important bug)
Issue 1 — Circuit breaker stores stale delay (most important bug)
Client.php:94
Client.php:94
Copy code to clipboard
Redis::setex($cacheKey, $retryAfter, (string) $retryAfter);
The TTL is
$retryAfter
seconds, but the
stored value
is also the original
$retryAfter
. If a second job reads this cache 20 seconds later, it throws
RateLimitException(retryAfter=30)
and gets delayed 30 more seconds — even though only 10 remain. In a spike of 100 jobs, each subsequent job inflates its wait.
Fix:
store the absolute expiry timestamp, reconstruct the remaining delay when reading:
Copy code to clipboard
// on 429:
Redis::setex($cacheKey, $retryAfter, (string) (time() + $retryAfter));
// in the cached-read branch:
$remaining = max(1, (int) $cachedRetryAfter - time());
throw new RateLimitException('Hubspot rate limit (cached circuit-breaker)', $remaining);
Issue 2 — retryUntil() window may expire under sustained rate limiting
Issue 2 —
retryUntil()
window may expire under sustained rate limiting
MatchActivityCrmData.php:45-47
MatchActivityCrmData.php:45-47
retryUntil()
is calculated as
now() + 30 min
at
dispatch time
and stored in the job payload. With
MAX_RETRY_DELAY = 600s
, you only get ~3 rate-limit-triggered releases before the 30-minute window closes and the job is permanently failed. For a heavy 429 spike (daily limit, parsed as 600s), this can easily happen.
Consider increasing...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Explorer (⇧⌘E)","depth":19,"bounds":{"left":0.0,"top":0.047885075,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":true},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.057462092,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Search (⇧⌘F)","depth":19,"bounds":{"left":0.0,"top":0.08619314,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.09577015,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Source Control (⌃⇧G) - 12 pending changes","depth":19,"bounds":{"left":0.0,"top":0.1245012,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.13407822,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"12","depth":22,"bounds":{"left":0.00831117,"top":0.1452514,"width":0.003656915,"height":0.008778931},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.008643617,"top":0.14604948,"width":0.0016622341,"height":0.007980846}},{"char_start":1,"char_count":1,"bounds":{"left":0.009973404,"top":0.14604948,"width":0.0023271276,"height":0.007980846}}],"role_description":"text"},{"role":"AXRadioButton","text":"Run and Debug (⇧⌘D)","depth":19,"bounds":{"left":0.0,"top":0.16280925,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.17238627,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Remote Explorer","depth":19,"bounds":{"left":0.0,"top":0.20111732,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.21069433,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Extensions (⇧⌘X) - 2 require update","depth":19,"bounds":{"left":0.0,"top":0.23942538,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.2490024,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":22,"bounds":{"left":0.009640957,"top":0.2601756,"width":0.0019946808,"height":0.008778931},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Testing","depth":19,"bounds":{"left":0.0,"top":0.27773345,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.28731045,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Claude Code","depth":19,"bounds":{"left":0.0,"top":0.3160415,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"EXPLORER","depth":17,"bounds":{"left":0.022606382,"top":0.047885075,"width":0.018949468,"height":0.02793296},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"EXPLORER","depth":18,"bounds":{"left":0.022606382,"top":0.056664005,"width":0.018949468,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.022606382,"top":0.056664005,"width":0.0023271276,"height":0.0103751}},{"char_start":1,"char_count":7,"bounds":{"left":0.024933511,"top":0.056664005,"width":0.01662234,"height":0.0103751}}],"role_description":"text"},{"role":"AXButton","text":"Explorer Section: app","depth":21,"bounds":{"left":0.015957447,"top":0.07581804,"width":0.09940159,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.07821229,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"Explorer Section: app","depth":22,"bounds":{"left":0.022606382,"top":0.07581804,"width":0.0076462766,"height":0.017557861},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"APP","depth":23,"bounds":{"left":0.022606382,"top":0.079010375,"width":0.0076462766,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.0933759,"width":0.0063164895,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CheckAndRetryRemoteMatch.php","depth":27,"bounds":{"left":0.033909574,"top":0.0933759,"width":0.068484046,"height":0.011173184},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.0933759,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":27,"bounds":{"left":0.036901597,"top":0.0933759,"width":0.06549202,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.10853951,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateFollowupActivity.php","depth":27,"bounds":{"left":0.033909574,"top":0.110135674,"width":0.054853722,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.11093376,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":25,"bounds":{"left":0.036901597,"top":0.11093376,"width":0.051861703,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.12609737,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateNotes.php","depth":27,"bounds":{"left":0.033909574,"top":0.12769353,"width":0.034242023,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.12849163,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.036901597,"top":0.12849163,"width":0.03125,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.14365523,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivitiesToNewOpportunity.php","depth":27,"bounds":{"left":0.033909574,"top":0.1452514,"width":0.07712766,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.14604948,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":34,"bounds":{"left":0.037898935,"top":0.14604948,"width":0.07347074,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.16121309,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivityCrmData.php","depth":27,"bounds":{"left":0.033909574,"top":0.16280925,"width":0.054521278,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.16360734,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":23,"bounds":{"left":0.037898935,"top":0.16360734,"width":0.050531916,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.17877094,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"NoteObject.php","depth":27,"bounds":{"left":0.033909574,"top":0.18036711,"width":0.031914894,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.1811652,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":13,"bounds":{"left":0.03723404,"top":0.1811652,"width":0.028922873,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.1963288,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SaveActivity.php","depth":27,"bounds":{"left":0.033909574,"top":0.19792499,"width":0.03324468,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.19872306,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":15,"bounds":{"left":0.03656915,"top":0.19872306,"width":0.030585106,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.21388668,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SaveTranscription.php","depth":27,"bounds":{"left":0.033909574,"top":0.21548285,"width":0.04454787,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.21628092,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":20,"bounds":{"left":0.03656915,"top":0.21628092,"width":0.042220745,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.23144454,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SetupLayout.php","depth":27,"bounds":{"left":0.033909574,"top":0.2330407,"width":0.034242023,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.23383878,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.03656915,"top":0.23383878,"width":0.031914894,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.2490024,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncActivity.php","depth":27,"bounds":{"left":0.033909574,"top":0.25059855,"width":0.03357713,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.25139666,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":15,"bounds":{"left":0.03656915,"top":0.25139666,"width":0.030917553,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.26656026,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncFieldMetadata.php","depth":27,"bounds":{"left":0.033909574,"top":0.26815644,"width":0.047539894,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.26895452,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":20,"bounds":{"left":0.03656915,"top":0.26895452,"width":0.04488032,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.28411812,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncHubspotObjects.php","depth":27,"bounds":{"left":0.033909574,"top":0.2857143,"width":0.051861703,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.28651237,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":21,"bounds":{"left":0.03656915,"top":0.28651237,"width":0.04920213,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.30167598,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncLeads.php","depth":27,"bounds":{"left":0.033909574,"top":0.30327216,"width":0.030917553,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.30407023,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":12,"bounds":{"left":0.03656915,"top":0.30407023,"width":0.02825798,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.31923383,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncObjects.php","depth":27,"bounds":{"left":0.033909574,"top":0.32083002,"width":0.034574468,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.3216281,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.03656915,"top":0.3216281,"width":0.031914894,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.3367917,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncOpportunitiesJob.php","depth":27,"bounds":{"left":0.033909574,"top":0.33838788,"width":0.053856384,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.33918595,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":23,"bounds":{"left":0.03656915,"top":0.33918595,"width":0.05119681,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.35434955,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncOpportunity.php","depth":27,"bounds":{"left":0.033909574,"top":0.35594574,"width":0.04288564,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.3567438,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":18,"bounds":{"left":0.03656915,"top":0.3567438,"width":0.040226065,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.3719074,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncProfileMetadata.php","depth":27,"bounds":{"left":0.033909574,"top":0.3735036,"width":0.05086436,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.37430167,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":22,"bounds":{"left":0.03656915,"top":0.37430167,"width":0.048204787,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.38946527,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncTeamFieldsJob.php","depth":27,"bounds":{"left":0.033909574,"top":0.39106146,"width":0.04886968,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.39185953,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":20,"bounds":{"left":0.03656915,"top":0.39185953,"width":0.046210106,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.40702313,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncTeamMetadata.php","depth":27,"bounds":{"left":0.033909574,"top":0.4086193,"width":0.048537236,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.4094174,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":19,"bounds":{"left":0.03656915,"top":0.4094174,"width":0.045877658,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.424581,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"UpdateOpportunitySpecifications.php","depth":27,"bounds":{"left":0.033909574,"top":0.42617717,"width":0.076130316,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.42697525,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":34,"bounds":{"left":0.03723404,"top":0.42697525,"width":0.0731383,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.44213888,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"UpdateStage.php","depth":27,"bounds":{"left":0.033909574,"top":0.44373503,"width":0.03523936,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.4445331,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.03723404,"top":0.4445331,"width":0.032247342,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.4612929,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"DealRisks","depth":27,"bounds":{"left":0.03125,"top":0.4612929,"width":0.019614361,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.46209097,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":8,"bounds":{"left":0.034574468,"top":0.46209097,"width":0.016289894,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.47885075,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mailbox","depth":27,"bounds":{"left":0.03125,"top":0.47885075,"width":0.015625,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.47964883,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":6,"bounds":{"left":0.03523936,"top":0.47964883,"width":0.011635638,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.4964086,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MeetingBot","depth":27,"bounds":{"left":0.03125,"top":0.4964086,"width":0.023271276,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.49720672,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":9,"bounds":{"left":0.03523936,"top":0.49720672,"width":0.019281914,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.5139665,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Middleware","depth":27,"bounds":{"left":0.03125,"top":0.5139665,"width":0.023271276,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.51476455,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":9,"bounds":{"left":0.03523936,"top":0.51476455,"width":0.019281914,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.52992815,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"HandleHubspotRateLimit.php","depth":27,"bounds":{"left":0.033909574,"top":0.53152436,"width":0.059175532,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.5323224,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":25,"bounds":{"left":0.03723404,"top":0.5323224,"width":0.05618351,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.547486,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"RateLimited.php","depth":27,"bounds":{"left":0.033909574,"top":0.5490822,"width":0.032912236,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.54988027,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.036901597,"top":0.54988027,"width":0.029920213,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.5666401,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Streaming","depth":27,"bounds":{"left":0.03125,"top":0.5666401,"width":0.020611702,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.5674381,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":8,"bounds":{"left":0.033909574,"top":0.5674381,"width":0.017952127,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.58419794,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Team","depth":27,"bounds":{"left":0.03125,"top":0.58419794,"width":0.010970744,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.584996,"width":0.0023271276,"height":0.011971269}},{"char_start":1,"char_count":3,"bounds":{"left":0.03357713,"top":0.584996,"width":0.008643617,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.6017558,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Telephony","depth":27,"bounds":{"left":0.03125,"top":0.6017558,"width":0.020611702,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.60255384,"width":0.0023271276,"height":0.011971269}},{"char_start":1,"char_count":8,"bounds":{"left":0.03357713,"top":0.60255384,"width":0.018284574,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.61931366,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"User","depth":27,"bounds":{"left":0.03125,"top":0.61931366,"width":0.00930851,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.6201117,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":3,"bounds":{"left":0.034574468,"top":0.6201117,"width":0.0063164895,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.63527536,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"BaseProcessingJob.php","depth":27,"bounds":{"left":0.03125,"top":0.6368715,"width":0.048537236,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.63766956,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":20,"bounds":{"left":0.034242023,"top":0.63766956,"width":0.045545213,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.6528332,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"DummyJob.php","depth":27,"bounds":{"left":0.03125,"top":0.6544294,"width":0.03158245,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.6552275,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":11,"bounds":{"left":0.034574468,"top":0.6552275,"width":0.02825798,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.6703911,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"ImportRecallAIRecordingsJob.php","depth":27,"bounds":{"left":0.03125,"top":0.67198724,"width":0.068484046,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.67278534,"width":0.0013297872,"height":0.011971269}},{"char_start":1,"char_count":30,"bounds":{"left":0.032579787,"top":0.67278534,"width":0.06715426,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.68794894,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"ImportRemoteTrackJob.php","depth":27,"bounds":{"left":0.03125,"top":0.6895451,"width":0.055518616,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.6903432,"width":0.0013297872,"height":0.011971269}},{"char_start":1,"char_count":23,"bounds":{"left":0.032579787,"top":0.6903432,"width":0.054521278,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.7055068,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Job.php","depth":27,"bounds":{"left":0.03125,"top":0.70710295,"width":0.016289894,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.70790106,"width":0.0023271276,"height":0.011971269}},{"char_start":1,"char_count":6,"bounds":{"left":0.03357713,"top":0.70790106,"width":0.014295213,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.72306466,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JobDispatcher.php","depth":27,"bounds":{"left":0.03125,"top":0.7246608,"width":0.037898935,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.7254589,"width":0.0023271276,"height":0.011971269}},{"char_start":1,"char_count":16,"bounds":{"left":0.03357713,"top":0.7254589,"width":0.035904255,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.7406225,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JobDispatcherInterface.php","depth":27,"bounds":{"left":0.03125,"top":0.7422187,"width":0.05618351,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.7430168,"width":0.0023271276,"height":0.011971269}},{"char_start":1,"char_count":25,"bounds":{"left":0.03357713,"top":0.7430168,"width":0.05418883,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.7581804,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"PurgeSoftDeletedOpportunityJob.php","depth":27,"bounds":{"left":0.03125,"top":0.75977653,"width":0.076130316,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.77573824,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SqsVisibilityControl.php","depth":27,"bounds":{"left":0.03125,"top":0.7773344,"width":0.047872342,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.022273935,"top":0.79489225,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Listeners","depth":27,"bounds":{"left":0.028590426,"top":0.79489225,"width":0.018284574,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.022273935,"top":0.8124501,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mail","depth":27,"bounds":{"left":0.028590426,"top":0.8124501,"width":0.00831117,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.022273935,"top":0.830008,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Models","depth":27,"bounds":{"left":0.028590426,"top":0.830008,"width":0.01462766,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.8475658,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Activity","depth":27,"bounds":{"left":0.03125,"top":0.8475658,"width":0.014960106,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.8651237,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Ai","depth":27,"bounds":{"left":0.03125,"top":0.8651237,"width":0.0039893617,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.88268155,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"AskAnything","depth":27,"bounds":{"left":0.03125,"top":0.88268155,"width":0.025265958,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.9002394,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Calendar","depth":27,"bounds":{"left":0.03125,"top":0.9002394,"width":0.017952127,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.91779727,"width":0.005319149,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Connection","depth":27,"bounds":{"left":0.03125,"top":0.91779727,"width":0.022938829,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.13088587,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Crm","depth":27,"bounds":{"left":0.03125,"top":0.13088587,"width":0.00831117,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.022273935,"top":0.11332801,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Jobs","depth":27,"bounds":{"left":0.028590426,"top":0.11332801,"width":0.009640957,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.019614361,"top":0.09577015,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"app","depth":27,"bounds":{"left":0.025930852,"top":0.09577015,"width":0.0076462766,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.10605053,"top":0.096568234,"width":0.004654255,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Outline Section","depth":21,"bounds":{"left":0.015957447,"top":0.92976856,"width":0.09940159,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.9321628,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"OUTLINE","depth":22,"bounds":{"left":0.022606382,"top":0.92976856,"width":0.01662234,"height":0.017557861},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"OUTLINE","depth":23,"bounds":{"left":0.022606382,"top":0.933759,"width":0.01662234,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Timeline Section","depth":21,"bounds":{"left":0.015957447,"top":0.9473264,"width":0.09940159,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.9497207,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"TIMELINE","depth":22,"bounds":{"left":0.022606382,"top":0.9473264,"width":0.01761968,"height":0.017557861},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"TIMELINE","depth":23,"bounds":{"left":0.022606382,"top":0.95131683,"width":0.01761968,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"MySQL Section","depth":21,"bounds":{"left":0.015957447,"top":0.9648843,"width":0.09940159,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.96727854,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"MYSQL","depth":22,"bounds":{"left":0.022606382,"top":0.9648843,"width":0.013297873,"height":0.017557861},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"MYSQL","depth":23,"bounds":{"left":0.022606382,"top":0.9688747,"width":0.013297873,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"MatchActivityCrmData.php, Editor Group 1","depth":28,"bounds":{"left":0.11569149,"top":0.047885075,"width":0.07480053,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"RateLimitException.php, Editor Group 1","depth":28,"bounds":{"left":0.19015957,"top":0.047885075,"width":0.06815159,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"HandleHubspotRateLimit.php, Editor Group 1","depth":28,"bounds":{"left":0.25797874,"top":0.047885075,"width":0.080119684,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXRadioButton","text":"Client.php, Editor Group 1","depth":28,"bounds":{"left":0.33776596,"top":0.047885075,"width":0.045545213,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"HubspotPaginationService.php, Editor Group 1","depth":28,"bounds":{"left":0.38297874,"top":0.047885075,"width":0.08277926,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.12832446,"top":0.07821229,"width":0.0056515955,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.14328457,"top":0.07821229,"width":0.0056515955,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.171875,"top":0.07821229,"width":0.0056515955,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.24401596,"top":0.07821229,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.24933511,"top":0.07821229,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Middleware;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Exceptions\\RateLimitException;\n\n/**\n * Job middleware that catches RateLimitException from HubSpot API calls\n * and releases the job back to the queue with the appropriate delay.\n */\nclass HandleHubspotRateLimit\n{\n private const int MAX_RETRY_DELAY = 600;\n private const int MIN_RETRY_DELAY = 1;\n private const int JITTER_SECONDS = 5;\n\n public function handle(object $job, callable $next): void\n {\n try {\n $next($job);\n } catch (RateLimitException $e) {\n $delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));\n // Add jitter to prevent thundering herd problem by randomizing retry times\n $delay += random_int(0, self::JITTER_SECONDS);\n\n $attempts = $job->attempts();\n if ($attempts <= 3 || $attempts % 10 === 0) {\n Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [\n 'job_class' => $job::class,\n 'attempts' => $attempts,\n 'retry_after' => $e->getRetryAfter(),\n 'delay' => $delay,\n ]);\n }\n\n $job->release($delay);\n }\n }\n}","depth":28,"bounds":{"left":0.13763298,"top":0.27613726,"width":0.23803191,"height":0.014365523},"on_screen":true,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Middleware;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Exceptions\\RateLimitException;\n\n/**\n * Job middleware that catches RateLimitException from HubSpot API calls\n * and releases the job back to the queue with the appropriate delay.\n */\nclass HandleHubspotRateLimit\n{\n private const int MAX_RETRY_DELAY = 600;\n private const int MIN_RETRY_DELAY = 1;\n private const int JITTER_SECONDS = 5;\n\n public function handle(object $job, callable $next): void\n {\n try {\n $next($job);\n } catch (RateLimitException $e) {\n $delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));\n // Add jitter to prevent thundering herd problem by randomizing retry times\n $delay += random_int(0, self::JITTER_SECONDS);\n\n $attempts = $job->attempts();\n if ($attempts <= 3 || $attempts % 10 === 0) {\n Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [\n 'job_class' => $job::class,\n 'attempts' => $attempts,\n 'retry_after' => $e->getRetryAfter(),\n 'delay' => $delay,\n ]);\n }\n\n $job->release($delay);\n }\n }\n}","role_description":"editor","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Middleware;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Exceptions\\RateLimitException;\n\n/**\n * Job middleware that catches RateLimitException from HubSpot API calls\n * and releases the job back to the queue with the appropriate delay.\n */\nclass HandleHubspotRateLimit\n{\n private const int MAX_RETRY_DELAY = 600;\n private const int MIN_RETRY_DELAY = 1;\n private const int JITTER_SECONDS = 5;\n\n public function handle(object $job, callable $next): void\n {\n try {\n $next($job);\n } catch (RateLimitException $e) {\n $delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));\n // Add jitter to prevent thundering herd problem by randomizing retry times\n $delay += random_int(0, self::JITTER_SECONDS);\n\n $attempts = $job->attempts();\n if ($attempts <= 3 || $attempts % 10 === 0) {\n Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [\n 'job_class' => $job::class,\n 'attempts' => $attempts,\n 'retry_after' => $e->getRetryAfter(),\n 'delay' => $delay,\n ]);\n }\n\n $job->release($delay);\n }\n }\n}","depth":29,"bounds":{"left":0.13763298,"top":0.27613726,"width":0.23803191,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Review rate limit handli…, Editor Group 2","depth":28,"bounds":{"left":0.5578458,"top":0.047885075,"width":0.07014628,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXButton","text":"remote","depth":16,"bounds":{"left":0.0006648936,"top":0.98244214,"width":0.010638298,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...","depth":16,"bounds":{"left":0.012965426,"top":0.98244214,"width":0.084773935,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.013962766,"top":0.9848364,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JY-20725-handle-HS-search-rate-limit*","depth":17,"bounds":{"left":0.019281914,"top":0.9856345,"width":0.0774601,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"app (Git) - Synchronize Changes","depth":16,"bounds":{"left":0.09740692,"top":0.98244214,"width":0.0076462766,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Errors: 6, Warnings: 9, Infos: 2","depth":16,"bounds":{"left":0.107380316,"top":0.98244214,"width":0.032579787,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.109042555,"top":0.9848364,"width":0.0056515955,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"6","depth":17,"bounds":{"left":0.1143617,"top":0.9856345,"width":0.004986702,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.11934841,"top":0.9848364,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"9","depth":17,"bounds":{"left":0.124667555,"top":0.9856345,"width":0.004654255,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.12932181,"top":0.9848364,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":17,"bounds":{"left":0.13464096,"top":0.9856345,"width":0.003656915,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Notifications","depth":16,"bounds":{"left":0.9886968,"top":0.98244214,"width":0.010638298,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"key, PHP extension: Premium features not active.","depth":16,"bounds":{"left":0.9790558,"top":0.98244214,"width":0.008643617,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sign In","depth":16,"bounds":{"left":0.9544548,"top":0.98244214,"width":0.022606382,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.95611703,"top":0.9848364,"width":0.0056515955,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Sign In","depth":17,"bounds":{"left":0.96143615,"top":0.9856345,"width":0.013962766,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Diff editor","depth":12,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Clear","depth":12,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Review rate limit handling for HubSpot job queue","depth":19,"bounds":{"left":0.56017286,"top":0.08060654,"width":0.099734046,"height":0.022346368},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Session history","depth":19,"bounds":{"left":0.9780585,"top":0.08060654,"width":0.00930851,"height":0.022346368},"on_screen":true,"help_text":"Session history","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New session","depth":19,"bounds":{"left":0.9886968,"top":0.08060654,"width":0.00930851,"height":0.022346368},"on_screen":true,"help_text":"New session","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Message actions","depth":24,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"RateLimitException.php#9-9","depth":23,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"RateLimitException.php#9-9","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Reveiw the diff. Mostly","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Jobs/Crm/MatchActivityCrmData.php","depth":26,"on_screen":false,"help_text":"Open app/Jobs/Crm/MatchActivityCrmData.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Exceptions/RateLimitException.php","depth":26,"on_screen":false,"help_text":"Open app/Exceptions/RateLimitException.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Jobs/Middleware/HandleHubspotRateLimit.php","depth":26,"on_screen":false,"help_text":"Open app/Jobs/Middleware/HandleHubspotRateLimit.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Services/Crm/Hubspot/Client.php","depth":26,"on_screen":false,"help_text":"Open app/Services/Crm/Hubspot/Client.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"and","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php","depth":26,"on_screen":false,"help_text":"Open app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":". The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Thought for 5s","depth":23,"on_screen":false,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thought for 5s","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"I'll review the implementation carefully. Let me first check how","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is used elsewhere and look at the test files and","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"PaginationState","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":".","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find all usages of RateLimitException outside the changed files","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"RateLimitException\" /Users/lukas/jiminny/app/app --include=\"*.php\" | grep -v \"HandleHubspotRateLimit\\|MatchActivityCrmData\\|Client.php\\|RateLimitException.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception\n/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:17:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:68: RateLimitException |\n/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:15:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:58: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception\n/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:19:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:76: RateLimitException |\n/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:8:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:50: * @throws RateLimitException When rate limit is hit\n/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:195: // RateLimitException and other exceptions are re-thrown as-is","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"PaginationState.php","depth":24,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"PaginationState.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"HandleHubspotRateLimitTest.php","depth":24,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"HandleHubspotRateLimitTest.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check how RateLimitException is used in GenerateActionItemsJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"RateLimitException\\|LogicException\\|RuntimeException\" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -20","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find all catch blocks or instanceof checks for RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"catch.*RateLimitException\\|instanceof RateLimitException\" /Users/lukas/jiminny/app/app --include=\"*.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:11: * Job middleware that catches RateLimitException from HubSpot API calls\n/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:24: } catch (RateLimitException $e) {\n/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:149: if (! $e instanceof RateLimitException) {","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find all test references to RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"RateLimitException\" /Users/lukas/jiminny/app/tests --include=\"*.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:8:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:13:#[CoversClass(RateLimitException::class)]\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:14:class RateLimitExceptionTest extends TestCase\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:18: $exception = new RateLimitException();\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:28: $exception = new RateLimitException('Hubspot rate limit', 30, $previous);\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:52: $exception = new RateLimitException('test', $input);\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:10:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:49: public function testPropagatesNonRateLimitExceptions(): void\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:103: throw new RateLimitException('rate limited', $retryAfter);\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:150: throw new RateLimitException('rate limited', 1);","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check retry/failure handling in GenerateActionItemsJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"RateLimitException\\|retryUntil\\|backoff\\|maxExceptions\\|maxTries\\|release\\|failed\" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -30","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"13:use Jiminny\\Exceptions\\RateLimitException;\n51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception\n56: $this->release(30);","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check retry/failure handling in GenerateAiCallScoringJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"RateLimitException\\|retryUntil\\|backoff\\|maxExceptions\\|maxTries\\|release\\|failed\" /Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php | head -30","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"17:use Jiminny\\Exceptions\\RateLimitException;\n68: RateLimitException |\n75: $this->release(30);","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check retry config in MatchActivityCrmData","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"retryAfter\\|RETRY_WINDOW\\|retryUntil\\|maxTries\" /Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"34: private const int RETRY_WINDOW_MINUTES = 30;\n45: public function retryUntil(): \\DateTimeInterface\n47: return now()->addMinutes(self::RETRY_WINDOW_MINUTES);\n77: return self::RETRY_WINDOW_MINUTES * 60 + 60;","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check the cache key format","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"getRateLimitCacheKey\\|hubspot:ratelimit\" /Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Client.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"78: $cacheKey = $this->getRateLimitCacheKey();\n110: private function getRateLimitCacheKey(): string\n112: return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find other jobs that might use the rate limit middleware","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"class.*Middleware\\|HandleHubspotRateLimit\" /Users/lukas/jiminny/app/app/Jobs --include=\"*.php\" | grep -v \"HandleHubspotRateLimit.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:18:use Jiminny\\Jobs\\Middleware\\HandleHubspotRateLimit;\n/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:42: return [new HandleHubspotRateLimit()];","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"HubspotClientInterface.php","depth":24,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"HubspotClientInterface.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Thought for 73s","depth":23,"on_screen":false,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thought for 73s","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Now I have a complete picture. Here's my full analysis:","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"Review Summary","depth":22,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"Review Summary","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"RuntimeException vs LogicException — Safe ✓","depth":22,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"RuntimeException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"vs","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"LogicException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"— Safe ✓","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"The change is semantically correct and won't break anything.","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"LogicException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is for programmer errors (invalid arguments, contract violations). A rate limit from an external API is a runtime condition —","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RuntimeException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is the right parent. All callers catch","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"by name explicitly (union catches in","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"GenerateActionItemsJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"GenerateAiCallScoringJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"SummarizeTranscriptionJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"GenerateAiActivityTypeJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":") or check","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"instanceof RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"— none relies on the parent class type, so nothing breaks.","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"Issue 1 — Circuit breaker stores stale delay (most important bug)","depth":22,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"Issue 1 — Circuit breaker stores stale delay (most important bug)","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"Client.php:94","depth":23,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Client.php:94","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":23,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Redis::setex($cacheKey, $retryAfter, (string) $retryAfter);","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"The TTL is","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"$retryAfter","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"seconds, but the","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"stored value","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is also the original","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"$retryAfter","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":". If a second job reads this cache 20 seconds later, it throws","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RateLimitException(retryAfter=30)","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"and gets delayed 30 more seconds — even though only 10 remain. In a spike of 100 jobs, each subsequent job inflates its wait.","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Fix:","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"store the absolute expiry timestamp, reconstruct the remaining delay when reading:","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":23,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"// on 429:\nRedis::setex($cacheKey, $retryAfter, (string) (time() + $retryAfter));\n\n// in the cached-read branch:\n$remaining = max(1, (int) $cachedRetryAfter - time());\nthrow new RateLimitException('Hubspot rate limit (cached circuit-breaker)', $remaining);","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"Issue 2 — retryUntil() window may expire under sustained rate limiting","depth":22,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"Issue 2 —","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"retryUntil()","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"window may expire under sustained rate limiting","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"MatchActivityCrmData.php:45-47","depth":23,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"MatchActivityCrmData.php:45-47","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"retryUntil()","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is calculated as","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"now() + 30 min","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"at","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"dispatch time","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"and stored in the job payload. With","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"MAX_RETRY_DELAY = 600s","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":", you only get ~3 rate-limit-triggered releases before the 30-minute window closes and the job is permanently failed. For a heavy 429 spike (daily limit, parsed as 600s), this can easily happen.","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Consider increasing","depth":23,"on_screen":false,"role_description":"text"}]...
|
-7951419243892786339
|
-8011885845529446717
|
idle
|
accessibility
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 12 pending changes
12
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php
SaveTranscription.php
SetupLayout.php
SyncActivity.php
SyncFieldMetadata.php
SyncHubspotObjects.php
SyncLeads.php
SyncObjects.php
SyncOpportunitiesJob.php
SyncOpportunity.php
SyncProfileMetadata.php
SyncTeamFieldsJob.php
SyncTeamMetadata.php
UpdateOpportunitySpecifications.php
UpdateStage.php
DealRisks
Mailbox
MeetingBot
Middleware
HandleHubspotRateLimit.php
RateLimited.php
Streaming
Team
Telephony
User
BaseProcessingJob.php
DummyJob.php
ImportRecallAIRecordingsJob.php
ImportRemoteTrackJob.php
Job.php
JobDispatcher.php
JobDispatcherInterface.php
PurgeSoftDeletedOpportunityJob.php
SqsVisibilityControl.php
Listeners
Mail
Models
Activity
Ai
AskAnything
Calendar
Connection
Crm
Jobs
app
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
MySQL Section
MYSQL
MYSQL
MatchActivityCrmData.php, Editor Group 1
RateLimitException.php, Editor Group 1
HandleHubspotRateLimit.php, Editor Group 1
Client.php, Editor Group 1
HubspotPaginationService.php, Editor Group 1
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Middleware;
use Illuminate\Support\Facades\Log;
use Jiminny\Exceptions\RateLimitException;
/**
* Job middleware that catches RateLimitException from HubSpot API calls
* and releases the job back to the queue with the appropriate delay.
*/
class HandleHubspotRateLimit
{
private const int MAX_RETRY_DELAY = 600;
private const int MIN_RETRY_DELAY = 1;
private const int JITTER_SECONDS = 5;
public function handle(object $job, callable $next): void
{
try {
$next($job);
} catch (RateLimitException $e) {
$delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));
// Add jitter to prevent thundering herd problem by randomizing retry times
$delay += random_int(0, self::JITTER_SECONDS);
$attempts = $job->attempts();
if ($attempts <= 3 || $attempts % 10 === 0) {
Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [
'job_class' => $job::class,
'attempts' => $attempts,
'retry_after' => $e->getRetryAfter(),
'delay' => $delay,
]);
}
$job->release($delay);
}
}
}
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Middleware;
use Illuminate\Support\Facades\Log;
use Jiminny\Exceptions\RateLimitException;
/**
* Job middleware that catches RateLimitException from HubSpot API calls
* and releases the job back to the queue with the appropriate delay.
*/
class HandleHubspotRateLimit
{
private const int MAX_RETRY_DELAY = 600;
private const int MIN_RETRY_DELAY = 1;
private const int JITTER_SECONDS = 5;
public function handle(object $job, callable $next): void
{
try {
$next($job);
} catch (RateLimitException $e) {
$delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));
// Add jitter to prevent thundering herd problem by randomizing retry times
$delay += random_int(0, self::JITTER_SECONDS);
$attempts = $job->attempts();
if ($attempts <= 3 || $attempts % 10 === 0) {
Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [
'job_class' => $job::class,
'attempts' => $attempts,
'retry_after' => $e->getRetryAfter(),
'delay' => $delay,
]);
}
$job->release($delay);
}
}
}
Review rate limit handli…, Editor Group 2
remote
app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...
JY-20725-handle-HS-search-rate-limit*
app (Git) - Synchronize Changes
Errors: 6, Warnings: 9, Infos: 2
6
9
2
Notifications
key, PHP extension: Premium features not active.
Sign In
Sign In
Diff editor
Clear
Review rate limit handling for HubSpot job queue
Session history
New session
Message actions
RateLimitException.php#9-9
RateLimitException.php#9-9
Reveiw the diff. Mostly
@app/Jobs/Crm/MatchActivityCrmData.php
,
@app/Exceptions/RateLimitException.php
,
@app/Jobs/Middleware/HandleHubspotRateLimit.php
,
@app/Services/Crm/Hubspot/Client.php
and
@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php
. The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?
Thought for 5s
Thought for 5s
I'll review the implementation carefully. Let me first check how
RateLimitException
is used elsewhere and look at the test files and
PaginationState
.
Bash
Find all usages of RateLimitException outside the changed files
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/app --include="*.php" | grep -v "HandleHubspotRateLimit\|MatchActivityCrmData\|Client.php\|RateLimitException.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:17:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:68: RateLimitException |
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:15:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:58: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:19:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:76: RateLimitException |
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:50: * @throws RateLimitException When rate limit is hit
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:195: // RateLimitException and other exceptions are re-thrown as-is
Read
PaginationState.php
PaginationState.php
Read
HandleHubspotRateLimitTest.php
HandleHubspotRateLimitTest.php
Bash
Check how RateLimitException is used in GenerateActionItemsJob
IN
grep -rn "RateLimitException\|LogicException\|RuntimeException" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -20
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
Bash
Find all catch blocks or instanceof checks for RateLimitException
IN
grep -rn "catch.*RateLimitException\|instanceof RateLimitException" /Users/lukas/jiminny/app/app --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:11: * Job middleware that catches RateLimitException from HubSpot API calls
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:24: } catch (RateLimitException $e) {
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:149: if (! $e instanceof RateLimitException) {
Bash
Find all test references to RateLimitException
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/tests --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:13:#[CoversClass(RateLimitException::class)]
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:14:class RateLimitExceptionTest extends TestCase
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:18: $exception = new RateLimitException();
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:28: $exception = new RateLimitException('Hubspot rate limit', 30, $previous);
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:52: $exception = new RateLimitException('test', $input);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:10:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:49: public function testPropagatesNonRateLimitExceptions(): void
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:103: throw new RateLimitException('rate limited', $retryAfter);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:150: throw new RateLimitException('rate limited', 1);
Bash
Check retry/failure handling in GenerateActionItemsJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -30
Copy code to clipboard
OUT
13:use Jiminny\Exceptions\RateLimitException;
51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
56: $this->release(30);
Bash
Check retry/failure handling in GenerateAiCallScoringJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php | head -30
Copy code to clipboard
OUT
17:use Jiminny\Exceptions\RateLimitException;
68: RateLimitException |
75: $this->release(30);
Bash
Check retry config in MatchActivityCrmData
IN
grep -n "retryAfter\|RETRY_WINDOW\|retryUntil\|maxTries" /Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php
Copy code to clipboard
OUT
34: private const int RETRY_WINDOW_MINUTES = 30;
45: public function retryUntil(): \DateTimeInterface
47: return now()->addMinutes(self::RETRY_WINDOW_MINUTES);
77: return self::RETRY_WINDOW_MINUTES * 60 + 60;
Bash
Check the cache key format
IN
grep -n "getRateLimitCacheKey\|hubspot:ratelimit" /Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Client.php
Copy code to clipboard
OUT
78: $cacheKey = $this->getRateLimitCacheKey();
110: private function getRateLimitCacheKey(): string
112: return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());
Bash
Find other jobs that might use the rate limit middleware
IN
grep -rn "class.*Middleware\|HandleHubspotRateLimit" /Users/lukas/jiminny/app/app/Jobs --include="*.php" | grep -v "HandleHubspotRateLimit.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:18:use Jiminny\Jobs\Middleware\HandleHubspotRateLimit;
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:42: return [new HandleHubspotRateLimit()];
Read
HubspotClientInterface.php
HubspotClientInterface.php
Thought for 73s
Thought for 73s
Now I have a complete picture. Here's my full analysis:
Review Summary
Review Summary
RuntimeException vs LogicException — Safe ✓
RuntimeException
vs
LogicException
— Safe ✓
The change is semantically correct and won't break anything.
LogicException
is for programmer errors (invalid arguments, contract violations). A rate limit from an external API is a runtime condition —
RuntimeException
is the right parent. All callers catch
RateLimitException
by name explicitly (union catches in
GenerateActionItemsJob
,
GenerateAiCallScoringJob
,
SummarizeTranscriptionJob
,
GenerateAiActivityTypeJob
) or check
instanceof RateLimitException
— none relies on the parent class type, so nothing breaks.
Issue 1 — Circuit breaker stores stale delay (most important bug)
Issue 1 — Circuit breaker stores stale delay (most important bug)
Client.php:94
Client.php:94
Copy code to clipboard
Redis::setex($cacheKey, $retryAfter, (string) $retryAfter);
The TTL is
$retryAfter
seconds, but the
stored value
is also the original
$retryAfter
. If a second job reads this cache 20 seconds later, it throws
RateLimitException(retryAfter=30)
and gets delayed 30 more seconds — even though only 10 remain. In a spike of 100 jobs, each subsequent job inflates its wait.
Fix:
store the absolute expiry timestamp, reconstruct the remaining delay when reading:
Copy code to clipboard
// on 429:
Redis::setex($cacheKey, $retryAfter, (string) (time() + $retryAfter));
// in the cached-read branch:
$remaining = max(1, (int) $cachedRetryAfter - time());
throw new RateLimitException('Hubspot rate limit (cached circuit-breaker)', $remaining);
Issue 2 — retryUntil() window may expire under sustained rate limiting
Issue 2 —
retryUntil()
window may expire under sustained rate limiting
MatchActivityCrmData.php:45-47
MatchActivityCrmData.php:45-47
retryUntil()
is calculated as
now() + 30 min
at
dispatch time
and stored in the job payload. With
MAX_RETRY_DELAY = 600s
, you only get ~3 rate-limit-triggered releases before the 30-minute window closes and the job is permanently failed. For a heavy 429 spike (daily limit, parsed as 600s), this can easily happen.
Consider increasing...
|
19510
|
NULL
|
NULL
|
NULL
|
|
19515
|
835
|
1
|
2026-05-11T12:57:38.100896+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778504258100_m2.jpg...
|
PhpStorm
|
faVsco.js – MatchActivityCrmDataTest.php
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
PhostormVIewINavicareCodeFV faVsco.js°9 JY-20725-h PhostormVIewINavicareCodeFV faVsco.js°9 JY-20725-handle-HS-search-rate-limiProiectRematchActivityOnCrmObjectDetach.php© ImportOpportunityBahuospotraginatonservice.org© MatchActivitiesToNe© MatchActivityCrmDa© SaveActivityTest.phs © JiminnyDebugCommand.php© SaveTranscriptionTe©UserAutomatedReportsController.phpT DeleteCrmEntityTrait.php© Job.phpseluoLavoutlest.ongC SubscribeForEvents.RateLimitException.pho(C) HandleHubspotRateLimit.php© Client.php© SyncActivity Test.phf © CrmObiectsResolver.php(C) ProviderRateLimiter.php(C) PaqinationContia.phpc) SyncHubspotObiects© Kernel.phpohoc) SvncLeadstest.phpc) Svncobiectstest.ohc) SvncOpportunitiesJodeclare(strict_types=1);c) Svncoooortunitviesnamesnace Tests Wnit Llohs Crm.c) SuncProflleLeadstresC SvncProfileMetadata•use ...c) SvncProfile@pportunC SvncTeamFields Jobiclass MatchActivityCrmDataTest extends TestCasec) SvncTeamMetadatan( Teaminitia|Svnc lobTCascade ₩-alCommand *i20 usagesc UindateProfileRelatecprivate ActivityRepository|Mock0bject SactivityRepository:© UpdateStageTest.phC Validate TeamActived13 usagesprivate CrmActivityService|Mock0bject ScrmActivityServiceM DealPicks14 usagesM Mailhoy)private Connection Mock0biect Sconnection:v M Middleware© HandleHubspotRatelMStreaming>C Team> C Telephony32 6t )protected function setUp: voidf...}* othrows Exception Exceotion>… User© ImportRecallAlRecordinc© SasVisibilityControlTestv C Listeners44%public function testHandle@: void{...?>D Activities*@throwsException Exception?D Audio> AutomatedReports1101 MYpublic function testHandleNoActivityO: void{...}> AutoScoreCrmDealRisks123 % >public function testSkipsCrmConfigurationSwitchWhenAlreadyMatches: voidf...}ElasticSearch170 >public function testJobConfiguration: void....h> M Grouns• Import> M Mailboy184 >public function testUniqueld: void{...HIM Onnortunitiec211 M >public function testTransactionRollback0nException: void{...HM PlavlistsTM Teams243 0>public function testFailedMethodLoqsError0: void{...}• M Transcrintion>D Users• MWohhonk258 0 >public function testLoqsSuccessWhenMatchFound: void{...}•MMail305 ₴ >public function testLogsNoMatchWhenNoMatchFound@: voidf...}M ModoldTacts failed. 1 naccod. 0 12 minutec aaoi:[Platform] Refinemen... in 3 m100% C49. Mon 11 May 15:57:37MatchActivitvCrmDateTect+0.=laravel.log X 4 SF (jiminny@localhost]4 HS_local [jiminny@localhost]Aconsole [pRODltconsole [EUi© PlaybackController.phpA console [STAGING]C) MatchCrmData.php1742174442 419 V8 [IBAN][2026-05-11 11:21:45] local.INF0: [HubSpot Journal Polling] No dataf"correlation.id": "954d156d-8a4f-45."[2026-05-11 11:21:451 LocaZ.WARNING: [HubSpot Journal Polling) Maximum empty results reached, stopping f'"empty[2026-05-11 11:21:45] local.WARNING: [HubSpot Journal Pollingl Maximum empty results reached, stopping {"empty[2026-05-11 11:21:45] local.INF0: [HubSpot Journal Polling] Service ending {"runtime_seconds":57,"total cycles"[2026-05-11 11:21:46] local.INF0: [HubSpot Journal Polling] Saved offset to database on cleanup {"offset":"019₴[2026-05-11 11:21:46] local.INF0:[HubSpot Journal Pollingl Released polling lock2026-05-11 11.21.48 LocaL.LNFU:[2026-05-11 11:21:48] local.INF0:Jaminny console commanas.comnand::run Memory usage before starting command {"[EmailSchedulel STARTING batch process {"hst": "docker lamp_1" *"correlation2826-05-11 11:21:4811[2026-05-11 11:21:481 local.INF0:Ema1lSchedule FINISHED batch process_1""processed":0;2826-05-11 11:21:59 Local.INF0:Memory usage before starting command {"[2026-05-11 11:22:001local. INFO: Jiminny\Console\Commands\Command::run Memory usage for command {"command" : "cnLocaLiNFi: Sunchubspotibnects Startina sunc <"team":"02011500-93ce-4010-929c-175757039[2026-05-11 11:22:001|local.WARNING: [HubSpot] Account not connected for user {"userId":"33e34a7a-1c02-4f04-87ais not connected. attemotina team memben2026-05-11 11:22:001 Local.TNF0:[CrmOwnerResolver] No team members found with active crm connection {"crm_pro2026-05-11 11:22:0011LocalTNF0: Crm0wnerResolver No team member found wilth active crm connection «"crm oreu[2026-05-11 11:22:00] local.INF0:[SyncHubspot0bjects] Sync finished {"team":"b2b115eb-93ce-4d1b-929c-173757df82926-05-11 11•22•001 Tocol. TASD+Svncluhsnotnhnectcl Stantina cvnc "teaml.llahap74h8-hfa8-4383-0a7f-80F4h+2hd[2026-05-11 11:22:00] local.INFO:[SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hub2026-05-11 11•22•001 local TNS0• [SocialAccountSenvicel Token notnieved &isocialAccountTd".1409 "nnoviden"•"hi[2026-05-11 11:22:00] Local.INFO: [EncryptedTokenManager] Generating access token. {"mode": "Legacy"} {"correlat2026-05-11 11-22-001 Tocal TAE0-[CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"h6[2026-05-11 11:22:00] local.INF0:[HubSpot] Syncing opportunities using strategy: lastModified {"team":2} {"ce2026-05-11 11•22•011 local TAS0• Hubsnot Pacination comnleted siteam idu.2 "endnointi.lhttnc.|land huhani[2026-05-11 11:22:01] local.INF0: [HubSpot] Synced opportunities {"team":2,"strategies":"lastModified" "sync_co[2026-05-11 11:22:01] local.INF0: [SyncHubspot0bjects] Sync finished {"team":"abae74b8-bfa8-4383-9a7f-89f4bf2bd[2026-05-11 11:22:01] local.INF0: [SyncHubspot0biects] Starting sync {"team":"c6b9d6b0-b48d-4832-a68c-a57d60651[2026-05-11 11:22:01] local.WARNING: [HubSpot] Account not connected for user {"userId": "71e3aac5-fb66-47c5-a23[2026-05-11 11:22:01] local.INF0: [Crm0wnerResolver] Integration owner is not connected, attempting team memben2026-05-11 11:22:01 Local.INFU:[CrmOwnerResolver] No team members found with active crm connection {"crm_pre2026-05-11 11:22:01 Local.INFU:[CrmOwnerResolver] No team member found with active crm connection {"crm_prov2026-05-11 11:22:01 Local.INFU:[SyncHubspot0biects] Sync finished {"team":"c6b9d6b0-b48d-4832-a68c-a57d606542026-05-11 11:22:01 Local.INFU:SynchubspotubnectsStarting sync {"team":"b2d49a54-b645-4637-a7ae-a86cfce6e2026-05-11 11:22:01 LOCOL,WARNING"fHubSpotl Account not connected for user {"userId"."2ac0447f-3c8c-4ce0-bae2026-05-11 14:22:01 LOCOLINFOYermownerResolver Intearationowner is not connected. attempting team memben2026-05-11 11:22:01 LocaL.INFO:[Crm0wnerResolver] No team membens found with active crm connection {"crm piCrmOwnerResolver Noteam member found with active crm connection {"crm prov2026-05-11 11:22:011 LocaL.INF0:[2026-05-11 11:22:011 local, INF0:lands Command::run Memory usage before startina command "[ScheduleRotCommandl Numben of activities to he cantuned. olMemony usade fon command {"commandil."meJiminny\Console\Commands\Command::run Memory usage before starting command {"Jiminny \Console \Commands\Command::run Memory usage for command {"command": "dilocal NOTTCE• Monitonina stant{"correlation_id":"6d366728-e0b2-43d4-9b02-8e0d3d01d0ae",S"connplation id"."6d366728-60h2-43d4-0h02-8e0d3d01d0ap" "t.12004-05-11 11.22:111local.INF0: Jiminny\Console\Commands\Command::run Memory usage before starting command {local TASh• liminnv Concolo Commande Command• •nun Momany ucado fon command dllcommandil.IImHubSpot Rate Limit ReOk Where is it used. will I break somethina it is renlace LodicSycention with RuntimeSxcention in RateL imitExcention?Searched RateLimitException in -iminnylapp(php (44)Thought for 2s ›Searched throw new RateLimit Excention and pertormed 1 other auervYour included daily usage quota is exhausted. Purchase extra usage to continue using premium models. Quota resets Mayrnl .A Your included daily usage quota is exhausted. Purchase extra usage to continue using premium models. Quota resets May 12, 11:00Ael anuthina 19pAl« CodeClaude Onus 4.7 MediumW Windsurf Toams 26-21/24 charc) UTF.8#henasod...
|
NULL
|
8309842364275888037
|
NULL
|
click
|
ocr
|
NULL
|
PhostormVIewINavicareCodeFV faVsco.js°9 JY-20725-h PhostormVIewINavicareCodeFV faVsco.js°9 JY-20725-handle-HS-search-rate-limiProiectRematchActivityOnCrmObjectDetach.php© ImportOpportunityBahuospotraginatonservice.org© MatchActivitiesToNe© MatchActivityCrmDa© SaveActivityTest.phs © JiminnyDebugCommand.php© SaveTranscriptionTe©UserAutomatedReportsController.phpT DeleteCrmEntityTrait.php© Job.phpseluoLavoutlest.ongC SubscribeForEvents.RateLimitException.pho(C) HandleHubspotRateLimit.php© Client.php© SyncActivity Test.phf © CrmObiectsResolver.php(C) ProviderRateLimiter.php(C) PaqinationContia.phpc) SyncHubspotObiects© Kernel.phpohoc) SvncLeadstest.phpc) Svncobiectstest.ohc) SvncOpportunitiesJodeclare(strict_types=1);c) Svncoooortunitviesnamesnace Tests Wnit Llohs Crm.c) SuncProflleLeadstresC SvncProfileMetadata•use ...c) SvncProfile@pportunC SvncTeamFields Jobiclass MatchActivityCrmDataTest extends TestCasec) SvncTeamMetadatan( Teaminitia|Svnc lobTCascade ₩-alCommand *i20 usagesc UindateProfileRelatecprivate ActivityRepository|Mock0bject SactivityRepository:© UpdateStageTest.phC Validate TeamActived13 usagesprivate CrmActivityService|Mock0bject ScrmActivityServiceM DealPicks14 usagesM Mailhoy)private Connection Mock0biect Sconnection:v M Middleware© HandleHubspotRatelMStreaming>C Team> C Telephony32 6t )protected function setUp: voidf...}* othrows Exception Exceotion>… User© ImportRecallAlRecordinc© SasVisibilityControlTestv C Listeners44%public function testHandle@: void{...?>D Activities*@throwsException Exception?D Audio> AutomatedReports1101 MYpublic function testHandleNoActivityO: void{...}> AutoScoreCrmDealRisks123 % >public function testSkipsCrmConfigurationSwitchWhenAlreadyMatches: voidf...}ElasticSearch170 >public function testJobConfiguration: void....h> M Grouns• Import> M Mailboy184 >public function testUniqueld: void{...HIM Onnortunitiec211 M >public function testTransactionRollback0nException: void{...HM PlavlistsTM Teams243 0>public function testFailedMethodLoqsError0: void{...}• M Transcrintion>D Users• MWohhonk258 0 >public function testLoqsSuccessWhenMatchFound: void{...}•MMail305 ₴ >public function testLogsNoMatchWhenNoMatchFound@: voidf...}M ModoldTacts failed. 1 naccod. 0 12 minutec aaoi:[Platform] Refinemen... in 3 m100% C49. Mon 11 May 15:57:37MatchActivitvCrmDateTect+0.=laravel.log X 4 SF (jiminny@localhost]4 HS_local [jiminny@localhost]Aconsole [pRODltconsole [EUi© PlaybackController.phpA console [STAGING]C) MatchCrmData.php1742174442 419 V8 [IBAN][2026-05-11 11:21:45] local.INF0: [HubSpot Journal Polling] No dataf"correlation.id": "954d156d-8a4f-45."[2026-05-11 11:21:451 LocaZ.WARNING: [HubSpot Journal Polling) Maximum empty results reached, stopping f'"empty[2026-05-11 11:21:45] local.WARNING: [HubSpot Journal Pollingl Maximum empty results reached, stopping {"empty[2026-05-11 11:21:45] local.INF0: [HubSpot Journal Polling] Service ending {"runtime_seconds":57,"total cycles"[2026-05-11 11:21:46] local.INF0: [HubSpot Journal Polling] Saved offset to database on cleanup {"offset":"019₴[2026-05-11 11:21:46] local.INF0:[HubSpot Journal Pollingl Released polling lock2026-05-11 11.21.48 LocaL.LNFU:[2026-05-11 11:21:48] local.INF0:Jaminny console commanas.comnand::run Memory usage before starting command {"[EmailSchedulel STARTING batch process {"hst": "docker lamp_1" *"correlation2826-05-11 11:21:4811[2026-05-11 11:21:481 local.INF0:Ema1lSchedule FINISHED batch process_1""processed":0;2826-05-11 11:21:59 Local.INF0:Memory usage before starting command {"[2026-05-11 11:22:001local. INFO: Jiminny\Console\Commands\Command::run Memory usage for command {"command" : "cnLocaLiNFi: Sunchubspotibnects Startina sunc <"team":"02011500-93ce-4010-929c-175757039[2026-05-11 11:22:001|local.WARNING: [HubSpot] Account not connected for user {"userId":"33e34a7a-1c02-4f04-87ais not connected. attemotina team memben2026-05-11 11:22:001 Local.TNF0:[CrmOwnerResolver] No team members found with active crm connection {"crm_pro2026-05-11 11:22:0011LocalTNF0: Crm0wnerResolver No team member found wilth active crm connection «"crm oreu[2026-05-11 11:22:00] local.INF0:[SyncHubspot0bjects] Sync finished {"team":"b2b115eb-93ce-4d1b-929c-173757df82926-05-11 11•22•001 Tocol. TASD+Svncluhsnotnhnectcl Stantina cvnc "teaml.llahap74h8-hfa8-4383-0a7f-80F4h+2hd[2026-05-11 11:22:00] local.INFO:[SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hub2026-05-11 11•22•001 local TNS0• [SocialAccountSenvicel Token notnieved &isocialAccountTd".1409 "nnoviden"•"hi[2026-05-11 11:22:00] Local.INFO: [EncryptedTokenManager] Generating access token. {"mode": "Legacy"} {"correlat2026-05-11 11-22-001 Tocal TAE0-[CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"h6[2026-05-11 11:22:00] local.INF0:[HubSpot] Syncing opportunities using strategy: lastModified {"team":2} {"ce2026-05-11 11•22•011 local TAS0• Hubsnot Pacination comnleted siteam idu.2 "endnointi.lhttnc.|land huhani[2026-05-11 11:22:01] local.INF0: [HubSpot] Synced opportunities {"team":2,"strategies":"lastModified" "sync_co[2026-05-11 11:22:01] local.INF0: [SyncHubspot0bjects] Sync finished {"team":"abae74b8-bfa8-4383-9a7f-89f4bf2bd[2026-05-11 11:22:01] local.INF0: [SyncHubspot0biects] Starting sync {"team":"c6b9d6b0-b48d-4832-a68c-a57d60651[2026-05-11 11:22:01] local.WARNING: [HubSpot] Account not connected for user {"userId": "71e3aac5-fb66-47c5-a23[2026-05-11 11:22:01] local.INF0: [Crm0wnerResolver] Integration owner is not connected, attempting team memben2026-05-11 11:22:01 Local.INFU:[CrmOwnerResolver] No team members found with active crm connection {"crm_pre2026-05-11 11:22:01 Local.INFU:[CrmOwnerResolver] No team member found with active crm connection {"crm_prov2026-05-11 11:22:01 Local.INFU:[SyncHubspot0biects] Sync finished {"team":"c6b9d6b0-b48d-4832-a68c-a57d606542026-05-11 11:22:01 Local.INFU:SynchubspotubnectsStarting sync {"team":"b2d49a54-b645-4637-a7ae-a86cfce6e2026-05-11 11:22:01 LOCOL,WARNING"fHubSpotl Account not connected for user {"userId"."2ac0447f-3c8c-4ce0-bae2026-05-11 14:22:01 LOCOLINFOYermownerResolver Intearationowner is not connected. attempting team memben2026-05-11 11:22:01 LocaL.INFO:[Crm0wnerResolver] No team membens found with active crm connection {"crm piCrmOwnerResolver Noteam member found with active crm connection {"crm prov2026-05-11 11:22:011 LocaL.INF0:[2026-05-11 11:22:011 local, INF0:lands Command::run Memory usage before startina command "[ScheduleRotCommandl Numben of activities to he cantuned. olMemony usade fon command {"commandil."meJiminny\Console\Commands\Command::run Memory usage before starting command {"Jiminny \Console \Commands\Command::run Memory usage for command {"command": "dilocal NOTTCE• Monitonina stant{"correlation_id":"6d366728-e0b2-43d4-9b02-8e0d3d01d0ae",S"connplation id"."6d366728-60h2-43d4-0h02-8e0d3d01d0ap" "t.12004-05-11 11.22:111local.INF0: Jiminny\Console\Commands\Command::run Memory usage before starting command {local TASh• liminnv Concolo Commande Command• •nun Momany ucado fon command dllcommandil.IImHubSpot Rate Limit ReOk Where is it used. will I break somethina it is renlace LodicSycention with RuntimeSxcention in RateL imitExcention?Searched RateLimitException in -iminnylapp(php (44)Thought for 2s ›Searched throw new RateLimit Excention and pertormed 1 other auervYour included daily usage quota is exhausted. Purchase extra usage to continue using premium models. Quota resets Mayrnl .A Your included daily usage quota is exhausted. Purchase extra usage to continue using premium models. Quota resets May 12, 11:00Ael anuthina 19pAl« CodeClaude Onus 4.7 MediumW Windsurf Toams 26-21/24 charc) UTF.8#henasod...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
19518
|
835
|
2
|
2026-05-11T12:57:43.990298+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778504263990_m2.jpg...
|
PhpStorm
|
faVsco.js – MatchActivityCrmDataTest.php
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
JY-20725-handle-HS-search Project: faVsco.js, menu
JY-20725-handle-HS-search-rate-limit, menu
Start Listening for PHP Debug Connections
MatchActivityCrmDataTest
Run 'MatchActivityCrmDataTest'
Debug 'MatchActivityCrmDataTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Code changed:...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JY-20725-handle-HS-search-rate-limit, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.09541223,"height":0.025538707},"on_screen":true,"help_text":"Git Branch: JY-20725-handle-HS-search-rate-limit","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.8277925,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"MatchActivityCrmDataTest","depth":6,"bounds":{"left":0.8430851,"top":0.019952115,"width":0.07247341,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'MatchActivityCrmDataTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'MatchActivityCrmDataTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"bounds":{"left":0.9381649,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"bounds":{"left":0.96609044,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"bounds":{"left":0.9773936,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"bounds":{"left":0.9886968,"top":0.019952115,"width":0.011303186,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
6779207451947659687
|
-7591940872208833564
|
click
|
hybrid
|
NULL
|
Project: faVsco.js, menu
JY-20725-handle-HS-search Project: faVsco.js, menu
JY-20725-handle-HS-search-rate-limit, menu
Start Listening for PHP Debug Connections
MatchActivityCrmDataTest
Run 'MatchActivityCrmDataTest'
Debug 'MatchActivityCrmDataTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Code changed:
PhostormVIewINavicareCodeFV faVsco.js°9 JY-20725-handle-HS-search-rate-IiyProiect v© ImportOpportunityBa© MatchActivitiesToNe© MatchActivityCrmDa© SaveActivityTest.phg© SaveTranscriptionTehuospotraginatonservice.orgT DeleteCrmEntityTrait.phpseluoLavoutlest.ong© SubscribeForEvents.RateLimitException.pho(C) HandleHubspotRateLimit.php© Client.php© Kernel.php© SyncActivity Test.phf © CrmObiectsResolver.php(C) ProviderRateLimiter.php(C) PaqinationContia.phpc) SyncHubspotObiectsohoc) SvncLeadstest.phpc) Svncobiectstest.ohc) SvncOpportunitiesJoC SvncOpportunitvTesdeclare(strict_types=1);namesnace Tests Wnit Llohs Crm.c) SuncProflleLeadstresC SvncProfileMetadata•use ...c) SvncProfile@pportunC SvncTeamFields Jobiclass MatchActivityCrmDataTest extends TestCasec) SvncTeamMetadatan( Teaminitia|Svnc lobT20 usagesc UindateProfileRelatec@ UndateStageTest.phC Validate TeamActivedprivate ActivityRepository|Mock0bject SactivityRepository:13 usagesprivate CrmActivityService|Mock0bject ScrmActivityServiceM DealPicks14 usagesM Mailhoy)private Connection Mock0biect Sconnection:v M Middleware© HandleHubspotRatelMStreaming>C Team> C Telephony32 6t )protected function setUp(: voidk...}* othrows Exception Exceotion>… User© ImportRecallAlRecordinc© SasVisibilityControlTestv C Listeners> M Activities44%public function testHandle@: void{...?*@throwsException Exception?D Audio> AutomatedReports1101 MYpublic function testHandleNoActivityO: void{...}> AutoScoreCrmDealRisks123 % >public function testSkipsCrmConfigurationSwitchWhenAlreadyMatches: void{...}ElasticSearch170 >public function testJobConfiguration: void....h> M Grouns• Import> M Mailboy184 >public function testUniqueld: void{...HIM Onnortunitiec211 M >public function testTransactionRollback0nExceptionO: void{...HM PlavlistsTM Teams243 0>public function testFailedMethodLoqsError0: void{...}• M Transcrintion>D Users• MWohhonk258 0 >public function testLoqsSuccessWhenMatchFound: void{...}•MMail305 ₴ >public function testLogsNoMatchWhenNoMatchFoundO: voidf...}M ModoldTacts failed. 1 naccod. 0 12 minutec aaoi:[Platform] Refinemen... in 3 m100% C4• Mon 11 May 15:57:43MatchActivityCrmDataTest v+0.© Job.php=laravel.log X 4 SF (jiminny@localhost]4 HS_local [jiminny@localhost]console [pRODl& console [EU]© PlaybackController.phpA console [STAGING]C) MatchCrmData.php1742174442 419 V8 [IBAN][2026-05-11 11:21:45] local.INF0: [HubSpot Journal Pollingl No dataf"correlation.id": "954d156d-8a4f-45."[2026-05-11 11:21:451 LocaZ.WARNING: [HubSpot Journal Polling) Maximum empty results reached, stopping f'empty[2026-05-11 11:21:45] local.WARNING: [HubSpot Journal Pollingl Maximum empty results reached, stopping {"empty[2026-05-11 11:21:45] local.INF0: [HubSpot Journal Polling] Service ending {"runtime_seconds":57,"total cycles"[2026-05-11 11:21:46] local.INF0: [HubSpot Journal Polling] Saved offset to database on cleanup {"offset":"019₴[2026-05-11 11:21:46] local.INF0:[HubSpot Journal Pollingl Released polling lock {"correlation_id":"954d156d2026-05-11 11.21.48 LocaL.LNFU:[2026-05-11 11:21:48] local.INF0:Jaminny console commanas.comand::run Memory usage before starting command {"[EmailSchedulel STARTING batch processst": "docker lamp_1" *"correlation2826-05-11 11:21:4811[2026-05-11 11:21:481 local.INF0:Ema1lSchedule FINISHED batch processost":"docker_lamp_1""processed":0.2826-05-11 11:21:59 Local.INF0:Memory usage before starting command {"[2026-05-11 11:22:001local. INFO: Jiminny\Console\Commands\Command::run Memory usage for command {"command" : "cnLocaLiNFi: Sunchubspotibnects Startina sunc <"team":"02011500-93ce-4010-929c-175757039[2026-05-11 11:22:001|local.WARNING: [HubSpot] Account not connected for user {"userId":"33e34a7a-1c02-4f04-87ais not connected. attemotina team memben2026-05-11 11:22:001 Local.TNF0:[CrmOwnerResolver] No team members found with active crm connection {"crm_pro2026-05-11 11:22:0011LocalTNF0: Crm0wnerResolver No team member found wilth active crm connection «"crm oreu[2026-05-11 11:22:00] local.INF0:[SyncHubspot0bjects] Sync finished {"team":"b2b115eb-93ce-4d1b-929c-173757df82926-05-11 11•22•001 Tocol. TASD+Svncluhsnotnhnectcl Stantina cvnc "teaml.llahap74h8-hfa8-4383-0a7f-80F4h+2hd[2026-05-11 11:22:00] local.INFO:[SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hub2026-05-11 11•22•001 local TNS0• [SocialAccountSenvicel Token notnieved &isocialAccountTd".1409 "nnoviden"•"hi[2026-05-11 11:22:00] Local.INFO: [EncryptedTokenManager] Generating access token. {"mode": "Legacy"} {"correlat2026-05-11 11-22-001 Tocal TAE0-[CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"h6[2026-05-11 11:22:00] local.INF0:[HubSpot] Syncing opportunities using strategy: lastModified {"team":2} {"ce2026-05-11 11•22•011 local TAS0• Hubsnot Pacination comnleted siteam idu.2 "endnointi.lhttnc.|land huhani[2026-05-11 11:22:01] local.INF0: [HubSpot] Synced opportunities {"team":2,"strategies":"lastModified" "sync_co[2026-05-11 11:22:01] local.INF0: [SyncHubspot0bjects] Sync finished {"team":"abae74b8-bfa8-4383-9a7f-89f4bf2bd[2026-05-11 11:22:01] local.INF0: [SyncHubspot0biects] Starting sync {"team":"c6b9d6b0-b48d-4832-a68c-a57d60651[2026-05-11 11:22:01] local.WARNING: [HubSpot] Account not connected for user {"userId": "71e3aac5-fb66-47c5-a23[2026-05-11 11:22:01] local.INF0: [Crm0wnerResolver] Integration owner is not connected, attempting team memben2026-05-11 11:22:01 Local.INFU:[CrmOwnerResolver] No team members found with active crm connection {"crm_pre2026-05-11 11:22:01 Local.INFU:[CrmOwnerResolver] No team member found with active crm connection {"crm_prov2026-05-11 11:22:01 Local.INFU:[SyncHubspot0biects] Sync finished {"team":"c6b9d6b0-b48d-4832-a68c-a57d60654-2026-05-11 11:22:011 Local.INFU:SynchubspotubnectsStarting sync {"team":"b2d49a54-b645-4637-a7ae-a86cfce6e2026-05-11 11:22:01 LOCOL,WARNING"fHubSpotl Account not connected for user {"userId"."2ac0447f-3c8c-4ce0-bae2026-05-11 14:22:01 LOCOLINFOYermownerResoverintearationowner is not connected. attempting team memben2026-05-11 11:22:01 LocaL.INFO:[Crm0wnerResolver] No team membens found with active crm connection {"crm pi2026-05-11 11:22:011 LocaL.INF0:CrmOwnerResolver Noteam member found with active erm connection «"com orov[2026-05-11 11:22:011 local, INF0:lands Command::run Memory usage before startina command "[ScheduleRotCommandl Numben of activities to he cantuned. olMemony usade fon command {"commandil."meJiminny\Console\Commands\Command::run Memory usage before starting command {"Jiminny \Console \Commands\Command::run Memory usage for command {"command": "dilocal NOTTCE• Monitonina stant{"correlation_id":"6d366728-e0b2-43d4-9b02-8e0d3d01d0ae",S"connplation id"."6d366728-60h2-43d4-0h02-8e0d3d01d0ap" "t.12004-05-11 11.22:111local.INF0: Jiminny\Console\Commands\Command::run Memory usage before starting command {local TASh• liminnv Concolo Commande Command• •nun Momany ucado fon command dllcommandil.IImHubSpot Rate Limit ReOk Where is it used. will I break somethina it is renlace LodicSycention with RuntimeSxcention in RateL imitExcention?Searched RateLimitException in -iminnylapp(php (44)Thought for 2s ›Searched throw new RateLimit Excention and pertormed 1 other auervYour included daily usage quota is exhausted. Purchase extra usage to continue using premium models. Quota resets MayEunl.Q Search all modeAdontivs ? CRecentiv Used (24/Cloudo Onue A7 Modium NolKimi K2.6 New 80DeepSeek V4 NewSWS-16 Nowoue 4e Coot KlaunADUriNTASGPT-5.5 Low Thinking teClaude Opus 4.6 ThinkindAel anuthinStort With Hicton« CodeClaude Onus 4.7 Medium= Group by OI. to continuo ucioa aramiue Madole Ouota Cacote Mau 40 44.00W Windsurf Toams 26-21/24 charc) UTF.8#henasod...
|
19515
|
NULL
|
NULL
|
NULL
|
|
19520
|
835
|
3
|
2026-05-11T12:57:50.655900+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778504270655_m2.jpg...
|
PhpStorm
|
faVsco.js – MatchActivityCrmDataTest.php
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
JY-20725-handle-HS-search Project: faVsco.js, menu
JY-20725-handle-HS-search-rate-limit, menu
Start Listening for PHP Debug Connections
MatchActivityCrmDataTest
Run 'MatchActivityCrmDataTest'
Debug 'MatchActivityCrmDataTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Code changed:
Hide
Sync Changes
Hide This Notification
2
19
8
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Tests\Unit\Jobs\Crm;
use Illuminate\Database\Connection;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Jiminny\Exceptions\InvalidArgumentException;
use Jiminny\Jobs\Crm\MatchActivityCrmData;
use Jiminny\Models\Account;
use Jiminny\Models\Activity;
use Jiminny\Models\Contact;
use Jiminny\Models\Crm\Configuration;
use Jiminny\Models\Lead;
use Jiminny\Models\Opportunity;
use Jiminny\Models\Stage;
use Jiminny\Models\Team;
use Jiminny\Models\User;
use Jiminny\Repositories\ActivityRepository;
use Jiminny\Services\Crm\CrmActivityService;
use PHPUnit\Framework\MockObject\Exception;
use PHPUnit\Framework\MockObject\MockObject;
use Tests\TestCase;
class MatchActivityCrmDataTest extends TestCase
{
private ActivityRepository|MockObject $activityRepository;
private CrmActivityService|MockObject $crmActivityService;
private Connection|MockObject $connection;
protected function setUp(): void
{
parent::setUp();
$this->activityRepository = $this->createMock(ActivityRepository::class);
$this->crmActivityService = $this->createMock(CrmActivityService::class);
$this->connection = $this->createMock(Connection::class);
}
/**
* @throws \Exception|Exception
*/
public function testHandle(): void
{
$fromConfiguration = $this->createMock(Configuration::class);
$fromConfiguration->method('getId')->willReturn(5);
$team = $this->createMock(Team::class);
$user = $this->createMock(User::class);
$user->method('getTeam')->willReturn($team);
$activityConfiguration = $this->createMock(Configuration::class);
$activityConfiguration->method('getId')->willReturn(10);
$participants = $this->createMock(HasMany::class);
$activity = $this->createMock(Activity::class);
$activity->method('getUuid')->willReturn('test');
$activity->method('getProvider')->willReturn('provider');
$activity->method('getUser')->willReturn($user);
$activity->method('getCrm')->willReturn($activityConfiguration);
$activity->method('participants')->willReturn($participants);
$activity->expects($this->exactly(2))->method('update');
$this->activityRepository->expects(($this->once()))
->method('findById')
->with(1)
->willReturn($activity);
$this->activityRepository->expects($this->once())
->method('getActivityParticipants')
->with($activity)
->willReturn(collect([]));
$this->crmActivityService->expects($this->once())
->method('updateCrmData')
->with($activity, false);
$this->connection->expects($this->once())
->method('transaction')
->willReturnCallback(function ($callback) {
return $callback();
});
$job = new MatchActivityCrmData(
activityId: 1,
fromConfiguration: $fromConfiguration,
);
$job->handle(
activityRepository: $this->activityRepository,
crmActivityService: $this->crmActivityService,
connection: $this->connection,
);
}
/**
* @throws \Exception|Exception
*/
public function testHandleNoActivity(): void
{
$this->activityRepository->expects(($this->once()))
->method('findById')
->with(1)
->willReturn(null);
$job = new MatchActivityCrmData(
activityId: 1,
fromConfiguration: null,
);
$this->expectException(InvalidArgumentException::class);
$this->expectExceptionMessage('[MatchActivityCrmData] Cannot find activity.');
$job->handle(
activityRepository: $this->activityRepository,
crmActivityService: $this->crmActivityService,
connection: $this->connection,
);
}
public function testSkipsCrmConfigurationSwitchWhenAlreadyMatches(): void
{
$fromConfiguration = $this->createMock(Configuration::class);
$fromConfiguration->method('getId')->willReturn(5);
$activityConfiguration = $this->createMock(Configuration::class);
$activityConfiguration->method('getId')->willReturn(5);
$participants = $this->createMock(HasMany::class);
$activity = $this->createMock(Activity::class);
$activity->method('getCrm')->willReturn($activityConfiguration);
$activity->method('participants')->willReturn($participants);
$activity->expects($this->once())->method('update');
$this->activityRepository->expects($this->once())
->method('findById')
->with(123)
->willReturn($activity);
$this->activityRepository->expects($this->once())
->method('getActivityParticipants')
->with($activity)
->willReturn(collect([]));
$this->crmActivityService->expects($this->once())
->method('updateCrmData')
->with($activity, false);
$this->connection->expects($this->once())
->method('transaction')
->willReturnCallback(function ($callback) {
return $callback();
});
$job = new MatchActivityCrmData(
activityId: 123,
fromConfiguration: $fromConfiguration,
);
$job->handle(
activityRepository: $this->activityRepository,
crmActivityService: $this->crmActivityService,
connection: $this->connection,
);
}
public function testJobConfiguration(): void
{
$job = new MatchActivityCrmData(
activityId: 1,
fromConfiguration: null,
remoteSearch: false,
);
$this->assertSame(3, $job->tries);
$this->assertSame(300, $job->timeout());
$this->assertSame(360, $job->uniqueFor());
$this->assertSame([30, 90, 180], $job->backoff());
}
public function testUniqueId(): void
{
$configuration = $this->createMock(Configuration::class);
$configuration->method('getId')->willReturn(5);
$job1 = new MatchActivityCrmData(
activityId: 123,
fromConfiguration: null,
remoteSearch: false,
);
$this->assertSame('123:0:local', $job1->uniqueId());
$job2 = new MatchActivityCrmData(
activityId: 123,
fromConfiguration: null,
remoteSearch: true,
);
$this->assertSame('123:0:remote', $job2->uniqueId());
$job3 = new MatchActivityCrmData(
activityId: 123,
fromConfiguration: $configuration,
remoteSearch: false,
);
$this->assertSame('123:5:local', $job3->uniqueId());
}
public function testTransactionRollbackOnException(): void
{
$activity = $this->createMock(Activity::class);
$this->activityRepository->expects($this->once())
->method('findById')
->with(1)
->willReturn($activity);
$exception = new \RuntimeException('Test exception');
$this->connection->expects($this->once())
->method('transaction')
->willReturnCallback(function ($callback) use ($exception) {
throw $exception;
});
$job = new MatchActivityCrmData(
activityId: 1,
fromConfiguration: null,
);
$this->expectException(\RuntimeException::class);
$this->expectExceptionMessage('Test exception');
$job->handle(
activityRepository: $this->activityRepository,
crmActivityService: $this->crmActivityService,
connection: $this->connection,
);
}
public function testFailedMethodLogsError(): void
{
$exception = new \RuntimeException('Test failure');
$job = new MatchActivityCrmData(
activityId: 123,
fromConfiguration: null,
remoteSearch: true,
);
$job->failed($exception);
$this->assertTrue(true);
}
public function testLogsSuccessWhenMatchFound(): void
{
$participants = $this->createMock(HasMany::class);
$lead = $this->createMock(Lead::class);
$lead->method('getId')->willReturn(456);
$activity = $this->createMock(Activity::class);
$activity->method('participants')->willReturn($participants);
$activity->method('getLead')->willReturn($lead);
$activity->method('getContact')->willReturn(null);
$activity->method('getAccount')->willReturn(null);
$activity->method('getOpportunity')->willReturn(null);
$this->activityRepository->expects($this->once())
->method('findById')
->with(123)
->willReturn($activity);
$this->activityRepository->expects($this->once())
->method('getActivityParticipants')
->with($activity)
->willReturn(collect([]));
$this->crmActivityService->expects($this->once())
->method('updateCrmData')
->with($activity, false);
$this->connection->expects($this->once())
->method('transaction')
->willReturnCallback(function ($callback) {
return $callback();
});
$job = new MatchActivityCrmData(
activityId: 123,
fromConfiguration: null,
remoteSearch: false,
);
$job->handle(
activityRepository: $this->activityRepository,
crmActivityService: $this->crmActivityService,
connection: $this->connection,
);
}
public function testLogsNoMatchWhenNoMatchFound(): void
{
$participants = $this->createMock(HasMany::class);
$activity = $this->createMock(Activity::class);
$activity->method('participants')->willReturn($participants);
$activity->method('getLead')->willReturn(null);
$activity->method('getContact')->willReturn(null);
$activity->method('getAccount')->willReturn(null);
$activity->method('getOpportunity')->willReturn(null);
$this->activityRepository->expects($this->once())
->method('findById')
->with(123)
->willReturn($activity);
$this->activityRepository->expects($this->once())
->method('getActivityParticipants')
->with($activity)
->willReturn(collect([]));
$this->crmActivityService->expects($this->once())
->method('updateCrmData')
->with($activity, true);
$this->connection->expects($this->once())
->method('transaction')
->willReturnCallback(function ($callback) {
return $callback();
});
$job = new MatchActivityCrmData(
activityId: 123,
fromConfiguration: null,
remoteSearch: true,
);
$job->handle(
activityRepository: $this->activityRepository,
crmActivityService: $this->crmActivityService,
connection: $this->connection,
);
}
public function testLogsOldStateBeforeClearing(): void
{
$participant1 = new \stdClass();
$participant1->id = 10;
$participant1->user_id = 100;
$participant1->contact_id = 200;
$participant1->lead_id = null;
$participant2 = new \stdClass();
$participant2->id = 20;
$participant2->user_id = null;
$participant2->contact_id = null;
$participant2->lead_id = 300;
$participantsCollection = collect([$participant1, $participant2]);
$participantsRelation = $this->createMock(HasMany::class);
$lead = $this->createMock(Lead::class);
$lead->method('getId')->willReturn(111);
$contact = $this->createMock(Contact::class);
$contact->method('getId')->willReturn(222);
$account = $this->createMock(Account::class);
$account->method('getId')->willReturn(333);
$opportunity = $this->createMock(Opportunity::class);
$opportunity->method('getId')->willReturn(444);
$stage = $this->createMock(Stage::class);
$stage->method('getId')->willReturn(555);
$activity = $this->createMock(Activity::class);
$activity->method('participants')->willReturn($participantsRelation);
$activity->method('getLead')->willReturn($lead);
$activity->method('getContact')->willReturn($contact);
$activity->method('getAccount')->willReturn($account);
$activity->method('getOpportunity')->willReturn($opportunity);
$activity->method('getStage')->willReturn($stage);
$this->activityRepository->expects($this->once())
->method('findById')
->with(999)
->willReturn($activity);
$this->activityRepository->expects($this->once())
->method('getActivityParticipants')
->with($activity)
->willReturn($participantsCollection);
$this->crmActivityService->expects($this->once())
->method('updateCrmData')
->with($activity, false);
$this->connection->expects($this->once())
->method('transaction')
->willReturnCallback(function ($callback) {
return $callback();
});
$job = new MatchActivityCrmData(
activityId: 999,
fromConfiguration: null,
remoteSearch: false,
);
$job->handle(
activityRepository: $this->activityRepository,
crmActivityService: $this->crmActivityService,
connection: $this->connection,
);
}
}...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JY-20725-handle-HS-search-rate-limit, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.09541223,"height":0.025538707},"on_screen":true,"help_text":"Git Branch: JY-20725-handle-HS-search-rate-limit","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.8277925,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"MatchActivityCrmDataTest","depth":6,"bounds":{"left":0.8430851,"top":0.019952115,"width":0.07247341,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'MatchActivityCrmDataTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'MatchActivityCrmDataTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"bounds":{"left":0.9381649,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"bounds":{"left":0.96609044,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"bounds":{"left":0.9773936,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"bounds":{"left":0.9886968,"top":0.019952115,"width":0.011303186,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2","depth":4,"bounds":{"left":0.3799867,"top":0.22426178,"width":0.007978723,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"19","depth":4,"bounds":{"left":0.3899601,"top":0.22426178,"width":0.009640957,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"8","depth":4,"bounds":{"left":0.40159574,"top":0.22426178,"width":0.007978723,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.4112367,"top":0.22266561,"width":0.00731383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.41855052,"top":0.22266561,"width":0.006981383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Tests\\Unit\\Jobs\\Crm;\n\nuse Illuminate\\Database\\Connection;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Jiminny\\Exceptions\\InvalidArgumentException;\nuse Jiminny\\Jobs\\Crm\\MatchActivityCrmData;\nuse Jiminny\\Models\\Account;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\Contact;\nuse Jiminny\\Models\\Crm\\Configuration;\nuse Jiminny\\Models\\Lead;\nuse Jiminny\\Models\\Opportunity;\nuse Jiminny\\Models\\Stage;\nuse Jiminny\\Models\\Team;\nuse Jiminny\\Models\\User;\nuse Jiminny\\Repositories\\ActivityRepository;\nuse Jiminny\\Services\\Crm\\CrmActivityService;\nuse PHPUnit\\Framework\\MockObject\\Exception;\nuse PHPUnit\\Framework\\MockObject\\MockObject;\nuse Tests\\TestCase;\n\nclass MatchActivityCrmDataTest extends TestCase\n{\n private ActivityRepository|MockObject $activityRepository;\n private CrmActivityService|MockObject $crmActivityService;\n private Connection|MockObject $connection;\n\n protected function setUp(): void\n {\n parent::setUp();\n\n $this->activityRepository = $this->createMock(ActivityRepository::class);\n $this->crmActivityService = $this->createMock(CrmActivityService::class);\n $this->connection = $this->createMock(Connection::class);\n }\n\n /**\n * @throws \\Exception|Exception\n */\n public function testHandle(): void\n {\n $fromConfiguration = $this->createMock(Configuration::class);\n $fromConfiguration->method('getId')->willReturn(5);\n\n $team = $this->createMock(Team::class);\n\n $user = $this->createMock(User::class);\n $user->method('getTeam')->willReturn($team);\n\n $activityConfiguration = $this->createMock(Configuration::class);\n $activityConfiguration->method('getId')->willReturn(10);\n\n $participants = $this->createMock(HasMany::class);\n\n $activity = $this->createMock(Activity::class);\n $activity->method('getUuid')->willReturn('test');\n $activity->method('getProvider')->willReturn('provider');\n $activity->method('getUser')->willReturn($user);\n $activity->method('getCrm')->willReturn($activityConfiguration);\n $activity->method('participants')->willReturn($participants);\n $activity->expects($this->exactly(2))->method('update');\n\n $this->activityRepository->expects(($this->once()))\n ->method('findById')\n ->with(1)\n ->willReturn($activity);\n\n $this->activityRepository->expects($this->once())\n ->method('getActivityParticipants')\n ->with($activity)\n ->willReturn(collect([]));\n\n $this->crmActivityService->expects($this->once())\n ->method('updateCrmData')\n ->with($activity, false);\n\n $this->connection->expects($this->once())\n ->method('transaction')\n ->willReturnCallback(function ($callback) {\n return $callback();\n });\n\n $job = new MatchActivityCrmData(\n activityId: 1,\n fromConfiguration: $fromConfiguration,\n );\n $job->handle(\n activityRepository: $this->activityRepository,\n crmActivityService: $this->crmActivityService,\n connection: $this->connection,\n );\n }\n\n /**\n * @throws \\Exception|Exception\n */\n public function testHandleNoActivity(): void\n {\n $this->activityRepository->expects(($this->once()))\n ->method('findById')\n ->with(1)\n ->willReturn(null);\n\n $job = new MatchActivityCrmData(\n activityId: 1,\n fromConfiguration: null,\n );\n\n $this->expectException(InvalidArgumentException::class);\n $this->expectExceptionMessage('[MatchActivityCrmData] Cannot find activity.');\n\n $job->handle(\n activityRepository: $this->activityRepository,\n crmActivityService: $this->crmActivityService,\n connection: $this->connection,\n );\n }\n\n public function testSkipsCrmConfigurationSwitchWhenAlreadyMatches(): void\n {\n $fromConfiguration = $this->createMock(Configuration::class);\n $fromConfiguration->method('getId')->willReturn(5);\n\n $activityConfiguration = $this->createMock(Configuration::class);\n $activityConfiguration->method('getId')->willReturn(5);\n\n $participants = $this->createMock(HasMany::class);\n\n $activity = $this->createMock(Activity::class);\n $activity->method('getCrm')->willReturn($activityConfiguration);\n $activity->method('participants')->willReturn($participants);\n $activity->expects($this->once())->method('update');\n\n $this->activityRepository->expects($this->once())\n ->method('findById')\n ->with(123)\n ->willReturn($activity);\n\n $this->activityRepository->expects($this->once())\n ->method('getActivityParticipants')\n ->with($activity)\n ->willReturn(collect([]));\n\n $this->crmActivityService->expects($this->once())\n ->method('updateCrmData')\n ->with($activity, false);\n\n $this->connection->expects($this->once())\n ->method('transaction')\n ->willReturnCallback(function ($callback) {\n return $callback();\n });\n\n $job = new MatchActivityCrmData(\n activityId: 123,\n fromConfiguration: $fromConfiguration,\n );\n\n $job->handle(\n activityRepository: $this->activityRepository,\n crmActivityService: $this->crmActivityService,\n connection: $this->connection,\n );\n }\n\n public function testJobConfiguration(): void\n {\n $job = new MatchActivityCrmData(\n activityId: 1,\n fromConfiguration: null,\n remoteSearch: false,\n );\n\n $this->assertSame(3, $job->tries);\n $this->assertSame(300, $job->timeout());\n $this->assertSame(360, $job->uniqueFor());\n $this->assertSame([30, 90, 180], $job->backoff());\n }\n\n public function testUniqueId(): void\n {\n $configuration = $this->createMock(Configuration::class);\n $configuration->method('getId')->willReturn(5);\n\n $job1 = new MatchActivityCrmData(\n activityId: 123,\n fromConfiguration: null,\n remoteSearch: false,\n );\n $this->assertSame('123:0:local', $job1->uniqueId());\n\n $job2 = new MatchActivityCrmData(\n activityId: 123,\n fromConfiguration: null,\n remoteSearch: true,\n );\n $this->assertSame('123:0:remote', $job2->uniqueId());\n\n $job3 = new MatchActivityCrmData(\n activityId: 123,\n fromConfiguration: $configuration,\n remoteSearch: false,\n );\n $this->assertSame('123:5:local', $job3->uniqueId());\n }\n\n public function testTransactionRollbackOnException(): void\n {\n $activity = $this->createMock(Activity::class);\n\n $this->activityRepository->expects($this->once())\n ->method('findById')\n ->with(1)\n ->willReturn($activity);\n\n $exception = new \\RuntimeException('Test exception');\n\n $this->connection->expects($this->once())\n ->method('transaction')\n ->willReturnCallback(function ($callback) use ($exception) {\n throw $exception;\n });\n\n $job = new MatchActivityCrmData(\n activityId: 1,\n fromConfiguration: null,\n );\n\n $this->expectException(\\RuntimeException::class);\n $this->expectExceptionMessage('Test exception');\n\n $job->handle(\n activityRepository: $this->activityRepository,\n crmActivityService: $this->crmActivityService,\n connection: $this->connection,\n );\n }\n\n public function testFailedMethodLogsError(): void\n {\n $exception = new \\RuntimeException('Test failure');\n\n $job = new MatchActivityCrmData(\n activityId: 123,\n fromConfiguration: null,\n remoteSearch: true,\n );\n\n $job->failed($exception);\n\n $this->assertTrue(true);\n }\n\n public function testLogsSuccessWhenMatchFound(): void\n {\n $participants = $this->createMock(HasMany::class);\n\n $lead = $this->createMock(Lead::class);\n $lead->method('getId')->willReturn(456);\n\n $activity = $this->createMock(Activity::class);\n $activity->method('participants')->willReturn($participants);\n $activity->method('getLead')->willReturn($lead);\n $activity->method('getContact')->willReturn(null);\n $activity->method('getAccount')->willReturn(null);\n $activity->method('getOpportunity')->willReturn(null);\n\n $this->activityRepository->expects($this->once())\n ->method('findById')\n ->with(123)\n ->willReturn($activity);\n\n $this->activityRepository->expects($this->once())\n ->method('getActivityParticipants')\n ->with($activity)\n ->willReturn(collect([]));\n\n $this->crmActivityService->expects($this->once())\n ->method('updateCrmData')\n ->with($activity, false);\n\n $this->connection->expects($this->once())\n ->method('transaction')\n ->willReturnCallback(function ($callback) {\n return $callback();\n });\n\n $job = new MatchActivityCrmData(\n activityId: 123,\n fromConfiguration: null,\n remoteSearch: false,\n );\n\n $job->handle(\n activityRepository: $this->activityRepository,\n crmActivityService: $this->crmActivityService,\n connection: $this->connection,\n );\n }\n\n public function testLogsNoMatchWhenNoMatchFound(): void\n {\n $participants = $this->createMock(HasMany::class);\n\n $activity = $this->createMock(Activity::class);\n $activity->method('participants')->willReturn($participants);\n $activity->method('getLead')->willReturn(null);\n $activity->method('getContact')->willReturn(null);\n $activity->method('getAccount')->willReturn(null);\n $activity->method('getOpportunity')->willReturn(null);\n\n $this->activityRepository->expects($this->once())\n ->method('findById')\n ->with(123)\n ->willReturn($activity);\n\n $this->activityRepository->expects($this->once())\n ->method('getActivityParticipants')\n ->with($activity)\n ->willReturn(collect([]));\n\n $this->crmActivityService->expects($this->once())\n ->method('updateCrmData')\n ->with($activity, true);\n\n $this->connection->expects($this->once())\n ->method('transaction')\n ->willReturnCallback(function ($callback) {\n return $callback();\n });\n\n $job = new MatchActivityCrmData(\n activityId: 123,\n fromConfiguration: null,\n remoteSearch: true,\n );\n\n $job->handle(\n activityRepository: $this->activityRepository,\n crmActivityService: $this->crmActivityService,\n connection: $this->connection,\n );\n }\n\n public function testLogsOldStateBeforeClearing(): void\n {\n $participant1 = new \\stdClass();\n $participant1->id = 10;\n $participant1->user_id = 100;\n $participant1->contact_id = 200;\n $participant1->lead_id = null;\n\n $participant2 = new \\stdClass();\n $participant2->id = 20;\n $participant2->user_id = null;\n $participant2->contact_id = null;\n $participant2->lead_id = 300;\n\n $participantsCollection = collect([$participant1, $participant2]);\n\n $participantsRelation = $this->createMock(HasMany::class);\n\n $lead = $this->createMock(Lead::class);\n $lead->method('getId')->willReturn(111);\n\n $contact = $this->createMock(Contact::class);\n $contact->method('getId')->willReturn(222);\n\n $account = $this->createMock(Account::class);\n $account->method('getId')->willReturn(333);\n\n $opportunity = $this->createMock(Opportunity::class);\n $opportunity->method('getId')->willReturn(444);\n\n $stage = $this->createMock(Stage::class);\n $stage->method('getId')->willReturn(555);\n\n $activity = $this->createMock(Activity::class);\n $activity->method('participants')->willReturn($participantsRelation);\n $activity->method('getLead')->willReturn($lead);\n $activity->method('getContact')->willReturn($contact);\n $activity->method('getAccount')->willReturn($account);\n $activity->method('getOpportunity')->willReturn($opportunity);\n $activity->method('getStage')->willReturn($stage);\n\n $this->activityRepository->expects($this->once())\n ->method('findById')\n ->with(999)\n ->willReturn($activity);\n\n $this->activityRepository->expects($this->once())\n ->method('getActivityParticipants')\n ->with($activity)\n ->willReturn($participantsCollection);\n\n $this->crmActivityService->expects($this->once())\n ->method('updateCrmData')\n ->with($activity, false);\n\n $this->connection->expects($this->once())\n ->method('transaction')\n ->willReturnCallback(function ($callback) {\n return $callback();\n });\n\n $job = new MatchActivityCrmData(\n activityId: 999,\n fromConfiguration: null,\n remoteSearch: false,\n );\n\n $job->handle(\n activityRepository: $this->activityRepository,\n crmActivityService: $this->crmActivityService,\n connection: $this->connection,\n );\n }\n}","depth":4,"bounds":{"left":0.122340426,"top":0.22106944,"width":0.30319148,"height":0.77893054},"on_screen":true,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Tests\\Unit\\Jobs\\Crm;\n\nuse Illuminate\\Database\\Connection;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Jiminny\\Exceptions\\InvalidArgumentException;\nuse Jiminny\\Jobs\\Crm\\MatchActivityCrmData;\nuse Jiminny\\Models\\Account;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\Contact;\nuse Jiminny\\Models\\Crm\\Configuration;\nuse Jiminny\\Models\\Lead;\nuse Jiminny\\Models\\Opportunity;\nuse Jiminny\\Models\\Stage;\nuse Jiminny\\Models\\Team;\nuse Jiminny\\Models\\User;\nuse Jiminny\\Repositories\\ActivityRepository;\nuse Jiminny\\Services\\Crm\\CrmActivityService;\nuse PHPUnit\\Framework\\MockObject\\Exception;\nuse PHPUnit\\Framework\\MockObject\\MockObject;\nuse Tests\\TestCase;\n\nclass MatchActivityCrmDataTest extends TestCase\n{\n private ActivityRepository|MockObject $activityRepository;\n private CrmActivityService|MockObject $crmActivityService;\n private Connection|MockObject $connection;\n\n protected function setUp(): void\n {\n parent::setUp();\n\n $this->activityRepository = $this->createMock(ActivityRepository::class);\n $this->crmActivityService = $this->createMock(CrmActivityService::class);\n $this->connection = $this->createMock(Connection::class);\n }\n\n /**\n * @throws \\Exception|Exception\n */\n public function testHandle(): void\n {\n $fromConfiguration = $this->createMock(Configuration::class);\n $fromConfiguration->method('getId')->willReturn(5);\n\n $team = $this->createMock(Team::class);\n\n $user = $this->createMock(User::class);\n $user->method('getTeam')->willReturn($team);\n\n $activityConfiguration = $this->createMock(Configuration::class);\n $activityConfiguration->method('getId')->willReturn(10);\n\n $participants = $this->createMock(HasMany::class);\n\n $activity = $this->createMock(Activity::class);\n $activity->method('getUuid')->willReturn('test');\n $activity->method('getProvider')->willReturn('provider');\n $activity->method('getUser')->willReturn($user);\n $activity->method('getCrm')->willReturn($activityConfiguration);\n $activity->method('participants')->willReturn($participants);\n $activity->expects($this->exactly(2))->method('update');\n\n $this->activityRepository->expects(($this->once()))\n ->method('findById')\n ->with(1)\n ->willReturn($activity);\n\n $this->activityRepository->expects($this->once())\n ->method('getActivityParticipants')\n ->with($activity)\n ->willReturn(collect([]));\n\n $this->crmActivityService->expects($this->once())\n ->method('updateCrmData')\n ->with($activity, false);\n\n $this->connection->expects($this->once())\n ->method('transaction')\n ->willReturnCallback(function ($callback) {\n return $callback();\n });\n\n $job = new MatchActivityCrmData(\n activityId: 1,\n fromConfiguration: $fromConfiguration,\n );\n $job->handle(\n activityRepository: $this->activityRepository,\n crmActivityService: $this->crmActivityService,\n connection: $this->connection,\n );\n }\n\n /**\n * @throws \\Exception|Exception\n */\n public function testHandleNoActivity(): void\n {\n $this->activityRepository->expects(($this->once()))\n ->method('findById')\n ->with(1)\n ->willReturn(null);\n\n $job = new MatchActivityCrmData(\n activityId: 1,\n fromConfiguration: null,\n );\n\n $this->expectException(InvalidArgumentException::class);\n $this->expectExceptionMessage('[MatchActivityCrmData] Cannot find activity.');\n\n $job->handle(\n activityRepository: $this->activityRepository,\n crmActivityService: $this->crmActivityService,\n connection: $this->connection,\n );\n }\n\n public function testSkipsCrmConfigurationSwitchWhenAlreadyMatches(): void\n {\n $fromConfiguration = $this->createMock(Configuration::class);\n $fromConfiguration->method('getId')->willReturn(5);\n\n $activityConfiguration = $this->createMock(Configuration::class);\n $activityConfiguration->method('getId')->willReturn(5);\n\n $participants = $this->createMock(HasMany::class);\n\n $activity = $this->createMock(Activity::class);\n $activity->method('getCrm')->willReturn($activityConfiguration);\n $activity->method('participants')->willReturn($participants);\n $activity->expects($this->once())->method('update');\n\n $this->activityRepository->expects($this->once())\n ->method('findById')\n ->with(123)\n ->willReturn($activity);\n\n $this->activityRepository->expects($this->once())\n ->method('getActivityParticipants')\n ->with($activity)\n ->willReturn(collect([]));\n\n $this->crmActivityService->expects($this->once())\n ->method('updateCrmData')\n ->with($activity, false);\n\n $this->connection->expects($this->once())\n ->method('transaction')\n ->willReturnCallback(function ($callback) {\n return $callback();\n });\n\n $job = new MatchActivityCrmData(\n activityId: 123,\n fromConfiguration: $fromConfiguration,\n );\n\n $job->handle(\n activityRepository: $this->activityRepository,\n crmActivityService: $this->crmActivityService,\n connection: $this->connection,\n );\n }\n\n public function testJobConfiguration(): void\n {\n $job = new MatchActivityCrmData(\n activityId: 1,\n fromConfiguration: null,\n remoteSearch: false,\n );\n\n $this->assertSame(3, $job->tries);\n $this->assertSame(300, $job->timeout());\n $this->assertSame(360, $job->uniqueFor());\n $this->assertSame([30, 90, 180], $job->backoff());\n }\n\n public function testUniqueId(): void\n {\n $configuration = $this->createMock(Configuration::class);\n $configuration->method('getId')->willReturn(5);\n\n $job1 = new MatchActivityCrmData(\n activityId: 123,\n fromConfiguration: null,\n remoteSearch: false,\n );\n $this->assertSame('123:0:local', $job1->uniqueId());\n\n $job2 = new MatchActivityCrmData(\n activityId: 123,\n fromConfiguration: null,\n remoteSearch: true,\n );\n $this->assertSame('123:0:remote', $job2->uniqueId());\n\n $job3 = new MatchActivityCrmData(\n activityId: 123,\n fromConfiguration: $configuration,\n remoteSearch: false,\n );\n $this->assertSame('123:5:local', $job3->uniqueId());\n }\n\n public function testTransactionRollbackOnException(): void\n {\n $activity = $this->createMock(Activity::class);\n\n $this->activityRepository->expects($this->once())\n ->method('findById')\n ->with(1)\n ->willReturn($activity);\n\n $exception = new \\RuntimeException('Test exception');\n\n $this->connection->expects($this->once())\n ->method('transaction')\n ->willReturnCallback(function ($callback) use ($exception) {\n throw $exception;\n });\n\n $job = new MatchActivityCrmData(\n activityId: 1,\n fromConfiguration: null,\n );\n\n $this->expectException(\\RuntimeException::class);\n $this->expectExceptionMessage('Test exception');\n\n $job->handle(\n activityRepository: $this->activityRepository,\n crmActivityService: $this->crmActivityService,\n connection: $this->connection,\n );\n }\n\n public function testFailedMethodLogsError(): void\n {\n $exception = new \\RuntimeException('Test failure');\n\n $job = new MatchActivityCrmData(\n activityId: 123,\n fromConfiguration: null,\n remoteSearch: true,\n );\n\n $job->failed($exception);\n\n $this->assertTrue(true);\n }\n\n public function testLogsSuccessWhenMatchFound(): void\n {\n $participants = $this->createMock(HasMany::class);\n\n $lead = $this->createMock(Lead::class);\n $lead->method('getId')->willReturn(456);\n\n $activity = $this->createMock(Activity::class);\n $activity->method('participants')->willReturn($participants);\n $activity->method('getLead')->willReturn($lead);\n $activity->method('getContact')->willReturn(null);\n $activity->method('getAccount')->willReturn(null);\n $activity->method('getOpportunity')->willReturn(null);\n\n $this->activityRepository->expects($this->once())\n ->method('findById')\n ->with(123)\n ->willReturn($activity);\n\n $this->activityRepository->expects($this->once())\n ->method('getActivityParticipants')\n ->with($activity)\n ->willReturn(collect([]));\n\n $this->crmActivityService->expects($this->once())\n ->method('updateCrmData')\n ->with($activity, false);\n\n $this->connection->expects($this->once())\n ->method('transaction')\n ->willReturnCallback(function ($callback) {\n return $callback();\n });\n\n $job = new MatchActivityCrmData(\n activityId: 123,\n fromConfiguration: null,\n remoteSearch: false,\n );\n\n $job->handle(\n activityRepository: $this->activityRepository,\n crmActivityService: $this->crmActivityService,\n connection: $this->connection,\n );\n }\n\n public function testLogsNoMatchWhenNoMatchFound(): void\n {\n $participants = $this->createMock(HasMany::class);\n\n $activity = $this->createMock(Activity::class);\n $activity->method('participants')->willReturn($participants);\n $activity->method('getLead')->willReturn(null);\n $activity->method('getContact')->willReturn(null);\n $activity->method('getAccount')->willReturn(null);\n $activity->method('getOpportunity')->willReturn(null);\n\n $this->activityRepository->expects($this->once())\n ->method('findById')\n ->with(123)\n ->willReturn($activity);\n\n $this->activityRepository->expects($this->once())\n ->method('getActivityParticipants')\n ->with($activity)\n ->willReturn(collect([]));\n\n $this->crmActivityService->expects($this->once())\n ->method('updateCrmData')\n ->with($activity, true);\n\n $this->connection->expects($this->once())\n ->method('transaction')\n ->willReturnCallback(function ($callback) {\n return $callback();\n });\n\n $job = new MatchActivityCrmData(\n activityId: 123,\n fromConfiguration: null,\n remoteSearch: true,\n );\n\n $job->handle(\n activityRepository: $this->activityRepository,\n crmActivityService: $this->crmActivityService,\n connection: $this->connection,\n );\n }\n\n public function testLogsOldStateBeforeClearing(): void\n {\n $participant1 = new \\stdClass();\n $participant1->id = 10;\n $participant1->user_id = 100;\n $participant1->contact_id = 200;\n $participant1->lead_id = null;\n\n $participant2 = new \\stdClass();\n $participant2->id = 20;\n $participant2->user_id = null;\n $participant2->contact_id = null;\n $participant2->lead_id = 300;\n\n $participantsCollection = collect([$participant1, $participant2]);\n\n $participantsRelation = $this->createMock(HasMany::class);\n\n $lead = $this->createMock(Lead::class);\n $lead->method('getId')->willReturn(111);\n\n $contact = $this->createMock(Contact::class);\n $contact->method('getId')->willReturn(222);\n\n $account = $this->createMock(Account::class);\n $account->method('getId')->willReturn(333);\n\n $opportunity = $this->createMock(Opportunity::class);\n $opportunity->method('getId')->willReturn(444);\n\n $stage = $this->createMock(Stage::class);\n $stage->method('getId')->willReturn(555);\n\n $activity = $this->createMock(Activity::class);\n $activity->method('participants')->willReturn($participantsRelation);\n $activity->method('getLead')->willReturn($lead);\n $activity->method('getContact')->willReturn($contact);\n $activity->method('getAccount')->willReturn($account);\n $activity->method('getOpportunity')->willReturn($opportunity);\n $activity->method('getStage')->willReturn($stage);\n\n $this->activityRepository->expects($this->once())\n ->method('findById')\n ->with(999)\n ->willReturn($activity);\n\n $this->activityRepository->expects($this->once())\n ->method('getActivityParticipants')\n ->with($activity)\n ->willReturn($participantsCollection);\n\n $this->crmActivityService->expects($this->once())\n ->method('updateCrmData')\n ->with($activity, false);\n\n $this->connection->expects($this->once())\n ->method('transaction')\n ->willReturnCallback(function ($callback) {\n return $callback();\n });\n\n $job = new MatchActivityCrmData(\n activityId: 999,\n fromConfiguration: null,\n remoteSearch: false,\n );\n\n $job->handle(\n activityRepository: $this->activityRepository,\n crmActivityService: $this->crmActivityService,\n connection: $this->connection,\n );\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
691250424638007312
|
-5188938913728016520
|
click
|
accessibility
|
NULL
|
Project: faVsco.js, menu
JY-20725-handle-HS-search Project: faVsco.js, menu
JY-20725-handle-HS-search-rate-limit, menu
Start Listening for PHP Debug Connections
MatchActivityCrmDataTest
Run 'MatchActivityCrmDataTest'
Debug 'MatchActivityCrmDataTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Code changed:
Hide
Sync Changes
Hide This Notification
2
19
8
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Tests\Unit\Jobs\Crm;
use Illuminate\Database\Connection;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Jiminny\Exceptions\InvalidArgumentException;
use Jiminny\Jobs\Crm\MatchActivityCrmData;
use Jiminny\Models\Account;
use Jiminny\Models\Activity;
use Jiminny\Models\Contact;
use Jiminny\Models\Crm\Configuration;
use Jiminny\Models\Lead;
use Jiminny\Models\Opportunity;
use Jiminny\Models\Stage;
use Jiminny\Models\Team;
use Jiminny\Models\User;
use Jiminny\Repositories\ActivityRepository;
use Jiminny\Services\Crm\CrmActivityService;
use PHPUnit\Framework\MockObject\Exception;
use PHPUnit\Framework\MockObject\MockObject;
use Tests\TestCase;
class MatchActivityCrmDataTest extends TestCase
{
private ActivityRepository|MockObject $activityRepository;
private CrmActivityService|MockObject $crmActivityService;
private Connection|MockObject $connection;
protected function setUp(): void
{
parent::setUp();
$this->activityRepository = $this->createMock(ActivityRepository::class);
$this->crmActivityService = $this->createMock(CrmActivityService::class);
$this->connection = $this->createMock(Connection::class);
}
/**
* @throws \Exception|Exception
*/
public function testHandle(): void
{
$fromConfiguration = $this->createMock(Configuration::class);
$fromConfiguration->method('getId')->willReturn(5);
$team = $this->createMock(Team::class);
$user = $this->createMock(User::class);
$user->method('getTeam')->willReturn($team);
$activityConfiguration = $this->createMock(Configuration::class);
$activityConfiguration->method('getId')->willReturn(10);
$participants = $this->createMock(HasMany::class);
$activity = $this->createMock(Activity::class);
$activity->method('getUuid')->willReturn('test');
$activity->method('getProvider')->willReturn('provider');
$activity->method('getUser')->willReturn($user);
$activity->method('getCrm')->willReturn($activityConfiguration);
$activity->method('participants')->willReturn($participants);
$activity->expects($this->exactly(2))->method('update');
$this->activityRepository->expects(($this->once()))
->method('findById')
->with(1)
->willReturn($activity);
$this->activityRepository->expects($this->once())
->method('getActivityParticipants')
->with($activity)
->willReturn(collect([]));
$this->crmActivityService->expects($this->once())
->method('updateCrmData')
->with($activity, false);
$this->connection->expects($this->once())
->method('transaction')
->willReturnCallback(function ($callback) {
return $callback();
});
$job = new MatchActivityCrmData(
activityId: 1,
fromConfiguration: $fromConfiguration,
);
$job->handle(
activityRepository: $this->activityRepository,
crmActivityService: $this->crmActivityService,
connection: $this->connection,
);
}
/**
* @throws \Exception|Exception
*/
public function testHandleNoActivity(): void
{
$this->activityRepository->expects(($this->once()))
->method('findById')
->with(1)
->willReturn(null);
$job = new MatchActivityCrmData(
activityId: 1,
fromConfiguration: null,
);
$this->expectException(InvalidArgumentException::class);
$this->expectExceptionMessage('[MatchActivityCrmData] Cannot find activity.');
$job->handle(
activityRepository: $this->activityRepository,
crmActivityService: $this->crmActivityService,
connection: $this->connection,
);
}
public function testSkipsCrmConfigurationSwitchWhenAlreadyMatches(): void
{
$fromConfiguration = $this->createMock(Configuration::class);
$fromConfiguration->method('getId')->willReturn(5);
$activityConfiguration = $this->createMock(Configuration::class);
$activityConfiguration->method('getId')->willReturn(5);
$participants = $this->createMock(HasMany::class);
$activity = $this->createMock(Activity::class);
$activity->method('getCrm')->willReturn($activityConfiguration);
$activity->method('participants')->willReturn($participants);
$activity->expects($this->once())->method('update');
$this->activityRepository->expects($this->once())
->method('findById')
->with(123)
->willReturn($activity);
$this->activityRepository->expects($this->once())
->method('getActivityParticipants')
->with($activity)
->willReturn(collect([]));
$this->crmActivityService->expects($this->once())
->method('updateCrmData')
->with($activity, false);
$this->connection->expects($this->once())
->method('transaction')
->willReturnCallback(function ($callback) {
return $callback();
});
$job = new MatchActivityCrmData(
activityId: 123,
fromConfiguration: $fromConfiguration,
);
$job->handle(
activityRepository: $this->activityRepository,
crmActivityService: $this->crmActivityService,
connection: $this->connection,
);
}
public function testJobConfiguration(): void
{
$job = new MatchActivityCrmData(
activityId: 1,
fromConfiguration: null,
remoteSearch: false,
);
$this->assertSame(3, $job->tries);
$this->assertSame(300, $job->timeout());
$this->assertSame(360, $job->uniqueFor());
$this->assertSame([30, 90, 180], $job->backoff());
}
public function testUniqueId(): void
{
$configuration = $this->createMock(Configuration::class);
$configuration->method('getId')->willReturn(5);
$job1 = new MatchActivityCrmData(
activityId: 123,
fromConfiguration: null,
remoteSearch: false,
);
$this->assertSame('123:0:local', $job1->uniqueId());
$job2 = new MatchActivityCrmData(
activityId: 123,
fromConfiguration: null,
remoteSearch: true,
);
$this->assertSame('123:0:remote', $job2->uniqueId());
$job3 = new MatchActivityCrmData(
activityId: 123,
fromConfiguration: $configuration,
remoteSearch: false,
);
$this->assertSame('123:5:local', $job3->uniqueId());
}
public function testTransactionRollbackOnException(): void
{
$activity = $this->createMock(Activity::class);
$this->activityRepository->expects($this->once())
->method('findById')
->with(1)
->willReturn($activity);
$exception = new \RuntimeException('Test exception');
$this->connection->expects($this->once())
->method('transaction')
->willReturnCallback(function ($callback) use ($exception) {
throw $exception;
});
$job = new MatchActivityCrmData(
activityId: 1,
fromConfiguration: null,
);
$this->expectException(\RuntimeException::class);
$this->expectExceptionMessage('Test exception');
$job->handle(
activityRepository: $this->activityRepository,
crmActivityService: $this->crmActivityService,
connection: $this->connection,
);
}
public function testFailedMethodLogsError(): void
{
$exception = new \RuntimeException('Test failure');
$job = new MatchActivityCrmData(
activityId: 123,
fromConfiguration: null,
remoteSearch: true,
);
$job->failed($exception);
$this->assertTrue(true);
}
public function testLogsSuccessWhenMatchFound(): void
{
$participants = $this->createMock(HasMany::class);
$lead = $this->createMock(Lead::class);
$lead->method('getId')->willReturn(456);
$activity = $this->createMock(Activity::class);
$activity->method('participants')->willReturn($participants);
$activity->method('getLead')->willReturn($lead);
$activity->method('getContact')->willReturn(null);
$activity->method('getAccount')->willReturn(null);
$activity->method('getOpportunity')->willReturn(null);
$this->activityRepository->expects($this->once())
->method('findById')
->with(123)
->willReturn($activity);
$this->activityRepository->expects($this->once())
->method('getActivityParticipants')
->with($activity)
->willReturn(collect([]));
$this->crmActivityService->expects($this->once())
->method('updateCrmData')
->with($activity, false);
$this->connection->expects($this->once())
->method('transaction')
->willReturnCallback(function ($callback) {
return $callback();
});
$job = new MatchActivityCrmData(
activityId: 123,
fromConfiguration: null,
remoteSearch: false,
);
$job->handle(
activityRepository: $this->activityRepository,
crmActivityService: $this->crmActivityService,
connection: $this->connection,
);
}
public function testLogsNoMatchWhenNoMatchFound(): void
{
$participants = $this->createMock(HasMany::class);
$activity = $this->createMock(Activity::class);
$activity->method('participants')->willReturn($participants);
$activity->method('getLead')->willReturn(null);
$activity->method('getContact')->willReturn(null);
$activity->method('getAccount')->willReturn(null);
$activity->method('getOpportunity')->willReturn(null);
$this->activityRepository->expects($this->once())
->method('findById')
->with(123)
->willReturn($activity);
$this->activityRepository->expects($this->once())
->method('getActivityParticipants')
->with($activity)
->willReturn(collect([]));
$this->crmActivityService->expects($this->once())
->method('updateCrmData')
->with($activity, true);
$this->connection->expects($this->once())
->method('transaction')
->willReturnCallback(function ($callback) {
return $callback();
});
$job = new MatchActivityCrmData(
activityId: 123,
fromConfiguration: null,
remoteSearch: true,
);
$job->handle(
activityRepository: $this->activityRepository,
crmActivityService: $this->crmActivityService,
connection: $this->connection,
);
}
public function testLogsOldStateBeforeClearing(): void
{
$participant1 = new \stdClass();
$participant1->id = 10;
$participant1->user_id = 100;
$participant1->contact_id = 200;
$participant1->lead_id = null;
$participant2 = new \stdClass();
$participant2->id = 20;
$participant2->user_id = null;
$participant2->contact_id = null;
$participant2->lead_id = 300;
$participantsCollection = collect([$participant1, $participant2]);
$participantsRelation = $this->createMock(HasMany::class);
$lead = $this->createMock(Lead::class);
$lead->method('getId')->willReturn(111);
$contact = $this->createMock(Contact::class);
$contact->method('getId')->willReturn(222);
$account = $this->createMock(Account::class);
$account->method('getId')->willReturn(333);
$opportunity = $this->createMock(Opportunity::class);
$opportunity->method('getId')->willReturn(444);
$stage = $this->createMock(Stage::class);
$stage->method('getId')->willReturn(555);
$activity = $this->createMock(Activity::class);
$activity->method('participants')->willReturn($participantsRelation);
$activity->method('getLead')->willReturn($lead);
$activity->method('getContact')->willReturn($contact);
$activity->method('getAccount')->willReturn($account);
$activity->method('getOpportunity')->willReturn($opportunity);
$activity->method('getStage')->willReturn($stage);
$this->activityRepository->expects($this->once())
->method('findById')
->with(999)
->willReturn($activity);
$this->activityRepository->expects($this->once())
->method('getActivityParticipants')
->with($activity)
->willReturn($participantsCollection);
$this->crmActivityService->expects($this->once())
->method('updateCrmData')
->with($activity, false);
$this->connection->expects($this->once())
->method('transaction')
->willReturnCallback(function ($callback) {
return $callback();
});
$job = new MatchActivityCrmData(
activityId: 999,
fromConfiguration: null,
remoteSearch: false,
);
$job->handle(
activityRepository: $this->activityRepository,
crmActivityService: $this->crmActivityService,
connection: $this->connection,
);
}
}...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
19522
|
835
|
4
|
2026-05-11T12:57:51.718328+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778504271718_m2.jpg...
|
PhpStorm
|
faVsco.js – MatchActivityCrmDataTest.php
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
JY-20725-handle-HS-search Project: faVsco.js, menu
JY-20725-handle-HS-search-rate-limit, menu
Start Listening for PHP Debug Connections
MatchActivityCrmDataTest
Run 'MatchActivityCrmDataTest'
Debug 'MatchActivityCrmDataTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Code changed:
Hide
Sync Changes
Hide This Notification
2
19
8
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Tests\Unit\Jobs\Crm;
use Illuminate\Database\Connection;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Jiminny\Exceptions\InvalidArgumentException;
use Jiminny\Jobs\Crm\MatchActivityCrmData;
use Jiminny\Models\Account;
use Jiminny\Models\Activity;
use Jiminny\Models\Contact;
use Jiminny\Models\Crm\Configuration;
use Jiminny\Models\Lead;
use Jiminny\Models\Opportunity;
use Jiminny\Models\Stage;
use Jiminny\Models\Team;
use Jiminny\Models\User;
use Jiminny\Repositories\ActivityRepository;
use Jiminny\Services\Crm\CrmActivityService;
use PHPUnit\Framework\MockObject\Exception;
use PHPUnit\Framework\MockObject\MockObject;
use Tests\TestCase;
class MatchActivityCrmDataTest extends TestCase
{
private ActivityRepository|MockObject $activityRepository;
private CrmActivityService|MockObject $crmActivityService;
private Connection|MockObject $connection;
protected function setUp(): void
{
parent::setUp();
$this->activityRepository = $this->createMock(ActivityRepository::class);
$this->crmActivityService = $this->createMock(CrmActivityService::class);
$this->connection = $this->createMock(Connection::class);
}
/**
* @throws \Exception|Exception
*/
public function testHandle(): void
{
$fromConfiguration = $this->createMock(Configuration::class);
$fromConfiguration->method('getId')->willReturn(5);
$team = $this->createMock(Team::class);
$user = $this->createMock(User::class);
$user->method('getTeam')->willReturn($team);
$activityConfiguration = $this->createMock(Configuration::class);
$activityConfiguration->method('getId')->willReturn(10);
$participants = $this->createMock(HasMany::class);
$activity = $this->createMock(Activity::class);
$activity->method('getUuid')->willReturn('test');
$activity->method('getProvider')->willReturn('provider');
$activity->method('getUser')->willReturn($user);
$activity->method('getCrm')->willReturn($activityConfiguration);
$activity->method('participants')->willReturn($participants);
$activity->expects($this->exactly(2))->method('update');
$this->activityRepository->expects(($this->once()))
->method('findById')
->with(1)
->willReturn($activity);
$this->activityRepository->expects($this->once())
->method('getActivityParticipants')
->with($activity)
->willReturn(collect([]));
$this->crmActivityService->expects($this->once())
->method('updateCrmData')
->with($activity, false);
$this->connection->expects($this->once())
->method('transaction')
->willReturnCallback(function ($callback) {
return $callback();
});
$job = new MatchActivityCrmData(
activityId: 1,
fromConfiguration: $fromConfiguration,
);
$job->handle(
activityRepository: $this->activityRepository,
crmActivityService: $this->crmActivityService,
connection: $this->connection,
);
}
/**
* @throws \Exception|Exception
*/
public function testHandleNoActivity(): void
{
$this->activityRepository->expects(($this->once()))
->method('findById')
->with(1)
->willReturn(null);
$job = new MatchActivityCrmData(
activityId: 1,
fromConfiguration: null,
);
$this->expectException(InvalidArgumentException::class);
$this->expectExceptionMessage('[MatchActivityCrmData] Cannot find activity.');
$job->handle(
activityRepository: $this->activityRepository,
crmActivityService: $this->crmActivityService,
connection: $this->connection,
);
}
public function testSkipsCrmConfigurationSwitchWhenAlreadyMatches(): void
{
$fromConfiguration = $this->createMock(Configuration::class);
$fromConfiguration->method('getId')->willReturn(5);
$activityConfiguration = $this->createMock(Configuration::class);
$activityConfiguration->method('getId')->willReturn(5);
$participants = $this->createMock(HasMany::class);
$activity = $this->createMock(Activity::class);
$activity->method('getCrm')->willReturn($activityConfiguration);
$activity->method('participants')->willReturn($participants);
$activity->expects($this->once())->method('update');
$this->activityRepository->expects($this->once())
->method('findById')
->with(123)
->willReturn($activity);
$this->activityRepository->expects($this->once())
->method('getActivityParticipants')
->with($activity)
->willReturn(collect([]));
$this->crmActivityService->expects($this->once())
->method('updateCrmData')
->with($activity, false);
$this->connection->expects($this->once())
->method('transaction')
->willReturnCallback(function ($callback) {
return $callback();
});
$job = new MatchActivityCrmData(
activityId: 123,
fromConfiguration: $fromConfiguration,
);
$job->handle(
activityRepository: $this->activityRepository,
crmActivityService: $this->crmActivityService,
connection: $this->connection,
);
}
public function testJobConfiguration(): void
{
$job = new MatchActivityCrmData(
activityId: 1,
fromConfiguration: null,
remoteSearch: false,
);
$this->assertSame(3, $job->tries);
$this->assertSame(300, $job->timeout());
$this->assertSame(360, $job->uniqueFor());
$this->assertSame([30, 90, 180], $job->backoff());
}
public function testUniqueId(): void
{
$configuration = $this->createMock(Configuration::class);
$configuration->method('getId')->willReturn(5);
$job1 = new MatchActivityCrmData(
activityId: 123,
fromConfiguration: null,
remoteSearch: false,
);
$this->assertSame('123:0:local', $job1->uniqueId());
$job2 = new MatchActivityCrmData(
activityId: 123,
fromConfiguration: null,
remoteSearch: true,
);
$this->assertSame('123:0:remote', $job2->uniqueId());
$job3 = new MatchActivityCrmData(
activityId: 123,
fromConfiguration: $configuration,
remoteSearch: false,
);
$this->assertSame('123:5:local', $job3->uniqueId());
}
public function testTransactionRollbackOnException(): void
{
$activity = $this->createMock(Activity::class);
$this->activityRepository->expects($this->once())
->method('findById')
->with(1)
->willReturn($activity);
$exception = new \RuntimeException('Test exception');
$this->connection->expects($this->once())
->method('transaction')
->willReturnCallback(function ($callback) use ($exception) {
throw $exception;
});
$job = new MatchActivityCrmData(
activityId: 1,
fromConfiguration: null,
);
$this->expectException(\RuntimeException::class);
$this->expectExceptionMessage('Test exception');
$job->handle(
activityRepository: $this->activityRepository,
crmActivityService: $this->crmActivityService,
connection: $this->connection,
);
}
public function testFailedMethodLogsError(): void
{
$exception = new \RuntimeException('Test failure');
$job = new MatchActivityCrmData(
activityId: 123,
fromConfiguration: null,
remoteSearch: true,
);
$job->failed($exception);
$this->assertTrue(true);
}
public function testLogsSuccessWhenMatchFound(): void
{
$participants = $this->createMock(HasMany::class);
$lead = $this->createMock(Lead::class);
$lead->method('getId')->willReturn(456);
$activity = $this->createMock(Activity::class);
$activity->method('participants')->willReturn($participants);
$activity->method('getLead')->willReturn($lead);
$activity->method('getContact')->willReturn(null);
$activity->method('getAccount')->willReturn(null);
$activity->method('getOpportunity')->willReturn(null);
$this->activityRepository->expects($this->once())
->method('findById')
->with(123)
->willReturn($activity);
$this->activityRepository->expects($this->once())
->method('getActivityParticipants')
->with($activity)
->willReturn(collect([]));
$this->crmActivityService->expects($this->once())
->method('updateCrmData')
->with($activity, false);
$this->connection->expects($this->once())
->method('transaction')
->willReturnCallback(function ($callback) {
return $callback();
});
$job = new MatchActivityCrmData(
activityId: 123,
fromConfiguration: null,
remoteSearch: false,
);
$job->handle(
activityRepository: $this->activityRepository,
crmActivityService: $this->crmActivityService,
connection: $this->connection,
);
}
public function testLogsNoMatchWhenNoMatchFound(): void
{
$participants = $this->createMock(HasMany::class);
$activity = $this->createMock(Activity::class);
$activity->method('participants')->willReturn($participants);
$activity->method('getLead')->willReturn(null);
$activity->method('getContact')->willReturn(null);
$activity->method('getAccount')->willReturn(null);
$activity->method('getOpportunity')->willReturn(null);
$this->activityRepository->expects($this->once())
->method('findById')
->with(123)
->willReturn($activity);
$this->activityRepository->expects($this->once())
->method('getActivityParticipants')
->with($activity)
->willReturn(collect([]));
$this->crmActivityService->expects($this->once())
->method('updateCrmData')
->with($activity, true);
$this->connection->expects($this->once())
->method('transaction')
->willReturnCallback(function ($callback) {
return $callback();
});
$job = new MatchActivityCrmData(
activityId: 123,
fromConfiguration: null,
remoteSearch: true,
);
$job->handle(
activityRepository: $this->activityRepository,
crmActivityService: $this->crmActivityService,
connection: $this->connection,
);
}
public function testLogsOldStateBeforeClearing(): void
{
$participant1 = new \stdClass();
$participant1->id = 10;
$participant1->user_id = 100;
$participant1->contact_id = 200;
$participant1->lead_id = null;
$participant2 = new \stdClass();
$participant2->id = 20;
$participant2->user_id = null;
$participant2->contact_id = null;
$participant2->lead_id = 300;
$participantsCollection = collect([$participant1, $participant2]);
$participantsRelation = $this->createMock(HasMany::class);
$lead = $this->createMock(Lead::class);
$lead->method('getId')->willReturn(111);
$contact = $this->createMock(Contact::class);
$contact->method('getId')->willReturn(222);
$account = $this->createMock(Account::class);
$account->method('getId')->willReturn(333);
$opportunity = $this->createMock(Opportunity::class);
$opportunity->method('getId')->willReturn(444);
$stage = $this->createMock(Stage::class);
$stage->method('getId')->willReturn(555);
$activity = $this->createMock(Activity::class);
$activity->method('participants')->willReturn($participantsRelation);
$activity->method('getLead')->willReturn($lead);
$activity->method('getContact')->willReturn($contact);
$activity->method('getAccount')->willReturn($account);
$activity->method('getOpportunity')->willReturn($opportunity);
$activity->method('getStage')->willReturn($stage);
$this->activityRepository->expects($this->once())
->method('findById')
->with(999)
->willReturn($activity);
$this->activityRepository->expects($this->once())
->method('getActivityParticipants')
->with($activity)
->willReturn($participantsCollection);
$this->crmActivityService->expects($this->once())
->method('updateCrmData')
->with($activity, false);
$this->connection->expects($this->once())
->method('transaction')
->willReturnCallback(function ($callback) {
return $callback();
});
$job = new MatchActivityCrmData(
activityId: 999,
fromConfiguration: null,
remoteSearch: false,
);
$job->handle(
activityRepository: $this->activityRepository,
crmActivityService: $this->crmActivityService,
connection: $this->connection,
);
}
}
Show Replace Field
Search History
429
New Line
Match Case
Words
Regex
Replace History
Replace
New Line
Preserve case
23/232
Previous Occurrence
Next Occurrence
Filter Search Results
Open in Window, Multiple Cursors
Click to highlight
Close
Sync Changes
Hide This Notification
Code changed:
Hide
[2026-05-11 11:17:21] local.NOTICE: Monitoring start {"correlation_id":"885fde59-3852-4120-a620-af3da7ecce17","trace_id":"4cc10f53-5d39-418d-8e98-fe53d9bbff5f"}
[2026-05-11 11:17:21] local.NOTICE: Monitoring end {"correlation_id":"885fde59-3852-4120-a620-af3da7ecce17","trace_id":"4cc10f53-5d39-418d-8e98-fe53d9bbff5f"}
[2026-05-11 11:17:34] local.INFO: Jiminny\Console\Commands\Command::run Memory usage before starting command {"command":"mailbox:skip-lists:refresh","memoryBeforeCommandInMb":60.0,"memoryPeakBeforeCommandInMb":99.727} {"correlation_id":"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90","trace_id":"fb6d8028-db7d-4ef2-b175-740f0a7b8b39"}
[2026-05-11 11:17:35] local.INFO: Jiminny\Console\Commands\Command::run Memory usage for command {"command":"mailbox:skip-lists:refresh","memoryBeforeCommandInMb":60.0,"memoryAfterCommandInMB":60.0,"memoryPeakBeforeCommandInMb":99.727,"memoryPeakAfterCommandInMB":99.727} {"correlation_id":"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90","trace_id":"fb6d8028-db7d-4ef2-b175-740f0a7b8b39"}
[2026-05-11 11:17:37] local.INFO: [MatchActivityCrmData] Starting CRM data matching {"activity":615092,"remote_search":true,"set_configuration":2,"old_state":{"lead_id":null,"contact_id":null,"account_id":26,"opportunity_id":22,"stage_id":89}} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":615092} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":615092,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [MatchActivityCrmData] Participants old state {"activity":615092,"participants":[{"id":1004102,"user_id":null,"contact_id":null,"lead_id":null},{"id":1004103,"user_id":89,"contact_id":null,"lead_id":null}]} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [Prospect match] Cache miss, calling the API {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Hubspot] Failed to fetch contact {"email":"[EMAIL]","reason":"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/nikolay.nikolov%40jiminny.com?properties=email%2Cfirstname%2Clastname%2Ccountry%2Cphone%2Cmobilephone%2Cjobtitle%2Chubspot_owner_id%2Cassociatedcompanyid%2Cphoto&archived=0&idProperty=email` resulted in a `404 Not Found` response"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.WARNING: [Hubspot] Received 429 from API {"team_id":2,"config_id":2,"retry_after":1,"reason":"Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response:
{\"status\":\"error\",\"message\":\"You have reached your secondly limit.\",\"errorType\":\"RATE_LIMIT\",\"correlationId\":\"019e16c1-c (truncated...)
"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":4} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [MatchActivityCrmData] Starting CRM data matching {"activity":614436,"remote_search":true,"set_configuration":2,"old_state":{"lead_id":null,"contact_id":null,"account_id":26,"opportunity_id":22,"stage_id":89}} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614436} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614436,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [MatchActivityCrmData] Participants old state {"activity":614436,"participants":[{"id":1002751,"user_id":null,"contact_id":null,"lead_id":null},{"id":1002752,"user_id":89,"contact_id":null,"lead_id":null}]} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":3} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [MatchActivityCrmData] Starting CRM data matching {"activity":614382,"remote_search":true,"set_configuration":2,"old_state":{"lead_id":null,"contact_id":null,"account_id":26,"opportunity_id":22,"stage_id":89}} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614382} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614382,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [MatchActivityCrmData] Participants old state {"activity":614382,"participants":[{"id":1002632,"user_id":null,"contact_id":null,"lead_id":null},{"id":1002633,"user_id":89,"contact_id":null,"lead_id":null}]} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":1} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [MatchActivityCrmData] Starting CRM data matching {"activity":614381,"remote_search":true,"set_configuration":2,"old_state":{"lead_id":null,"contact_id":null,"account_id":26,"opportunity_id":22,"stage_id":89}} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614381} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614381,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [MatchActivityCrmData] Participants old state {"activity":614381,"participants":[{"id":1002630,"user_id":null,"contact_id":null,"lead_id":null},{"id":1002631,"user_id":89,"contact_id":null,"lead_id":null}]} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.WARNING: [Hubspot] Received 429 from API {"team_id":2,"config_id":2,"retry_after":1,"reason":"Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response:
{\"status\":\"error\",\"message\":\"You have reached your secondly limit.\",\"errorType\":\"RATE_LIMIT\",\"correlationId\":\"019e16c1-c (truncated...)
"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":2} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [MatchActivityCrmData] Starting CRM data matching {"activity":614378,"remote_search":true,"set_configuration":2,"old_state":{"lead_id":null,"contact_id":6167,"account_id":null,"opportunity_id":null,"stage_id":null}} {"correlation_id":"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614378} {"correlation_id":"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614378,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [MatchActivityCrmData] Participants old state {"activity":614378,"participants":[{"id":1002623,"user_id":null,"contact_id":null,"lead_id":null},{"id":1002624,"user_id":null,"contact_id":6167,"lead_id":null},{"id":1002625,"user_id":89,"contact_id":null,"lead_id":null}]} {"correlation_id":"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":3} {"correlation_id":"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [MatchActivityCrmData] Starting CRM data matching {"activity":613840,"remote_search":true,"set_configuration":2,"old_state":{"lead_id":null,"contact_id":4487,"account_id":244,"opportunity_id":299,"stage_id":36}} {"correlation_id":"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":613840} {"correlation_id":"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":613840,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [MatchActivityCrmData] Participants old state {"activity":613840,"participants":[{"id":1001764,"user_id":null,"contact_id":4487,"lead_id":null},{"id":1001765,"user_id":261,"contact_id":null,"lead_id":null}]} {"correlation_id":"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: ProspectCache - Searching DB for opportunity by owner {"account_id":244,"contact_id":4487,"owner_id":261} {"correlation_id":"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: ProspectCache - Opportunity DB search results {"account_id":244,"contact_id":4487,"opportunity_id":299} {"correlation_id":"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {"activity_id":613840,"team_id":2,"email":"[EMAIL]"} {"correlation_id":"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {"activity_id":613840,"participants_processed":2,"exact_matches":1,"domain_matches":0,"best_match_found":true} {"correlation_id":"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":613840} {"correlation_id":"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":613840,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {"activity":613840,"remote_search":true,"lead_id":null,"contact_id":4487,"account_id":244,"opportunity_id":299,"stage_id":36} {"correlation_id":"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [MatchActivityCrmData] Starting CRM data matching {"activity":613833,"remote_search":true,"set_configuration":2,"old_state":{"lead_id":null,"contact_id":4487,"account_id":244,"opportunity_id":299,"stage_id":36}} {"correlation_id":"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":613833} {"correlation_id":"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":613833,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [MatchActivityCrmData] Participants old state {"activity":613833,"participants":[{"id":1001750,"user_id":null,"contact_id":4487,"lead_id":null},{"id":1001751,"user_id":261,"contact_id":null,"lead_id":null}]} {"correlation_id":"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {"worker":"","peak_memory":"99.73 MB","elapsed_seconds":1.0,"update_target":"activities","should_iterate_again":false} {"correlation_id":"8c24420c-db53-4450-9cd8-db5d2426bd57","trace_id":"5406d133-f6cd-4f5a-b463-9146e1dfb021"}
[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {"activity_id":613833,"team_id":2,"email":"[EMAIL]"} {"correlation_id":"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {"activity_id":613833,"participants_processed":2,"exact_matches":1,"domain_matches":0,"best_match_found":true} {"correlation_id":"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":613833} {"correlation_id":"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":613833,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {"activity":613833,"remote_search":true,"lead_id":null,"contact_id":4487,"account_id":244,"opportunity_id":299,"stage_id":36} {"correlation_id":"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [MatchActivityCrmData] Starting CRM data matching {"activity":613827,"remote_search":true,"set_configuration":2,"old_state":{"lead_id":null,"contact_id":4487,"account_id":244,"opportunity_id":299,"stage_id":36}} {"correlation_id":"d1d42ab0-5c87-42e8-a91f-a56b538619ce","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":613827} {"correlation_id":"d1d42ab0-5c87-42e8-a91f-a56b538619ce","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":613827,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"d1d42ab0-5c87-42e8-a91f-a56b538619ce","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [MatchActivityCrmData] Participants old state {"activity":613827,"participants":[{"id":1001734,"user_id":null,"contact_id":4487,"lead_id":null},{"id":1001735,"user_id":261,"contact_id":null,"lead_id":null}]} {"correlation_id":"d1d42ab0-5c87-42e8-a91f-a56b538619ce","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"d1d42ab0-5c87-42e8-a91f-a56b538619ce","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"d1d42ab0-5c87-42e8-a91f-a56b538619ce","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"d1d42ab0-5c87-42e8-a91f-a56b538619ce","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"d1d42ab0-5c87-42e8-a91f-a56b538619ce","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"d1d42ab0-5c87-42e8-a91f-a56b538619ce","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {"activity_id":613827,"team_id":2,"email":"[EMAIL]"} {"correlation_id":"d1d42ab0-5c87-42e8-a91f-a56b538619ce","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {"activity_id":613827,"participants_processed":2,"exact_matches":1,"domain_matches":0,"best_match_found":true} {"correlation_id":"d1d42ab0-5c87-42e8-a91f-a56b538619ce","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":613827} {"correlation_id":"d1d42ab0-5c87-42e8-a91f-a56b538619ce","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":613827,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"d1d42ab0-5c87-42e8-a91f-a56b538619ce","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {"activity":613827,"remote_search":true,"lead_id":null,"contact_id":4487,"account_id":244,"opportunity_id":299,"stage_id":36} {"correlation_id":"d1d42ab0-5c87-42e8-a91f-a56b538619ce","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [MatchActivityCrmData] Starting CRM data matching {"activity":613826,"remote_search":true,"set_configuration":2,"old_state":{"lead_id":null,"contact_id":4487,"account_id":244,"opportunity_id":299,"stage_id":36}} {"correlation_id":"861e79c7-b5d3-4476-b429-0f1b4cf196a4","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":613826} {"correlation_id":"861e79c7-b5d3-4476-b429-0f1b4cf196a4","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":613826,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"861e79c7-b5d3-4476-b429-0f1b4cf196a4","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [MatchActivityCrmData] Participants old state {"activity":613826,"participants":[{"id":1001732,"user_id":null,"contact_id":4487,"lead_id":null},{"id":1001733,"user_id":261,"contact_id":null,"lead_id":null}]} {"correlation_id":"861e79c7-b5d3-4476-b429-0f1b4cf196a4","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"861e79c7-b5d3-4476-b429-0f1b4cf196a4","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"861e79c7-b5d3-4476-b429-0f1b4cf196a4","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"861e79c7-b5d3-4476-b429-0f1b4cf196a4","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"861e79c7-b5d3-4476-b429-0f1b4cf196a4","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"861e79c7-b5d3-4476-b429-0f1b4cf196a4","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {"activity_id":613826,"team_id":2,"email":"[EMAIL]"} {"correlation_id":"861e79c7-b5d3-4476-b429-0f1b4cf196a4","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {"activity_id":613826,"participants_processed":2,"exact_matches":1,"domain_matches":0,"best_match_found":true} {"correlation_id":"861e79c7-b5d3-4476-b429-0f1b4cf196a4","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":613826} {"correlation_id":"861e79c7-b5d3-4476-b429-0f1b4cf196a4","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":613826,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"861e79c7-b5d3-4476-b429-0f1b4cf196a4","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {"activity":613826,"remote_search":true,"lead_id":null,"contact_id":4487,"account_id":244,"opportunity_id":299,"stage_id":36} {"correlation_id":"861e79c7-b5d3-4476-b429-0f1b4cf196a4","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [MatchActivityCrmData] Starting CRM data matching {"activity":613820,"remote_search":true,"set_configuration":2,"old_state":{"lead_id":null,"contact_id":4487,"account_id":244,"opportunity_id":299,"stage_id":36}} {"correlation_id":"97a99ff2-5956-4d77-837b-790c01b09967","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":613820} {"correlation_id":"97a99ff2-5956-4d77-837b-790c01b09967","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":613820,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"97a99ff2-5956-4d77-837b-790c01b09967","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] loc...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JY-20725-handle-HS-search-rate-limit, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.09541223,"height":0.025538707},"on_screen":true,"help_text":"Git Branch: JY-20725-handle-HS-search-rate-limit","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.8277925,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"MatchActivityCrmDataTest","depth":6,"bounds":{"left":0.8430851,"top":0.019952115,"width":0.07247341,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'MatchActivityCrmDataTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'MatchActivityCrmDataTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"bounds":{"left":0.9381649,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"bounds":{"left":0.96609044,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"bounds":{"left":0.9773936,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"bounds":{"left":0.9886968,"top":0.019952115,"width":0.011303186,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2","depth":4,"bounds":{"left":0.3799867,"top":0.22426178,"width":0.007978723,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"19","depth":4,"bounds":{"left":0.3899601,"top":0.22426178,"width":0.009640957,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"8","depth":4,"bounds":{"left":0.40159574,"top":0.22426178,"width":0.007978723,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.4112367,"top":0.22266561,"width":0.00731383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.41855052,"top":0.22266561,"width":0.006981383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Tests\\Unit\\Jobs\\Crm;\n\nuse Illuminate\\Database\\Connection;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Jiminny\\Exceptions\\InvalidArgumentException;\nuse Jiminny\\Jobs\\Crm\\MatchActivityCrmData;\nuse Jiminny\\Models\\Account;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\Contact;\nuse Jiminny\\Models\\Crm\\Configuration;\nuse Jiminny\\Models\\Lead;\nuse Jiminny\\Models\\Opportunity;\nuse Jiminny\\Models\\Stage;\nuse Jiminny\\Models\\Team;\nuse Jiminny\\Models\\User;\nuse Jiminny\\Repositories\\ActivityRepository;\nuse Jiminny\\Services\\Crm\\CrmActivityService;\nuse PHPUnit\\Framework\\MockObject\\Exception;\nuse PHPUnit\\Framework\\MockObject\\MockObject;\nuse Tests\\TestCase;\n\nclass MatchActivityCrmDataTest extends TestCase\n{\n private ActivityRepository|MockObject $activityRepository;\n private CrmActivityService|MockObject $crmActivityService;\n private Connection|MockObject $connection;\n\n protected function setUp(): void\n {\n parent::setUp();\n\n $this->activityRepository = $this->createMock(ActivityRepository::class);\n $this->crmActivityService = $this->createMock(CrmActivityService::class);\n $this->connection = $this->createMock(Connection::class);\n }\n\n /**\n * @throws \\Exception|Exception\n */\n public function testHandle(): void\n {\n $fromConfiguration = $this->createMock(Configuration::class);\n $fromConfiguration->method('getId')->willReturn(5);\n\n $team = $this->createMock(Team::class);\n\n $user = $this->createMock(User::class);\n $user->method('getTeam')->willReturn($team);\n\n $activityConfiguration = $this->createMock(Configuration::class);\n $activityConfiguration->method('getId')->willReturn(10);\n\n $participants = $this->createMock(HasMany::class);\n\n $activity = $this->createMock(Activity::class);\n $activity->method('getUuid')->willReturn('test');\n $activity->method('getProvider')->willReturn('provider');\n $activity->method('getUser')->willReturn($user);\n $activity->method('getCrm')->willReturn($activityConfiguration);\n $activity->method('participants')->willReturn($participants);\n $activity->expects($this->exactly(2))->method('update');\n\n $this->activityRepository->expects(($this->once()))\n ->method('findById')\n ->with(1)\n ->willReturn($activity);\n\n $this->activityRepository->expects($this->once())\n ->method('getActivityParticipants')\n ->with($activity)\n ->willReturn(collect([]));\n\n $this->crmActivityService->expects($this->once())\n ->method('updateCrmData')\n ->with($activity, false);\n\n $this->connection->expects($this->once())\n ->method('transaction')\n ->willReturnCallback(function ($callback) {\n return $callback();\n });\n\n $job = new MatchActivityCrmData(\n activityId: 1,\n fromConfiguration: $fromConfiguration,\n );\n $job->handle(\n activityRepository: $this->activityRepository,\n crmActivityService: $this->crmActivityService,\n connection: $this->connection,\n );\n }\n\n /**\n * @throws \\Exception|Exception\n */\n public function testHandleNoActivity(): void\n {\n $this->activityRepository->expects(($this->once()))\n ->method('findById')\n ->with(1)\n ->willReturn(null);\n\n $job = new MatchActivityCrmData(\n activityId: 1,\n fromConfiguration: null,\n );\n\n $this->expectException(InvalidArgumentException::class);\n $this->expectExceptionMessage('[MatchActivityCrmData] Cannot find activity.');\n\n $job->handle(\n activityRepository: $this->activityRepository,\n crmActivityService: $this->crmActivityService,\n connection: $this->connection,\n );\n }\n\n public function testSkipsCrmConfigurationSwitchWhenAlreadyMatches(): void\n {\n $fromConfiguration = $this->createMock(Configuration::class);\n $fromConfiguration->method('getId')->willReturn(5);\n\n $activityConfiguration = $this->createMock(Configuration::class);\n $activityConfiguration->method('getId')->willReturn(5);\n\n $participants = $this->createMock(HasMany::class);\n\n $activity = $this->createMock(Activity::class);\n $activity->method('getCrm')->willReturn($activityConfiguration);\n $activity->method('participants')->willReturn($participants);\n $activity->expects($this->once())->method('update');\n\n $this->activityRepository->expects($this->once())\n ->method('findById')\n ->with(123)\n ->willReturn($activity);\n\n $this->activityRepository->expects($this->once())\n ->method('getActivityParticipants')\n ->with($activity)\n ->willReturn(collect([]));\n\n $this->crmActivityService->expects($this->once())\n ->method('updateCrmData')\n ->with($activity, false);\n\n $this->connection->expects($this->once())\n ->method('transaction')\n ->willReturnCallback(function ($callback) {\n return $callback();\n });\n\n $job = new MatchActivityCrmData(\n activityId: 123,\n fromConfiguration: $fromConfiguration,\n );\n\n $job->handle(\n activityRepository: $this->activityRepository,\n crmActivityService: $this->crmActivityService,\n connection: $this->connection,\n );\n }\n\n public function testJobConfiguration(): void\n {\n $job = new MatchActivityCrmData(\n activityId: 1,\n fromConfiguration: null,\n remoteSearch: false,\n );\n\n $this->assertSame(3, $job->tries);\n $this->assertSame(300, $job->timeout());\n $this->assertSame(360, $job->uniqueFor());\n $this->assertSame([30, 90, 180], $job->backoff());\n }\n\n public function testUniqueId(): void\n {\n $configuration = $this->createMock(Configuration::class);\n $configuration->method('getId')->willReturn(5);\n\n $job1 = new MatchActivityCrmData(\n activityId: 123,\n fromConfiguration: null,\n remoteSearch: false,\n );\n $this->assertSame('123:0:local', $job1->uniqueId());\n\n $job2 = new MatchActivityCrmData(\n activityId: 123,\n fromConfiguration: null,\n remoteSearch: true,\n );\n $this->assertSame('123:0:remote', $job2->uniqueId());\n\n $job3 = new MatchActivityCrmData(\n activityId: 123,\n fromConfiguration: $configuration,\n remoteSearch: false,\n );\n $this->assertSame('123:5:local', $job3->uniqueId());\n }\n\n public function testTransactionRollbackOnException(): void\n {\n $activity = $this->createMock(Activity::class);\n\n $this->activityRepository->expects($this->once())\n ->method('findById')\n ->with(1)\n ->willReturn($activity);\n\n $exception = new \\RuntimeException('Test exception');\n\n $this->connection->expects($this->once())\n ->method('transaction')\n ->willReturnCallback(function ($callback) use ($exception) {\n throw $exception;\n });\n\n $job = new MatchActivityCrmData(\n activityId: 1,\n fromConfiguration: null,\n );\n\n $this->expectException(\\RuntimeException::class);\n $this->expectExceptionMessage('Test exception');\n\n $job->handle(\n activityRepository: $this->activityRepository,\n crmActivityService: $this->crmActivityService,\n connection: $this->connection,\n );\n }\n\n public function testFailedMethodLogsError(): void\n {\n $exception = new \\RuntimeException('Test failure');\n\n $job = new MatchActivityCrmData(\n activityId: 123,\n fromConfiguration: null,\n remoteSearch: true,\n );\n\n $job->failed($exception);\n\n $this->assertTrue(true);\n }\n\n public function testLogsSuccessWhenMatchFound(): void\n {\n $participants = $this->createMock(HasMany::class);\n\n $lead = $this->createMock(Lead::class);\n $lead->method('getId')->willReturn(456);\n\n $activity = $this->createMock(Activity::class);\n $activity->method('participants')->willReturn($participants);\n $activity->method('getLead')->willReturn($lead);\n $activity->method('getContact')->willReturn(null);\n $activity->method('getAccount')->willReturn(null);\n $activity->method('getOpportunity')->willReturn(null);\n\n $this->activityRepository->expects($this->once())\n ->method('findById')\n ->with(123)\n ->willReturn($activity);\n\n $this->activityRepository->expects($this->once())\n ->method('getActivityParticipants')\n ->with($activity)\n ->willReturn(collect([]));\n\n $this->crmActivityService->expects($this->once())\n ->method('updateCrmData')\n ->with($activity, false);\n\n $this->connection->expects($this->once())\n ->method('transaction')\n ->willReturnCallback(function ($callback) {\n return $callback();\n });\n\n $job = new MatchActivityCrmData(\n activityId: 123,\n fromConfiguration: null,\n remoteSearch: false,\n );\n\n $job->handle(\n activityRepository: $this->activityRepository,\n crmActivityService: $this->crmActivityService,\n connection: $this->connection,\n );\n }\n\n public function testLogsNoMatchWhenNoMatchFound(): void\n {\n $participants = $this->createMock(HasMany::class);\n\n $activity = $this->createMock(Activity::class);\n $activity->method('participants')->willReturn($participants);\n $activity->method('getLead')->willReturn(null);\n $activity->method('getContact')->willReturn(null);\n $activity->method('getAccount')->willReturn(null);\n $activity->method('getOpportunity')->willReturn(null);\n\n $this->activityRepository->expects($this->once())\n ->method('findById')\n ->with(123)\n ->willReturn($activity);\n\n $this->activityRepository->expects($this->once())\n ->method('getActivityParticipants')\n ->with($activity)\n ->willReturn(collect([]));\n\n $this->crmActivityService->expects($this->once())\n ->method('updateCrmData')\n ->with($activity, true);\n\n $this->connection->expects($this->once())\n ->method('transaction')\n ->willReturnCallback(function ($callback) {\n return $callback();\n });\n\n $job = new MatchActivityCrmData(\n activityId: 123,\n fromConfiguration: null,\n remoteSearch: true,\n );\n\n $job->handle(\n activityRepository: $this->activityRepository,\n crmActivityService: $this->crmActivityService,\n connection: $this->connection,\n );\n }\n\n public function testLogsOldStateBeforeClearing(): void\n {\n $participant1 = new \\stdClass();\n $participant1->id = 10;\n $participant1->user_id = 100;\n $participant1->contact_id = 200;\n $participant1->lead_id = null;\n\n $participant2 = new \\stdClass();\n $participant2->id = 20;\n $participant2->user_id = null;\n $participant2->contact_id = null;\n $participant2->lead_id = 300;\n\n $participantsCollection = collect([$participant1, $participant2]);\n\n $participantsRelation = $this->createMock(HasMany::class);\n\n $lead = $this->createMock(Lead::class);\n $lead->method('getId')->willReturn(111);\n\n $contact = $this->createMock(Contact::class);\n $contact->method('getId')->willReturn(222);\n\n $account = $this->createMock(Account::class);\n $account->method('getId')->willReturn(333);\n\n $opportunity = $this->createMock(Opportunity::class);\n $opportunity->method('getId')->willReturn(444);\n\n $stage = $this->createMock(Stage::class);\n $stage->method('getId')->willReturn(555);\n\n $activity = $this->createMock(Activity::class);\n $activity->method('participants')->willReturn($participantsRelation);\n $activity->method('getLead')->willReturn($lead);\n $activity->method('getContact')->willReturn($contact);\n $activity->method('getAccount')->willReturn($account);\n $activity->method('getOpportunity')->willReturn($opportunity);\n $activity->method('getStage')->willReturn($stage);\n\n $this->activityRepository->expects($this->once())\n ->method('findById')\n ->with(999)\n ->willReturn($activity);\n\n $this->activityRepository->expects($this->once())\n ->method('getActivityParticipants')\n ->with($activity)\n ->willReturn($participantsCollection);\n\n $this->crmActivityService->expects($this->once())\n ->method('updateCrmData')\n ->with($activity, false);\n\n $this->connection->expects($this->once())\n ->method('transaction')\n ->willReturnCallback(function ($callback) {\n return $callback();\n });\n\n $job = new MatchActivityCrmData(\n activityId: 999,\n fromConfiguration: null,\n remoteSearch: false,\n );\n\n $job->handle(\n activityRepository: $this->activityRepository,\n crmActivityService: $this->crmActivityService,\n connection: $this->connection,\n );\n }\n}","depth":4,"bounds":{"left":0.122340426,"top":0.22106944,"width":0.30319148,"height":0.77893054},"on_screen":true,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Tests\\Unit\\Jobs\\Crm;\n\nuse Illuminate\\Database\\Connection;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Jiminny\\Exceptions\\InvalidArgumentException;\nuse Jiminny\\Jobs\\Crm\\MatchActivityCrmData;\nuse Jiminny\\Models\\Account;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\Contact;\nuse Jiminny\\Models\\Crm\\Configuration;\nuse Jiminny\\Models\\Lead;\nuse Jiminny\\Models\\Opportunity;\nuse Jiminny\\Models\\Stage;\nuse Jiminny\\Models\\Team;\nuse Jiminny\\Models\\User;\nuse Jiminny\\Repositories\\ActivityRepository;\nuse Jiminny\\Services\\Crm\\CrmActivityService;\nuse PHPUnit\\Framework\\MockObject\\Exception;\nuse PHPUnit\\Framework\\MockObject\\MockObject;\nuse Tests\\TestCase;\n\nclass MatchActivityCrmDataTest extends TestCase\n{\n private ActivityRepository|MockObject $activityRepository;\n private CrmActivityService|MockObject $crmActivityService;\n private Connection|MockObject $connection;\n\n protected function setUp(): void\n {\n parent::setUp();\n\n $this->activityRepository = $this->createMock(ActivityRepository::class);\n $this->crmActivityService = $this->createMock(CrmActivityService::class);\n $this->connection = $this->createMock(Connection::class);\n }\n\n /**\n * @throws \\Exception|Exception\n */\n public function testHandle(): void\n {\n $fromConfiguration = $this->createMock(Configuration::class);\n $fromConfiguration->method('getId')->willReturn(5);\n\n $team = $this->createMock(Team::class);\n\n $user = $this->createMock(User::class);\n $user->method('getTeam')->willReturn($team);\n\n $activityConfiguration = $this->createMock(Configuration::class);\n $activityConfiguration->method('getId')->willReturn(10);\n\n $participants = $this->createMock(HasMany::class);\n\n $activity = $this->createMock(Activity::class);\n $activity->method('getUuid')->willReturn('test');\n $activity->method('getProvider')->willReturn('provider');\n $activity->method('getUser')->willReturn($user);\n $activity->method('getCrm')->willReturn($activityConfiguration);\n $activity->method('participants')->willReturn($participants);\n $activity->expects($this->exactly(2))->method('update');\n\n $this->activityRepository->expects(($this->once()))\n ->method('findById')\n ->with(1)\n ->willReturn($activity);\n\n $this->activityRepository->expects($this->once())\n ->method('getActivityParticipants')\n ->with($activity)\n ->willReturn(collect([]));\n\n $this->crmActivityService->expects($this->once())\n ->method('updateCrmData')\n ->with($activity, false);\n\n $this->connection->expects($this->once())\n ->method('transaction')\n ->willReturnCallback(function ($callback) {\n return $callback();\n });\n\n $job = new MatchActivityCrmData(\n activityId: 1,\n fromConfiguration: $fromConfiguration,\n );\n $job->handle(\n activityRepository: $this->activityRepository,\n crmActivityService: $this->crmActivityService,\n connection: $this->connection,\n );\n }\n\n /**\n * @throws \\Exception|Exception\n */\n public function testHandleNoActivity(): void\n {\n $this->activityRepository->expects(($this->once()))\n ->method('findById')\n ->with(1)\n ->willReturn(null);\n\n $job = new MatchActivityCrmData(\n activityId: 1,\n fromConfiguration: null,\n );\n\n $this->expectException(InvalidArgumentException::class);\n $this->expectExceptionMessage('[MatchActivityCrmData] Cannot find activity.');\n\n $job->handle(\n activityRepository: $this->activityRepository,\n crmActivityService: $this->crmActivityService,\n connection: $this->connection,\n );\n }\n\n public function testSkipsCrmConfigurationSwitchWhenAlreadyMatches(): void\n {\n $fromConfiguration = $this->createMock(Configuration::class);\n $fromConfiguration->method('getId')->willReturn(5);\n\n $activityConfiguration = $this->createMock(Configuration::class);\n $activityConfiguration->method('getId')->willReturn(5);\n\n $participants = $this->createMock(HasMany::class);\n\n $activity = $this->createMock(Activity::class);\n $activity->method('getCrm')->willReturn($activityConfiguration);\n $activity->method('participants')->willReturn($participants);\n $activity->expects($this->once())->method('update');\n\n $this->activityRepository->expects($this->once())\n ->method('findById')\n ->with(123)\n ->willReturn($activity);\n\n $this->activityRepository->expects($this->once())\n ->method('getActivityParticipants')\n ->with($activity)\n ->willReturn(collect([]));\n\n $this->crmActivityService->expects($this->once())\n ->method('updateCrmData')\n ->with($activity, false);\n\n $this->connection->expects($this->once())\n ->method('transaction')\n ->willReturnCallback(function ($callback) {\n return $callback();\n });\n\n $job = new MatchActivityCrmData(\n activityId: 123,\n fromConfiguration: $fromConfiguration,\n );\n\n $job->handle(\n activityRepository: $this->activityRepository,\n crmActivityService: $this->crmActivityService,\n connection: $this->connection,\n );\n }\n\n public function testJobConfiguration(): void\n {\n $job = new MatchActivityCrmData(\n activityId: 1,\n fromConfiguration: null,\n remoteSearch: false,\n );\n\n $this->assertSame(3, $job->tries);\n $this->assertSame(300, $job->timeout());\n $this->assertSame(360, $job->uniqueFor());\n $this->assertSame([30, 90, 180], $job->backoff());\n }\n\n public function testUniqueId(): void\n {\n $configuration = $this->createMock(Configuration::class);\n $configuration->method('getId')->willReturn(5);\n\n $job1 = new MatchActivityCrmData(\n activityId: 123,\n fromConfiguration: null,\n remoteSearch: false,\n );\n $this->assertSame('123:0:local', $job1->uniqueId());\n\n $job2 = new MatchActivityCrmData(\n activityId: 123,\n fromConfiguration: null,\n remoteSearch: true,\n );\n $this->assertSame('123:0:remote', $job2->uniqueId());\n\n $job3 = new MatchActivityCrmData(\n activityId: 123,\n fromConfiguration: $configuration,\n remoteSearch: false,\n );\n $this->assertSame('123:5:local', $job3->uniqueId());\n }\n\n public function testTransactionRollbackOnException(): void\n {\n $activity = $this->createMock(Activity::class);\n\n $this->activityRepository->expects($this->once())\n ->method('findById')\n ->with(1)\n ->willReturn($activity);\n\n $exception = new \\RuntimeException('Test exception');\n\n $this->connection->expects($this->once())\n ->method('transaction')\n ->willReturnCallback(function ($callback) use ($exception) {\n throw $exception;\n });\n\n $job = new MatchActivityCrmData(\n activityId: 1,\n fromConfiguration: null,\n );\n\n $this->expectException(\\RuntimeException::class);\n $this->expectExceptionMessage('Test exception');\n\n $job->handle(\n activityRepository: $this->activityRepository,\n crmActivityService: $this->crmActivityService,\n connection: $this->connection,\n );\n }\n\n public function testFailedMethodLogsError(): void\n {\n $exception = new \\RuntimeException('Test failure');\n\n $job = new MatchActivityCrmData(\n activityId: 123,\n fromConfiguration: null,\n remoteSearch: true,\n );\n\n $job->failed($exception);\n\n $this->assertTrue(true);\n }\n\n public function testLogsSuccessWhenMatchFound(): void\n {\n $participants = $this->createMock(HasMany::class);\n\n $lead = $this->createMock(Lead::class);\n $lead->method('getId')->willReturn(456);\n\n $activity = $this->createMock(Activity::class);\n $activity->method('participants')->willReturn($participants);\n $activity->method('getLead')->willReturn($lead);\n $activity->method('getContact')->willReturn(null);\n $activity->method('getAccount')->willReturn(null);\n $activity->method('getOpportunity')->willReturn(null);\n\n $this->activityRepository->expects($this->once())\n ->method('findById')\n ->with(123)\n ->willReturn($activity);\n\n $this->activityRepository->expects($this->once())\n ->method('getActivityParticipants')\n ->with($activity)\n ->willReturn(collect([]));\n\n $this->crmActivityService->expects($this->once())\n ->method('updateCrmData')\n ->with($activity, false);\n\n $this->connection->expects($this->once())\n ->method('transaction')\n ->willReturnCallback(function ($callback) {\n return $callback();\n });\n\n $job = new MatchActivityCrmData(\n activityId: 123,\n fromConfiguration: null,\n remoteSearch: false,\n );\n\n $job->handle(\n activityRepository: $this->activityRepository,\n crmActivityService: $this->crmActivityService,\n connection: $this->connection,\n );\n }\n\n public function testLogsNoMatchWhenNoMatchFound(): void\n {\n $participants = $this->createMock(HasMany::class);\n\n $activity = $this->createMock(Activity::class);\n $activity->method('participants')->willReturn($participants);\n $activity->method('getLead')->willReturn(null);\n $activity->method('getContact')->willReturn(null);\n $activity->method('getAccount')->willReturn(null);\n $activity->method('getOpportunity')->willReturn(null);\n\n $this->activityRepository->expects($this->once())\n ->method('findById')\n ->with(123)\n ->willReturn($activity);\n\n $this->activityRepository->expects($this->once())\n ->method('getActivityParticipants')\n ->with($activity)\n ->willReturn(collect([]));\n\n $this->crmActivityService->expects($this->once())\n ->method('updateCrmData')\n ->with($activity, true);\n\n $this->connection->expects($this->once())\n ->method('transaction')\n ->willReturnCallback(function ($callback) {\n return $callback();\n });\n\n $job = new MatchActivityCrmData(\n activityId: 123,\n fromConfiguration: null,\n remoteSearch: true,\n );\n\n $job->handle(\n activityRepository: $this->activityRepository,\n crmActivityService: $this->crmActivityService,\n connection: $this->connection,\n );\n }\n\n public function testLogsOldStateBeforeClearing(): void\n {\n $participant1 = new \\stdClass();\n $participant1->id = 10;\n $participant1->user_id = 100;\n $participant1->contact_id = 200;\n $participant1->lead_id = null;\n\n $participant2 = new \\stdClass();\n $participant2->id = 20;\n $participant2->user_id = null;\n $participant2->contact_id = null;\n $participant2->lead_id = 300;\n\n $participantsCollection = collect([$participant1, $participant2]);\n\n $participantsRelation = $this->createMock(HasMany::class);\n\n $lead = $this->createMock(Lead::class);\n $lead->method('getId')->willReturn(111);\n\n $contact = $this->createMock(Contact::class);\n $contact->method('getId')->willReturn(222);\n\n $account = $this->createMock(Account::class);\n $account->method('getId')->willReturn(333);\n\n $opportunity = $this->createMock(Opportunity::class);\n $opportunity->method('getId')->willReturn(444);\n\n $stage = $this->createMock(Stage::class);\n $stage->method('getId')->willReturn(555);\n\n $activity = $this->createMock(Activity::class);\n $activity->method('participants')->willReturn($participantsRelation);\n $activity->method('getLead')->willReturn($lead);\n $activity->method('getContact')->willReturn($contact);\n $activity->method('getAccount')->willReturn($account);\n $activity->method('getOpportunity')->willReturn($opportunity);\n $activity->method('getStage')->willReturn($stage);\n\n $this->activityRepository->expects($this->once())\n ->method('findById')\n ->with(999)\n ->willReturn($activity);\n\n $this->activityRepository->expects($this->once())\n ->method('getActivityParticipants')\n ->with($activity)\n ->willReturn($participantsCollection);\n\n $this->crmActivityService->expects($this->once())\n ->method('updateCrmData')\n ->with($activity, false);\n\n $this->connection->expects($this->once())\n ->method('transaction')\n ->willReturnCallback(function ($callback) {\n return $callback();\n });\n\n $job = new MatchActivityCrmData(\n activityId: 999,\n fromConfiguration: null,\n remoteSearch: false,\n );\n\n $job->handle(\n activityRepository: $this->activityRepository,\n crmActivityService: $this->crmActivityService,\n connection: $this->connection,\n );\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Show Replace Field","depth":4,"bounds":{"left":0.42985374,"top":0.105347164,"width":0.008643617,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Search History","depth":3,"bounds":{"left":0.4424867,"top":0.10454908,"width":0.00731383,"height":0.017557861},"on_screen":true,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"429","depth":4,"bounds":{"left":0.45345744,"top":0.10454908,"width":0.043882977,"height":0.015961692},"on_screen":true,"value":"429","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"New Line","depth":3,"bounds":{"left":0.5063165,"top":0.10454908,"width":0.00731383,"height":0.017557861},"on_screen":true,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Match Case","depth":3,"bounds":{"left":0.5162899,"top":0.10454908,"width":0.00731383,"height":0.017557861},"on_screen":true,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Words","depth":3,"bounds":{"left":0.5249335,"top":0.10454908,"width":0.00731383,"height":0.017557861},"on_screen":true,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Regex","depth":3,"bounds":{"left":0.53357714,"top":0.10454908,"width":0.00731383,"height":0.017557861},"on_screen":true,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Replace History","depth":3,"bounds":{"left":0.27027926,"top":1.0,"width":0.00731383,"height":0.0},"on_screen":false,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextField","text":"Replace","depth":4,"on_screen":false,"role_description":"text field","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"New Line","depth":3,"bounds":{"left":0.27027926,"top":1.0,"width":0.00731383,"height":0.0},"on_screen":false,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXCheckBox","text":"Preserve case","depth":3,"bounds":{"left":0.27027926,"top":1.0,"width":0.00731383,"height":0.0},"on_screen":false,"role_description":"checkbox","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"23/232","depth":4,"bounds":{"left":0.5472075,"top":0.103751,"width":0.025598405,"height":0.017557861},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Occurrence","depth":4,"bounds":{"left":0.5728058,"top":0.10295291,"width":0.008643617,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Occurrence","depth":4,"bounds":{"left":0.58144945,"top":0.10295291,"width":0.008643617,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Filter Search Results","depth":4,"bounds":{"left":0.5900931,"top":0.10295291,"width":0.008643617,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Open in Window, Multiple Cursors","depth":4,"bounds":{"left":0.5987367,"top":0.10295291,"width":0.008643617,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Click to highlight","depth":4,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close","depth":4,"bounds":{"left":0.7250665,"top":0.10295291,"width":0.008643617,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"[2026-05-11 11:17:21] local.NOTICE: Monitoring start {\"correlation_id\":\"885fde59-3852-4120-a620-af3da7ecce17\",\"trace_id\":\"4cc10f53-5d39-418d-8e98-fe53d9bbff5f\"}\n[2026-05-11 11:17:21] local.NOTICE: Monitoring end {\"correlation_id\":\"885fde59-3852-4120-a620-af3da7ecce17\",\"trace_id\":\"4cc10f53-5d39-418d-8e98-fe53d9bbff5f\"}\n[2026-05-11 11:17:34] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90\",\"trace_id\":\"fb6d8028-db7d-4ef2-b175-740f0a7b8b39\"}\n[2026-05-11 11:17:35] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90\",\"trace_id\":\"fb6d8028-db7d-4ef2-b175-740f0a7b8b39\"}\n[2026-05-11 11:17:37] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":615092,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":615092} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":615092,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":615092,\"participants\":[{\"id\":1004102,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1004103,\"user_id\":89,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"nikolay.nikolov@jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/nikolay.nikolov%40jiminny.com?properties=email%2Cfirstname%2Clastname%2Ccountry%2Cphone%2Cmobilephone%2Cjobtitle%2Chubspot_owner_id%2Cassociatedcompanyid%2Cphoto&archived=0&idProperty=email` resulted in a `404 Not Found` response\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"reason\":\"Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response:\n{\\\"status\\\":\\\"error\\\",\\\"message\\\":\\\"You have reached your secondly limit.\\\",\\\"errorType\\\":\\\"RATE_LIMIT\\\",\\\"correlationId\\\":\\\"019e16c1-c (truncated...)\n\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":4} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":614436,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614436} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614436,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":614436,\"participants\":[{\"id\":1002751,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1002752,\"user_id\":89,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":3} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":614382,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614382} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614382,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":614382,\"participants\":[{\"id\":1002632,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1002633,\"user_id\":89,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":1} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":614381,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614381} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614381,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":614381,\"participants\":[{\"id\":1002630,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1002631,\"user_id\":89,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"reason\":\"Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response:\n{\\\"status\\\":\\\"error\\\",\\\"message\\\":\\\"You have reached your secondly limit.\\\",\\\"errorType\\\":\\\"RATE_LIMIT\\\",\\\"correlationId\\\":\\\"019e16c1-c (truncated...)\n\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":2} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":614378,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":6167,\"account_id\":null,\"opportunity_id\":null,\"stage_id\":null}} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614378} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614378,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":614378,\"participants\":[{\"id\":1002623,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1002624,\"user_id\":null,\"contact_id\":6167,\"lead_id\":null},{\"id\":1002625,\"user_id\":89,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":3} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613840,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613840} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613840,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613840,\"participants\":[{\"id\":1001764,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001765,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":261} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":299} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613840,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613840,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613840} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613840,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613840,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613833,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613833} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613833,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613833,\"participants\":[{\"id\":1001750,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001751,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":1.0,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613833,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613833,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613833} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613833,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613833,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613827,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613827} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613827,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613827,\"participants\":[{\"id\":1001734,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001735,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613827,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613827,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613827} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613827,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613827,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613826,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613826} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613826,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613826,\"participants\":[{\"id\":1001732,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001733,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613826,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613826,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613826} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613826,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613826,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613820,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613820} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613820,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613820,\"participants\":[{\"id\":1001721,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001722,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613820,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613820,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613820} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613820,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613820,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613818,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613818} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613818,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613818,\"participants\":[{\"id\":1001717,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001718,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613818,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613818,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613818} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613818,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613818,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613812,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613812} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613812,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613812,\"participants\":[{\"id\":1001705,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001706,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613812,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613812,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613812} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613812,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613812,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613807,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4484,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613807} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613807,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613807,\"participants\":[{\"id\":1001690,\"user_id\":253,\"contact_id\":null,\"lead_id\":null},{\"id\":1001691,\"user_id\":null,\"contact_id\":4484,\"lead_id\":null}]} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613807,\"team_id\":2,\"email\":\"preslava.ivanova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4484,\"owner_id\":253} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4484} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4484,\"opportunity_id\":276} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"tsvetomir.banovski@gmail.com\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613807,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613807} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613807,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613807,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4484,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613806,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34}} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613806} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613806,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613806,\"participants\":[{\"id\":1001688,\"user_id\":253,\"contact_id\":null,\"lead_id\":null},{\"id\":1001689,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613806,\"team_id\":2,\"email\":\"preslava.ivanova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":253} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613806,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613806} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613806,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613806,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613805,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34}} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613805} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613805,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613805,\"participants\":[{\"id\":1001686,\"user_id\":253,\"contact_id\":null,\"lead_id\":null},{\"id\":1001687,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613805,\"team_id\":2,\"email\":\"preslava.ivanova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613805,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613805} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613805,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613805,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613698,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613698} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613698,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613698,\"participants\":[{\"id\":1001667,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001668,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613698,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613698,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613698} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613698,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613698,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613697,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613697} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613697,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613697,\"participants\":[{\"id\":1001665,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001666,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613697,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613697,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613697} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613697,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613697,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613696,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613696} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613696,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613696,\"participants\":[{\"id\":1001663,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001664,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613696,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613696,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613696} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613696,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613696,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613695,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613695} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613695,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613695,\"participants\":[{\"id\":1001661,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001662,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613695,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613695,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613695} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613695,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613695,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613694,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613694} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613694,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613694,\"participants\":[{\"id\":1001659,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001660,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613694,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613694,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613694} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613694,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613694,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613157,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34}} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613157} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613157,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613157,\"participants\":[{\"id\":1000746,\"user_id\":253,\"contact_id\":null,\"lead_id\":null},{\"id\":1000747,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613157,\"team_id\":2,\"email\":\"preslava.ivanova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613157,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613157} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613157,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613157,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613156,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34}} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613156} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613156,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613156,\"participants\":[{\"id\":1000744,\"user_id\":253,\"contact_id\":null,\"lead_id\":null},{\"id\":1000745,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613156,\"team_id\":2,\"email\":\"preslava.ivanova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613156,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613156} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613156,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613156,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613155,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34}} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613155} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613155,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613155,\"participants\":[{\"id\":1000742,\"user_id\":253,\"contact_id\":null,\"lead_id\":null},{\"id\":1000743,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613155,\"team_id\":2,\"email\":\"preslava.ivanova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613155,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613155} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613155,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613155,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613130,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613130} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613130,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613130,\"participants\":[{\"id\":1000693,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1000694,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613130,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613130,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613130} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613130,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613130,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612924,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":165,\"stage_id\":89}} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612924} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612924,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612924,\"participants\":[{\"id\":1000290,\"user_id\":19,\"contact_id\":null,\"lead_id\":null},{\"id\":1000291,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612924,\"team_id\":2,\"email\":\"james.graham@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":69,\"contact_id\":97,\"owner_id\":19} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":69,\"contact_id\":97,\"opportunity_id\":165} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612924,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612924} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612924,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612924,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":165,\"stage_id\":89} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612923,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":165,\"stage_id\":89}} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612923} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612923,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612923,\"participants\":[{\"id\":1000288,\"user_id\":19,\"contact_id\":null,\"lead_id\":null},{\"id\":1000289,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612923,\"team_id\":2,\"email\":\"james.graham@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612923,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612923} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612923,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612923,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":165,\"stage_id\":89} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612922,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":165,\"stage_id\":89}} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612922} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612922,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612922,\"participants\":[{\"id\":1000286,\"user_id\":19,\"contact_id\":null,\"lead_id\":null},{\"id\":1000287,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612922,\"team_id\":2,\"email\":\"james.graham@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612922,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612922} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612922,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612922,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":165,\"stage_id\":89} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612847,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612847} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612847,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612847,\"participants\":[{\"id\":1000130,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1000131,\"user_id\":261,\"contact_id\":null,\"lead_id\":null},{\"id\":1000151,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"adelina.petrova@jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/adelina.petrova%40jiminny.com?properties=email%2Cfirstname%2Clastname%2Ccountry%2Cphone%2Cmobilephone%2Cjobtitle%2Chubspot_owner_id%2Cassociatedcompanyid%2Cphoto&archived=0&idProperty=email` resulted in a `404 Not Found` response\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"reason\":\"Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response:\n{\\\"status\\\":\\\"error\\\",\\\"message\\\":\\\"You have reached your secondly limit.\\\",\\\"errorType\\\":\\\"RATE_LIMIT\\\",\\\"correlationId\\\":\\\"019e16c1-d (truncated...)\n\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":5} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612822,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612822} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612822,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612822,\"participants\":[{\"id\":1000080,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1000081,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612822,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612822,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612822} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612822,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612822,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612819,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612819} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612819,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612819,\"participants\":[{\"id\":1000073,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1000074,\"user_id\":261,\"contact_id\":null,\"lead_id\":null},{\"id\":1000075,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612819,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:47] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"reason\":\"Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response:\n{\\\"status\\\":\\\"error\\\",\\\"message\\\":\\\"You have reached your secondly limit.\\\",\\\"errorType\\\":\\\"RATE_LIMIT\\\",\\\"correlationId\\\":\\\"019e16c1-e (truncated...)\n\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:47] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":4} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612673,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612673} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612673,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612673,\"participants\":[{\"id\":999993,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999994,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612673,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612673,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612673} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612673,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612673,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612642,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612642} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612642,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612642,\"participants\":[{\"id\":999935,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999936,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612642,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612642,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612642} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612642,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612642,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612598,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612598} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612598,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612598,\"participants\":[{\"id\":999857,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999858,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4491,\"owner_id\":206} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4491} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4491,\"opportunity_id\":276} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612598,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612598,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612598} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612598,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612598,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612597,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612597} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612597,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612597,\"participants\":[{\"id\":999855,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999856,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612597,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612597,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612597} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612597,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612597,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612596,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612596} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612596,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612596,\"participants\":[{\"id\":999853,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999854,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612596,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612596,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612596} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612596,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612596,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612595,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612595} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612595,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612595,\"participants\":[{\"id\":999851,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999852,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612595,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612595,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612595} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612595,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612595,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612594,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612594} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612594,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612594,\"participants\":[{\"id\":999849,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999850,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612594,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612594,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612594} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612594,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612594,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612593,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612593} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612593,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612593,\"participants\":[{\"id\":999847,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999848,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612593,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612593,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612593} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612593,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612593,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612592,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612592} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612592,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612592,\"participants\":[{\"id\":999845,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999846,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612592,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612592,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612592} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612592,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612592,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612591,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612591} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612591,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612591,\"participants\":[{\"id\":999843,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999844,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612591,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612591,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612591} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612591,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612591,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612590,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612590} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612590,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612590,\"participants\":[{\"id\":999841,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999842,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612590,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612590,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612590} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612590,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612590,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612589,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612589} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612589,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612589,\"participants\":[{\"id\":999839,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999840,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612589,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612589,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612589} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612589,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612589,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612588,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612588} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612588,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612588,\"participants\":[{\"id\":999837,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999838,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612588,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612588,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612588} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612588,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612588,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":16.99,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:02] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612587,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612587} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612587,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612587,\"participants\":[{\"id\":999835,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999836,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612587,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612587,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612587} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612587,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612587,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612586,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612586} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612586,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612586,\"participants\":[{\"id\":999833,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999834,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612586,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612586,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612586} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612586,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612586,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612585,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612585} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612585,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612585,\"participants\":[{\"id\":999831,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999832,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612585,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612585,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612585} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612585,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612585,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612584,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612584} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612584,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612584,\"participants\":[{\"id\":999829,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999830,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612584,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612584,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612584} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612584,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612584,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612583,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612583} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612583,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612583,\"participants\":[{\"id\":999827,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999828,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612583,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612583,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612583} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612583,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:08] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612583,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612582,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612582} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612582,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612582,\"participants\":[{\"id\":999825,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999826,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612582,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612582,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612582} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612582,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:10] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612582,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612581,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612581} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612581,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612581,\"participants\":[{\"id\":999823,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999824,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":4.14,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:11] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612581,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612581,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612581} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612581,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612581,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612565,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612565} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612565,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612565,\"participants\":[{\"id\":999789,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999790,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:15] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612565,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612565,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612565} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612565,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612565,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] local.INFO: [EmailSchedule] STARTING batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:16] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612563,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34}} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612563} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612563,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612563,\"participants\":[{\"id\":999784,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999785,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612563,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":206} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [EmailSchedule] FINISHED batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:18] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612563,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612563} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612563,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612563,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":3.06,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:19] local.INFO: [Jiminny\\Jobs\\Mailbox\\CreateBatches] processed 2 inboxes and created 0 batches {\"userId\":null,\"batchSize\":30,\"maxBatches\":1000} {\"correlation_id\":\"5a640073-717d-40da-ad67-be02e37c56a2\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:20] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612562,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612562} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612562,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612562,\"participants\":[{\"id\":999782,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":999783,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:21] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"447782589921@txt.staging.jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/447782589921%40txt.staging.jiminny.com?properties=email%2Cfirstname%2Clastname%2Ccountry%2Cphone%2Cmobilephone%2Cjobtitle%2Chubspot_owner_id%2Cassociatedcompanyid%2Cphoto&archived=0&idProperty=email` resulted in a `404 Not Found` response\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:21] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:21] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.24,\"average_seconds_per_request\":0.24} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"447782589921@txt.staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.32,\"average_seconds_per_request\":0.32} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612562,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612562,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612562} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612562,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612562,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612561,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612561} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612561,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612561,\"participants\":[{\"id\":999780,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999781,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612561,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"447700174614.447782589921.OeREojLVnk@txt.staging.jiminny.com\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"447700174614.447782589921.OeREojLVnk@txt.staging.jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/447700174614.447782589921.OeREojLVnk%40txt.staging.jiminny.com?properties=email%2Cfirstname%2Clastname%2Ccountry%2Cphone%2Cmobilephone%2Cjobtitle%2Chubspot_owner_id%2Cassociatedcompanyid%2Cphoto&archived=0&idProperty=email` resulted in a `404 Not Found` response\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"447700174614.447782589921.OeREojLVnk@txt.staging.jiminny.com\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"447700174614.447782589921.OeREojLVnk@txt.staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612561,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612561} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612561,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612561,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612560,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612560} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612560,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612560,\"participants\":[{\"id\":999778,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":999779,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"447782589921@txt.staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612560,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612560,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612560} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612560,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612560,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612559,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":1.89,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:26] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612559} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612559,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612559,\"participants\":[{\"id\":999776,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999777,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612559,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":69,\"contact_id\":97,\"owner_id\":206} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":69,\"contact_id\":97} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":69,\"contact_id\":97,\"opportunity_id\":5011} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612559,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612559} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612559,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612559,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612558,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612558} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612558,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612558,\"participants\":[{\"id\":999774,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999775,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612558,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612558,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612558} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612558,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612558,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612557,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612557} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612557,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612557,\"participants\":[{\"id\":999772,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999773,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612557,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612557,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612557} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612557,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612557,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612556,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612556} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612556,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612556,\"participants\":[{\"id\":999770,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999771,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612556,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612556,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612556} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612556,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612556,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612555,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612555} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612555,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612555,\"participants\":[{\"id\":999768,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999769,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612555,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612555,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612555} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612555,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612555,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612554,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612554} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612554,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612554,\"participants\":[{\"id\":999766,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999767,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612554,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612554,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612554} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612554,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612554,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612553,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612553} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612553,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612553,\"participants\":[{\"id\":999764,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999765,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612553,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612553,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612553} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612553,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612553,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612552,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612552} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612552,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612552,\"participants\":[{\"id\":999762,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999763,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612552,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612552,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612552} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612552,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612552,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612551,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612551} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612551,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612551,\"participants\":[{\"id\":999760,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999761,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612551,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612551,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612551} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612551,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612551,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612550,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612550} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612550,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612550,\"participants\":[{\"id\":999758,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999759,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612550,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612550,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612550} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612550,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612550,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612549,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612549} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612549,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612549,\"participants\":[{\"id\":999756,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999757,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612549,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612549,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612549} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612549,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612549,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612365,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612365} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612365,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612365,\"participants\":[{\"id\":999563,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999564,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4491,\"owner_id\":206} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4491} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4491,\"opportunity_id\":276} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612365,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612365,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612365} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612365,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612365,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612360,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612360} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612360,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612360,\"participants\":[{\"id\":999552,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999553,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999565,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612360,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.29,\"average_seconds_per_request\":0.29} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612360,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612360} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612360,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612360,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612340,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612340} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612340,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612340,\"participants\":[{\"id\":999516,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999517,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999518,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":999519,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612340,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.34,\"average_seconds_per_request\":0.34} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612340,\"participants_processed\":4,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612340} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612340,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612340,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.75,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612339,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612339} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612339,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612339,\"participants\":[{\"id\":999514,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999515,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999540,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612339,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612339,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612339} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612339,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612339,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612336,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612336} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612336,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612336,\"participants\":[{\"id\":999508,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999509,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999512,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":999513,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612336,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612336,\"participants_processed\":4,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612336} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612336,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612336,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612183,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612183} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612183,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612183,\"participants\":[{\"id\":999227,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999228,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":261} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":299} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612183,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612183,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612183} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612183,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612183,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612182,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612182} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612182,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612182,\"participants\":[{\"id\":999225,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999226,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612182,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612182,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612182} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612182,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612182,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612181,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612181} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612181,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612181,\"participants\":[{\"id\":999223,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999224,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612181,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612181,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612181} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612181,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612181,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612180,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612180} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612180,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612180,\"participants\":[{\"id\":999221,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999222,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612180,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612180,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612180} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612180,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612180,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611455,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611455} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611455,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611455,\"participants\":[{\"id\":997961,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997962,\"user_id\":1460,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"support@staging.jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/support%40staging.jiminny.com?properties=email%2Cfirstname%2Clastname%2Ccountry%2Cphone%2Cmobilephone%2Cjobtitle%2Chubspot_owner_id%2Cassociatedcompanyid%2Cphoto&archived=0&idProperty=email` resulted in a `404 Not Found` response\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.23,\"average_seconds_per_request\":0.23} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:35] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:35] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:35] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.27,\"average_seconds_per_request\":0.27} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611455,\"team_id\":2,\"email\":\"aneliya.angelova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611455,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611455} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611455,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611455,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611451,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611451} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611451,\"participants\":[{\"id\":997955,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997956,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"support@staging.jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/support%40staging.jiminny.com?properties=email%2Cfirstname%2Clastname%2Ccountry%2Cphone%2Cmobilephone%2Cjobtitle%2Chubspot_owner_id%2Cassociatedcompanyid%2Cphoto&archived=0&idProperty=email` resulted in a `404 Not Found` response\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.25,\"average_seconds_per_request\":0.25} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:38] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.44,\"average_seconds_per_request\":0.44} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611451,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":3.16,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611451,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611451} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611451,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611087,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611087} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611087,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611087,\"participants\":[{\"id\":997368,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997369,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611087,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611087,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611087} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611087,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611087,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611076,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611076} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611076,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611076,\"participants\":[{\"id\":997346,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997347,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611076,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611076,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611076} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611076,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611076,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610935,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610935} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610935,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610935,\"participants\":[{\"id\":997141,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997142,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610935,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610935,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610935} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610935,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610935,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610915,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610915} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610915,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610915,\"participants\":[{\"id\":997104,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997105,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610915,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610915,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610915} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610915,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610915,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610900,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610900} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610900,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610900,\"participants\":[{\"id\":997081,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997082,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610900,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610900,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610900} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610900,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610900,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610885,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610885} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610885,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610885,\"participants\":[{\"id\":997051,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997052,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610885,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610885,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610885} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610885,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610885,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610878,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610878} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610878,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610878,\"participants\":[{\"id\":997035,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997036,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610878,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610878,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610878} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610878,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610878,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610874,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610874} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610874,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610874,\"participants\":[{\"id\":997025,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997026,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610874,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610874,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610874} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610874,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610874,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610867,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610867} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610867,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610867,\"participants\":[{\"id\":997011,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997012,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610867,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610867,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610867} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610867,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610867,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610764,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610764} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610764,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610764,\"participants\":[{\"id\":996951,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996952,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610764,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610764,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610764} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610764,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610764,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610617,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610617} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610617,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610617,\"participants\":[{\"id\":996641,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996642,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610617,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610617,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610617} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610617,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610617,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610539,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610539} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610539,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610539,\"participants\":[{\"id\":996485,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996486,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610539,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610539,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610539} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610539,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610539,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.4,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610528,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610528} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610528,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610528,\"participants\":[{\"id\":996463,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996464,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610528,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610528,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610528} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610528,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610528,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610506,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610506} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610506,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610506,\"participants\":[{\"id\":996419,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996420,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610506,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610506,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610506} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610506,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610506,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610497,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610497} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610497,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610497,\"participants\":[{\"id\":996401,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996402,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610497,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610497,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610497} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610497,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610497,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610490,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610490} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610490,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610490,\"participants\":[{\"id\":996385,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996386,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610490,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610490,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610490} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610490,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610490,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610470,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610470} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610470,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610470,\"participants\":[{\"id\":996369,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996370,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610470,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610470,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610470} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610470,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610470,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610462,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610462} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610462,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610462,\"participants\":[{\"id\":996353,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996354,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610462,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610462,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610462} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610462,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610462,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610451,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610451} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610451,\"participants\":[{\"id\":996340,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996341,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610451,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610451,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610451} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610451,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610438,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610438} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610438,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610438,\"participants\":[{\"id\":996320,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996321,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610438,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610438,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610438} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610438,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610438,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610426,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610426} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610426,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610426,\"participants\":[{\"id\":996306,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996307,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610426,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610426,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610426} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610426,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610426,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610403,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610403} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610403,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610403,\"participants\":[{\"id\":996282,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996283,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610403,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610403,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610403} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610403,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610403,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610400,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34}} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610400} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610400,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610400,\"participants\":[{\"id\":996275,\"user_id\":1460,\"contact_id\":null,\"lead_id\":null},{\"id\":996276,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":996277,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610400,\"team_id\":2,\"email\":\"aneliya.angelova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610400,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":1460} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610400,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610400} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610400,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610400,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":614382,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614382} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614382,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":614382,\"participants\":[{\"id\":1002632,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1002633,\"user_id\":89,\"contact_id\":null,\"lead_id\":null}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"nikolay.nikolov@jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/nikolay.nikolov%40jiminny.com?properties=email%2Cfirstname%2Clastname%2Ccountry%2Cphone%2Cmobilephone%2Cjobtitle%2Chubspot_owner_id%2Cassociatedcompanyid%2Cphoto&archived=0&idProperty=email` resulted in a `404 Not Found` response\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.51,\"average_seconds_per_request\":0.51} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.35,\"average_seconds_per_request\":0.35} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614382,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614382,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614382} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614382,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614382,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":614381,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614381} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614381,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":614381,\"participants\":[{\"id\":1002630,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1002631,\"user_id\":89,\"contact_id\":null,\"lead_id\":null}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614381,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614381,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614381} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614381,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614381,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":615092,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":615092} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":615092,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":615092,\"participants\":[{\"id\":1004102,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1004103,\"user_id\":89,\"contact_id\":null,\"lead_id\":null}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":615092,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":615092,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":615092} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":615092,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":615092,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":614436,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614436} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614436,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":614436,\"participants\":[{\"id\":1002751,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1002752,\"user_id\":89,\"contact_id\":null,\"lead_id\":null}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614436,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614436,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614436} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614436,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614436,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":614378,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":6167,\"account_id\":null,\"opportunity_id\":null,\"stage_id\":null}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614378} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614378,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":614378,\"participants\":[{\"id\":1002623,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1002624,\"user_id\":null,\"contact_id\":6167,\"lead_id\":null},{\"id\":1002625,\"user_id\":89,\"contact_id\":null,\"lead_id\":null}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nmalchev@gmail.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614378,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614378,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614378} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614378,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614378,\"remote_search\":true,\"lead_id\":null,\"contact_id\":6167,\"account_id\":null,\"opportunity_id\":null,\"stage_id\":null} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612847,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612847} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612847,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612847,\"participants\":[{\"id\":1000130,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1000131,\"user_id\":261,\"contact_id\":null,\"lead_id\":null},{\"id\":1000151,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.84,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:51] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"adelina.petrova@jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/adelina.petrova%40jiminny.com?properties=email%2Cfirstname%2Clastname%2Ccountry%2Cphone%2Cmobilephone%2Cjobtitle%2Chubspot_owner_id%2Cassociatedcompanyid%2Cphoto&archived=0&idProperty=email` resulted in a `404 Not Found` response\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.28,\"average_seconds_per_request\":0.28} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"adelina.petrova@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.43,\"average_seconds_per_request\":0.43} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612847,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612847,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612847} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612847,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612847,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612819,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612819} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612819,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612819,\"participants\":[{\"id\":1000073,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1000074,\"user_id\":261,\"contact_id\":null,\"lead_id\":null},{\"id\":1000075,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612819,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"adelina.petrova@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612819,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612819} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612819,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612819,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:57] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.25,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:19:07] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"70d16739-7654-4185-99cb-49559aafc660\",\"trace_id\":\"d100f21a-5975-471a-b245-90b25b177c8f\"}\n[2026-05-11 11:19:07] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"70d16739-7654-4185-99cb-49559aafc660\",\"trace_id\":\"d100f21a-5975-471a-b245-90b25b177c8f\"}\n[2026-05-11 11:19:07] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"70d16739-7654-4185-99cb-49559aafc660\",\"trace_id\":\"d100f21a-5975-471a-b245-90b25b177c8f\"}\n[2026-05-11 11:19:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"91df8068-6c15-4614-947e-90f48574662c\",\"trace_id\":\"a9a86198-7521-4c0c-a89e-d23b34f2f8bf\"}\n[2026-05-11 11:19:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"91df8068-6c15-4614-947e-90f48574662c\",\"trace_id\":\"a9a86198-7521-4c0c-a89e-d23b34f2f8bf\"}\n[2026-05-11 11:19:15] local.NOTICE: Monitoring start {\"correlation_id\":\"6fae005c-3fcd-4718-86b0-f08f140f889c\",\"trace_id\":\"233ad400-a3ad-4093-8660-9e477cd6ca8f\"}\n[2026-05-11 11:19:15] local.NOTICE: Monitoring end {\"correlation_id\":\"6fae005c-3fcd-4718-86b0-f08f140f889c\",\"trace_id\":\"233ad400-a3ad-4093-8660-9e477cd6ca8f\"}\n[2026-05-11 11:19:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"08b79017-e665-425f-8048-21f93b1abf3b\",\"trace_id\":\"bb7a7ea5-30d3-4a13-9c3c-84bc1f9c26e7\"}\n[2026-05-11 11:19:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"08b79017-e665-425f-8048-21f93b1abf3b\",\"trace_id\":\"bb7a7ea5-30d3-4a13-9c3c-84bc1f9c26e7\"}\n[2026-05-11 11:19:21] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:19:21] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:19:22] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:19:22] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:20:08] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"cb3a4a64-b00b-4f94-9e00-c190cd7a7a42\",\"trace_id\":\"acd43b75-f255-471f-9563-f03de03c7e23\"}\n[2026-05-11 11:20:08] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"cb3a4a64-b00b-4f94-9e00-c190cd7a7a42\",\"trace_id\":\"acd43b75-f255-471f-9563-f03de03c7e23\"}\n[2026-05-11 11:20:08] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"cb3a4a64-b00b-4f94-9e00-c190cd7a7a42\",\"trace_id\":\"acd43b75-f255-471f-9563-f03de03c7e23\"}\n[2026-05-11 11:20:10] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"8ab6728e-9079-4166-bf97-fed4fb2ac7de\",\"trace_id\":\"508ecd6c-81db-47d4-8fad-d40b1e55cff3\"}\n[2026-05-11 11:20:10] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"8ab6728e-9079-4166-bf97-fed4fb2ac7de\",\"trace_id\":\"508ecd6c-81db-47d4-8fad-d40b1e55cff3\"}\n[2026-05-11 11:20:13] local.NOTICE: Monitoring start {\"correlation_id\":\"98b2a767-ff2a-4f82-866f-bf7dad58fe13\",\"trace_id\":\"ecb25ade-8dda-4d47-8bce-6b84e3c8fd0c\"}\n[2026-05-11 11:20:13] local.NOTICE: Monitoring end {\"correlation_id\":\"98b2a767-ff2a-4f82-866f-bf7dad58fe13\",\"trace_id\":\"ecb25ade-8dda-4d47-8bce-6b84e3c8fd0c\"}\n[2026-05-11 11:20:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"05f19e62-48e4-4c36-9577-648a2dd54abd\",\"trace_id\":\"e3d3acd1-5c23-4f37-9566-32a0cbd7a4eb\"}\n[2026-05-11 11:20:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"05f19e62-48e4-4c36-9577-648a2dd54abd\",\"trace_id\":\"e3d3acd1-5c23-4f37-9566-32a0cbd7a4eb\"}\n[2026-05-11 11:20:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:18] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:18] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:23] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:23] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 11:18:00, 2026-05-11 11:20:00] {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:23] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 11:18:00, 2026-05-11 11:20:00] {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:23] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:25] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"b599f338-6a44-44d5-9f81-6fa300c4ea1b\",\"trace_id\":\"c7645418-4758-4410-83f2-8fe71ebf2ec2\"}\n[2026-05-11 11:20:25] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"b599f338-6a44-44d5-9f81-6fa300c4ea1b\",\"trace_id\":\"c7645418-4758-4410-83f2-8fe71ebf2ec2\"}\n[2026-05-11 11:20:28] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"3c9d7674-d005-4372-8a60-2e8ecb587584\",\"trace_id\":\"22a0bdee-d653-4113-963c-043a68a4a8be\"}\n[2026-05-11 11:20:29] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"3c9d7674-d005-4372-8a60-2e8ecb587584\",\"trace_id\":\"22a0bdee-d653-4113-963c-043a68a4a8be\"}\n[2026-05-11 11:20:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"1453203b-bac8-47ba-ac62-6369ac533fc2\",\"trace_id\":\"f176800e-9da8-4580-a332-56fa3402dbb7\"}\n[2026-05-11 11:20:31] local.INFO: Running pre-meeting notification command {\"correlation_id\":\"1453203b-bac8-47ba-ac62-6369ac533fc2\",\"trace_id\":\"f176800e-9da8-4580-a332-56fa3402dbb7\"}\n[2026-05-11 11:20:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"1453203b-bac8-47ba-ac62-6369ac533fc2\",\"trace_id\":\"f176800e-9da8-4580-a332-56fa3402dbb7\"}\n[2026-05-11 11:20:33] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:33] local.INFO: Running conference:monitor:start command for activities in (2026-05-11 11:10:00, 2026-05-11 11:15:00] {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:33] local.INFO: [conference:monitor:start] No activities found in (2026-05-11 11:10:00, 2026-05-11 11:15:00] {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:33] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:37] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:37] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesEnded {\"from\":\"11:15\",\"to\":\"11:20\"} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:38] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesWithUnfinishedSession {\"from\":\"01:10\",\"to\":\"01:15\"} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:38] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:41] local.NOTICE: Repairing HubSpot tokens start {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: Trying to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":59,\"provider\":\"hubspot\",\"refreshToken\":\"97b78f6e2cc49965c00c2492b602b02708b1392551e6b3f113fbaa48992af90b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.ERROR: Failed to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: Trying to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":306,\"provider\":\"hubspot\",\"refreshToken\":\"6fa6aa8cc641d131231acc3470f5c03cb3b07b2e580fb18f8acb3b1dbb72549b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.ERROR: Failed to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: Trying to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1372,\"provider\":\"hubspot\",\"refreshToken\":\"9aa73948c761da29dce46c177cf9aee1fde483a44169ca38723f9f0597d7a8c4\",\"state\":\"full-refresh\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:43] local.ERROR: Failed to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:43] local.NOTICE: Repairing HubSpot tokens end {\"total\":3,\"fixed\":0,\"failed\":3} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"jiminny:transcription:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"28cf48be-a629-420c-a0a4-0d20fbd05838\",\"trace_id\":\"4fdaba19-5d8e-45db-a600-da048c8066fb\"}\n[2026-05-11 11:20:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"6a6c06af-94cf-46bf-976e-55e401b3a588\",\"trace_id\":\"338c3b84-fc5a-404b-bed6-97341331ae68\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Command] Starting polling service {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Polling] Service starting {\"memory_limit\":\"256M\",\"max_execution_time\":\"0\",\"initial_memory_mb\":60.0} {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Polling] Acquired polling lock {\"expires_at\":\"2026-05-11T11:22:48.807561Z\"} {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Auth] Requesting new client credentials token {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"jiminny:transcription:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"28cf48be-a629-420c-a0a4-0d20fbd05838\",\"trace_id\":\"4fdaba19-5d8e-45db-a600-da048c8066fb\"}\n[2026-05-11 11:20:49] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"6a6c06af-94cf-46bf-976e-55e401b3a588\",\"trace_id\":\"338c3b84-fc5a-404b-bed6-97341331ae68\"}\n[2026-05-11 11:20:49] local.INFO: [HubSpot Journal Auth] Successfully obtained new access token {\"expires_in\":1800,\"cached_for\":1500} {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:49] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:53] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:reset-governor\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"c8d52370-b908-428c-b973-699db0be2136\",\"trace_id\":\"fabc1f54-e263-4ba0-b8ff-324f62e84f1f\"}\n[2026-05-11 11:20:53] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:reset-governor\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"c8d52370-b908-428c-b973-699db0be2136\",\"trace_id\":\"fabc1f54-e263-4ba0-b8ff-324f62e84f1f\"}\n[2026-05-11 11:20:54] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:56] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"de84a4c9-d2c5-4950-8c2d-f400cee667bf\",\"trace_id\":\"223fd9b2-ed24-4083-98cd-1bc4040dbbd1\"}\n[2026-05-11 11:20:57] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"de84a4c9-d2c5-4950-8c2d-f400cee667bf\",\"trace_id\":\"223fd9b2-ed24-4083-98cd-1bc4040dbbd1\"}\n[2026-05-11 11:20:59] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:21:15] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:21:22] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"0bfe72bb-b4b3-4001-950a-4ff144759ece\",\"trace_id\":\"2278148b-b05e-4dc0-90be-418928a8ce59\"}\n[2026-05-11 11:21:22] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"0bfe72bb-b4b3-4001-950a-4ff144759ece\",\"trace_id\":\"2278148b-b05e-4dc0-90be-418928a8ce59\"}\n[2026-05-11 11:21:22] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"0bfe72bb-b4b3-4001-950a-4ff144759ece\",\"trace_id\":\"2278148b-b05e-4dc0-90be-418928a8ce59\"}\n[2026-05-11 11:21:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"5b86ad86-7514-4e2f-96f3-38c27443e433\",\"trace_id\":\"93cbf126-a6cf-452b-8056-69a67a3c9b0d\"}\n[2026-05-11 11:21:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"5b86ad86-7514-4e2f-96f3-38c27443e433\",\"trace_id\":\"93cbf126-a6cf-452b-8056-69a67a3c9b0d\"}\n[2026-05-11 11:21:37] local.NOTICE: Monitoring start {\"correlation_id\":\"c0c5ae9d-2fb5-4d62-9edf-08ff810f36d4\",\"trace_id\":\"797998aa-d80e-4a50-826b-c67d573968bd\"}\n[2026-05-11 11:21:37] local.NOTICE: Monitoring end {\"correlation_id\":\"c0c5ae9d-2fb5-4d62-9edf-08ff810f36d4\",\"trace_id\":\"797998aa-d80e-4a50-826b-c67d573968bd\"}\n[2026-05-11 11:21:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a9ef0b83-7162-48d6-91a3-a38717b8f61f\",\"trace_id\":\"a2ab36b2-1cd0-4e98-8b49-48078ef572db\"}\n[2026-05-11 11:21:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a9ef0b83-7162-48d6-91a3-a38717b8f61f\",\"trace_id\":\"a2ab36b2-1cd0-4e98-8b49-48078ef572db\"}\n[2026-05-11 11:21:45] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:21:45] local.WARNING: [HubSpot Journal Polling] Maximum empty results reached, stopping {\"empty_results\":5,\"max_empty_results\":5} {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:21:45] local.WARNING: [HubSpot Journal Polling] Maximum empty results reached, stopping {\"empty_results\":5,\"max_empty_results\":5} {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:21:45] local.INFO: [HubSpot Journal Polling] Service ending {\"runtime_seconds\":57,\"total_cycles\":5,\"files_downloaded\":0,\"empty_files\":0,\"other_portal_skipped\":0,\"total_events\":0,\"events_per_file\":0,\"avg_api_ms\":329.4,\"avg_download_ms\":0.0,\"avg_transform_ms\":0.0,\"avg_process_ms\":0.0,\"peak_memory_mb\":99.73} {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:21:46] local.INFO: [HubSpot Journal Polling] Saved offset to database on cleanup {\"offset\":\"019e15a9-9ea0-7da7-87bc-82592e3ccf0d\"} {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:21:46] local.INFO: [HubSpot Journal Polling] Released polling lock {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:21:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"241421de-745e-44a3-a65f-377d105b241e\",\"trace_id\":\"c3b9e86b-adf4-459b-9ec1-f106c8ed60ff\"}\n[2026-05-11 11:21:48] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"241421de-745e-44a3-a65f-377d105b241e\",\"trace_id\":\"c3b9e86b-adf4-459b-9ec1-f106c8ed60ff\"}\n[2026-05-11 11:21:48] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"241421de-745e-44a3-a65f-377d105b241e\",\"trace_id\":\"c3b9e86b-adf4-459b-9ec1-f106c8ed60ff\"}\n[2026-05-11 11:21:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"241421de-745e-44a3-a65f-377d105b241e\",\"trace_id\":\"c3b9e86b-adf4-459b-9ec1-f106c8ed60ff\"}\n[2026-05-11 11:21:59] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:sync-hubspot-objects\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"50fe8230-c5ed-4686-bbf5-bb8aed21b266\",\"trace_id\":\"60cd5a4d-d11d-43f6-9821-483d873cad6d\"}\n[2026-05-11 11:22:00] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:sync-hubspot-objects\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"50fe8230-c5ed-4686-bbf5-bb8aed21b266\",\"trace_id\":\"60cd5a4d-d11d-43f6-9821-483d873cad6d\"}\n[2026-05-11 11:22:00] local.INFO: [SyncHubspotObjects] Starting sync {\"team\":\"b2b115eb-93ce-4d1b-929c-173757df8fba\",\"usage\":23350336,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"60bc4807-da21-4916-a8a7-22fa9ae06442\",\"trace_id\":\"60cd5a4d-d11d-43f6-9821-483d873cad6d\"}\n[2026-05-11 11:22:00] local.WARNING: [HubSpot] Account not connected for user {\"userId\":\"33e34a7a-1c02-4f04-87ac-22c3a385e6e3\",\"account\":{\"Jiminny\\\\Models\\\\SocialAccount\":{\"id\":306,\"sociable_id\":109,\"provider_user_id\":\"11348452\",\"expires\":1701077403,\"refresh_token_expires\":null,\"provider\":\"hubspot\",\"state\":\"full-refresh\",\"auth_scope\":null,\"retry_after\":null,\"created_at\":\"2020-09-01 16:59:04\",\"updated_at\":\"2023-11-27 09:30:03\"}}} {\"correlation_id\":\"60bc4807-da21-4916-a8a7-22fa9ae06442\",\"trace_id\":\"60cd5a4d-d11d-43f6-9821-483d873cad6d\"}\n[2026-05-11 11:22:00] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"hubspot\",\"crm_owner\":109,\"team_id\":29} {\"correlation_id\":\"60bc4807-da21-4916-a8a7-22fa9ae06442\",\"trace_id\":\"60cd5a4d-d11d-43f6-9821-483d873cad6d\"}\n[2026-05-11 11:22:00] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":29} {\"correlation_id\":\"60bc4807-da21-4916-a8a7-22fa9ae06442\",\"trace_id\":\"60cd5a4d-d11d-43f6-9821-483d873cad6d\"}\n[2026-05-11 11:22:00] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":29} {\"correlation_id\":\"60bc4807-da21-4916-a8a7-22fa9ae06442\",\"trace_id\":\"60cd5a4d-d11d-43f6-9821-483d873cad6d\"}\n[2026-05-11 11:22:00] local.INFO: [SyncHubspotObjects] Sync finished {\"team\":\"b2b115eb-93ce-4d1b-929c-173757df8fba\",\"provider\":\"hubspot\",\"status\":\"disconnected\",\"duration_ms\":52.26,\"usage\":23416376,\"real_usage\":62914560,\"pid\":74083,\"reason\":\"Your HubSpot account has become disconnected. Please login to Jiminny to reconnect.\"} {\"correlation_id\":\"60bc4807-da21-4916-a8a7-22fa9ae06442\",\"trace_id\":\"60cd5a4d-d11d-43f6-9821-483d873cad6d\"}\n[2026-05-11 11:22:00] local.INFO: [SyncHubspotObjects] Starting sync {\"team\":\"abae74b8-bfa8-4383-9a7f-89f4bf2bdbb4\",\"usage\":23374592,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"23559a13-2f18-4d56-8530-26f2291380ef\",\"trace_id\":\"60cd5a4d-d11d-43f6-9821-483d873cad6d\"}\n[2026-05-11 11:22:00] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"23559a13-2f18-4d56-8530-26f2291380ef\",\"trace_id\":\"60cd5a4d-d11d-43f6-9821-483d873cad6d\"}\n[2026-05-11 11:22:00] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"23559a13-2f18-4d56-8530-26f2291380ef\",\"trace_id\":\"60cd5a4d-d11d-43f6-9821-483d873cad6d\"}\n[2026-05-11 11:22:00] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"23559a13-2f18-4d56-8530-26f2291380ef\",\"trace_id\":\"60cd5a4d-d11d-43f6-9821-483d873cad6d\"}\n[2026-05-11 11:22:00] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"23559a13-2f18-4d56-8530-26f2291380ef\",\"trace_id\":\"60cd5a4d-d11d-43f6-9821-483d873cad6d\"}\n[2026-05-11 11:22:00] local.INFO: [HubSpot] Syncing opportunities using strategy: lastModified {\"team\":2} {\"correlation_id\":\"23559a13-2f18-4d56-8530-26f2291380ef\",\"trace_id\":\"60cd5a4d-d11d-43f6-9821-483d873cad6d\"}\n[2026-05-11 11:22:01] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.28,\"average_seconds_per_request\":0.28} {\"correlation_id\":\"23559a13-2f18-4d56-8530-26f2291380ef\",\"trace_id\":\"60cd5a4d-d11d-43f6-9821-483d873cad6d\"}\n[2026-05-11 11:22:01] local.INFO: [HubSpot] Synced opportunities {\"team\":2,\"strategies\":\"lastModified\",\"sync_count\":0,\"total\":0,\"last_synced_id\":null,\"duration_ms\":288.59} {\"correlation_id\":\"23559a13-2f18-4d56-8530-26f2291380ef\",\"trace_id\":\"60cd5a4d-d11d-43f6-9821-483d873cad6d\"}\n[2026-05-11 11:22:01] local.INFO: [SyncHubspotObjects] Sync finished {\"team\":\"abae74b8-bfa8-4383-9a7f-89f4bf2bdbb4\",\"provider\":\"hubspot\",\"status\":\"completed\",\"duration_ms\":332.08,\"usage\":23438944,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"23559a13-2f18-4d56-8530-26f2291380ef\",\"trace_id\":\"60cd5a4d-d11d-43f6-9821-483d873cad6d\"}\n[2026-05-11 11:22:01] local.INFO: [SyncHubspotObjects] Starting sync {\"team\":\"c6b9d6b0-b48d-4832-a68c-a57d60651888\",\"usage\":23416872,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"d77fb655-5cd1-4a3e-9e6e-b74111585357\",\"trace_id\":\"60cd5a4d-d11d-43f6-9821-483d873cad6d\"}\n[2026-05-11 11:22:01] local.WARNING: [HubSpot] Account not connected for user {\"userId\":\"71e3aac5-fb66-47c5-a236-2d051ae3e319\",\"account\":null} {\"correlation_id\":\"d77fb655-5cd1-4a3e-9e6e-b74111585357\",\"trace_id\":\"60cd5a4d-d11d-43f6-9821-483d873cad6d\"}\n[2026-05-11 11:22:01] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"hubspot\",\"crm_owner\":256,\"team_id\":49} {\"correlation_id\":\"d77fb655-5cd1-4a3e-9e6e-b74111585357\",\"trace_id\":\"60cd5a4d-d11d-43f6-9821-483d873cad6d\"}\n[2026-05-11 11:22:01] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":49} {\"correlation_id\":\"d77fb655-5cd1-4a3e-9e6e-b74111585357\",\"trace_id\":\"60cd5a4d-d11d-43f6-9821-483d873cad6d\"}\n[2026-05-11 11:22:01] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":49} {\"correlation_id\":\"d77fb655-5cd1-4a3e-9e6e-b74111585357\",\"trace_id\":\"60cd5a4d-d11d-43f6-9821-483d873cad6d\"}\n[2026-05-11 11:22:01] local.INFO: [SyncHubspotObjects] Sync finished {\"team\":\"c6b9d6b0-b48d-4832-a68c-a57d60651888\",\"provider\":\"hubspot\",\"status\":\"disconnected\",\"duration_ms\":20.21,\"usage\":23401296,\"real_usage\":62914560,\"pid\":74083,\"reason\":\"Social account for HubSpot cannot be found. Please login to Jiminny to connect.\"} {\"correlation_id\":\"d77fb655-5cd1-4a3e-9e6e-b74111585357\",\"trace_id\":\"60cd5a4d-d11d-43f6-9821-483d873cad6d\"}\n[2026-05-11 11:22:01] local.INFO: [SyncHubspotObjects] Starting sync {\"team\":\"b2d49a54-b645-4637-a7ae-a86cfce6e8e4\",\"usage\":23361936,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"0fb5e634-6f53-4967-b07e-2a3be8c177eb\",\"trace_id\":\"60cd5a4d-d11d-43f6-9821-483d873cad6d\"}\n[2026-05-11 11:22:01] local.WARNING: [HubSpot] Account not connected for user {\"userId\":\"2ac0447f-3c8c-4ce0-baeb-b63ddb76fa9b\",\"account\":null} {\"correlation_id\":\"0fb5e634-6f53-4967-b07e-2a3be8c177eb\",\"trace_id\":\"60cd5a4d-d11d-43f6-9821-483d873cad6d\"}\n[2026-05-11 11:22:01] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"hubspot\",\"crm_owner\":130,\"team_id\":42} {\"correlation_id\":\"0fb5e634-6f53-4967-b07e-2a3be8c177eb\",\"trace_id\":\"60cd5a4d-d11d-43f6-9821-483d873cad6d\"}\n[2026-05-11 11:22:01] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":42} {\"correlation_id\":\"0fb5e634-6f53-4967-b07e-2a3be8c177eb\",\"trace_id\":\"60cd5a4d-d11d-43f6-9821-483d873cad6d\"}\n[2026-05-11 11:22:01] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":42} {\"correlation_id\":\"0fb5e634-6f53-4967-b07e-2a3be8c177eb\",\"trace_id\":\"60cd5a4d-d11d-43f6-9821-483d873cad6d\"}\n[2026-05-11 11:22:01] local.INFO: [SyncHubspotObjects] Sync finished {\"team\":\"b2d49a54-b645-4637-a7ae-a86cfce6e8e4\",\"provider\":\"hubspot\",\"status\":\"disconnected\",\"duration_ms\":14.19,\"usage\":23404880,\"real_usage\":62914560,\"pid\":74083,\"reason\":\"Social account for HubSpot cannot be found. Please login to Jiminny to connect.\"} {\"correlation_id\":\"0fb5e634-6f53-4967-b07e-2a3be8c177eb\",\"trace_id\":\"60cd5a4d-d11d-43f6-9821-483d873cad6d\"}\n[2026-05-11 11:23:06] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"b1c8bcd6-91f4-42d0-88dc-ec5b5ac1e352\",\"trace_id\":\"3c7f985d-a1c4-4beb-ae19-8d241a1b8c45\"}\n[2026-05-11 11:23:06] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"b1c8bcd6-91f4-42d0-88dc-ec5b5ac1e352\",\"trace_id\":\"3c7f985d-a1c4-4beb-ae19-8d241a1b8c45\"}\n[2026-05-11 11:23:06] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"b1c8bcd6-91f4-42d0-88dc-ec5b5ac1e352\",\"trace_id\":\"3c7f985d-a1c4-4beb-ae19-8d241a1b8c45\"}\n[2026-05-11 11:23:08] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"de0686b7-9d0e-4130-a2f7-ff021175c9c0\",\"trace_id\":\"e91321fc-accd-4dbc-b887-6c13f3a74d5e\"}\n[2026-05-11 11:23:08] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"de0686b7-9d0e-4130-a2f7-ff021175c9c0\",\"trace_id\":\"e91321fc-accd-4dbc-b887-6c13f3a74d5e\"}\n[2026-05-11 11:23:10] local.NOTICE: Monitoring start {\"correlation_id\":\"6d366728-e0b2-43d4-9b02-8e0d3d01d0ae\",\"trace_id\":\"2a4100dd-0e15-4378-b901-26aafd0ac5f2\"}\n[2026-05-11 11:23:10] local.NOTICE: Monitoring end {\"correlation_id\":\"6d366728-e0b2-43d4-9b02-8e0d3d01d0ae\",\"trace_id\":\"2a4100dd-0e15-4378-b901-26aafd0ac5f2\"}\n[2026-05-11 11:23:11] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"fa57196c-91a8-4e79-a936-fd162b28c001\",\"trace_id\":\"e8937547-f6f6-4a61-9a3f-36e854ecbf96\"}\n[2026-05-11 11:23:11] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"fa57196c-91a8-4e79-a936-fd162b28c001\",\"trace_id\":\"e8937547-f6f6-4a61-9a3f-36e854ecbf96\"}\n[2026-05-11 11:23:14] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"8bc0ac28-787b-40b1-b50a-82d72b60cb7d\",\"trace_id\":\"591a2cc9-c870-4a79-aaf1-0a25c359fe44\"}\n[2026-05-11 11:23:14] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"8bc0ac28-787b-40b1-b50a-82d72b60cb7d\",\"trace_id\":\"591a2cc9-c870-4a79-aaf1-0a25c359fe44\"}\n[2026-05-11 11:23:14] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"8bc0ac28-787b-40b1-b50a-82d72b60cb7d\",\"trace_id\":\"591a2cc9-c870-4a79-aaf1-0a25c359fe44\"}\n[2026-05-11 11:23:14] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"8bc0ac28-787b-40b1-b50a-82d72b60cb7d\",\"trace_id\":\"591a2cc9-c870-4a79-aaf1-0a25c359fe44\"}\n[2026-05-11 11:23:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"aa85bd5a-e1eb-4068-856f-1f06467bae1c\",\"trace_id\":\"02184e7d-e5c7-4f45-8999-54d2309ac720\"}\n[2026-05-11 11:23:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"aa85bd5a-e1eb-4068-856f-1f06467bae1c\",\"trace_id\":\"02184e7d-e5c7-4f45-8999-54d2309ac720\"}\n[2026-05-11 11:23:17] local.INFO: [integration-app] Request {\"request\":\"GET connections\",\"full_target\":\"connections\"} {\"correlation_id\":\"9a215c7c-e855-46a4-9126-40f22d342a5f\",\"trace_id\":\"2f580cb0-fe8b-4d14-90cf-090d00e2509f\"}\n[2026-05-11 11:23:17] local.INFO: [integration-app] Connection state identified {\"teamId\":3143,\"connection_name\":\"Connection to 66fe6c913202f3a165e3c14d for Dev Zoho CRM client\",\"remote_connection_id\":\"69e0b983da98fa74f98aebfb\",\"is_disconnected\":false,\"is_deactivated\":false,\"is_valid\":true} {\"correlation_id\":\"9a215c7c-e855-46a4-9126-40f22d342a5f\",\"trace_id\":\"2f580cb0-fe8b-4d14-90cf-090d00e2509f\"}\n[2026-05-11 11:24:05] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"64fdb6b8-375a-4ad4-b050-915f60f3d10b\",\"trace_id\":\"76a74336-b870-41f4-9787-1af873420c21\"}\n[2026-05-11 11:24:05] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"64fdb6b8-375a-4ad4-b050-915f60f3d10b\",\"trace_id\":\"76a74336-b870-41f4-9787-1af873420c21\"}\n[2026-05-11 11:24:05] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"64fdb6b8-375a-4ad4-b050-915f60f3d10b\",\"trace_id\":\"76a74336-b870-41f4-9787-1af873420c21\"}\n[2026-05-11 11:24:07] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"5d18643e-48b1-42e5-89a8-8e252db3c0b8\",\"trace_id\":\"777d5d01-53a2-4902-b312-a89348917eaf\"}\n[2026-05-11 11:24:07] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"5d18643e-48b1-42e5-89a8-8e252db3c0b8\",\"trace_id\":\"777d5d01-53a2-4902-b312-a89348917eaf\"}\n[2026-05-11 11:24:09] local.NOTICE: Monitoring start {\"correlation_id\":\"567d2904-2d99-4b49-82ff-cbcbe9d1eba3\",\"trace_id\":\"d990607f-045d-41d1-9dcb-eda9fc8d2bfe\"}\n[2026-05-11 11:24:09] local.NOTICE: Monitoring end {\"correlation_id\":\"567d2904-2d99-4b49-82ff-cbcbe9d1eba3\",\"trace_id\":\"d990607f-045d-41d1-9dcb-eda9fc8d2bfe\"}\n[2026-05-11 11:24:11] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"6b00dce1-5488-4c35-8cc4-533b3e221239\",\"trace_id\":\"33ba3132-c2ce-482b-92f6-1b854d5cb40d\"}\n[2026-05-11 11:24:11] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"6b00dce1-5488-4c35-8cc4-533b3e221239\",\"trace_id\":\"33ba3132-c2ce-482b-92f6-1b854d5cb40d\"}\n[2026-05-11 11:24:14] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"9479ae0e-eb24-4cd9-8fc3-08a5d5afcf24\",\"trace_id\":\"9942a9b8-9fd9-4545-bbac-be670ad0c059\"}\n[2026-05-11 11:24:14] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"9479ae0e-eb24-4cd9-8fc3-08a5d5afcf24\",\"trace_id\":\"9942a9b8-9fd9-4545-bbac-be670ad0c059\"}\n[2026-05-11 11:24:14] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"9479ae0e-eb24-4cd9-8fc3-08a5d5afcf24\",\"trace_id\":\"9942a9b8-9fd9-4545-bbac-be670ad0c059\"}\n[2026-05-11 11:24:14] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"9479ae0e-eb24-4cd9-8fc3-08a5d5afcf24\",\"trace_id\":\"9942a9b8-9fd9-4545-bbac-be670ad0c059\"}\n[2026-05-11 11:24:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"9a4aafea-530d-4a28-b8c0-b3587b47b105\",\"trace_id\":\"69372eda-94e9-4126-a644-ed498de5ab72\"}\n[2026-05-11 11:24:16] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 11:22:00, 2026-05-11 11:24:00] {\"correlation_id\":\"9a4aafea-530d-4a28-b8c0-b3587b47b105\",\"trace_id\":\"69372eda-94e9-4126-a644-ed498de5ab72\"}\n[2026-05-11 11:24:16] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 11:22:00, 2026-05-11 11:24:00] {\"correlation_id\":\"9a4aafea-530d-4a28-b8c0-b3587b47b105\",\"trace_id\":\"69372eda-94e9-4126-a644-ed498de5ab72\"}\n[2026-05-11 11:24:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"9a4aafea-530d-4a28-b8c0-b3587b47b105\",\"trace_id\":\"69372eda-94e9-4126-a644-ed498de5ab72\"}\n[2026-05-11 11:24:17] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:aircall:check-and-renew\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"1b3d7ab8-67f9-45e4-afea-05f709f6b0f3\",\"trace_id\":\"286b618b-82b5-42df-b2e0-94c80f6c04be\"}\n[2026-05-11 11:24:17] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1496,\"provider\":\"aircall\"} {\"correlation_id\":\"1b3d7ab8-67f9-45e4-afea-05f709f6b0f3\",\"trace_id\":\"286b618b-82b5-42df-b2e0-94c80f6c04be\"}\n[2026-05-11 11:24:17] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1496,\"provider\":\"aircall\"} {\"correlation_id\":\"1b3d7ab8-67f9-45e4-afea-05f709f6b0f3\",\"trace_id\":\"286b618b-82b5-42df-b2e0-94c80f6c04be\"}\n[2026-05-11 11:24:17] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1b3d7ab8-67f9-45e4-afea-05f709f6b0f3\",\"trace_id\":\"286b618b-82b5-42df-b2e0-94c80f6c04be\"}\n[2026-05-11 11:24:18] local.ERROR: [Aircall] Re-activating webhooks failed {\"team_id\":1,\"reason\":\"{\\\"message\\\":\\\"Forbidden\\\"}\"} {\"correlation_id\":\"1b3d7ab8-67f9-45e4-afea-05f709f6b0f3\",\"trace_id\":\"286b618b-82b5-42df-b2e0-94c80f6c04be\"}\n[2026-05-11 11:24:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:aircall:check-and-renew\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"1b3d7ab8-67f9-45e4-afea-05f709f6b0f3\",\"trace_id\":\"286b618b-82b5-42df-b2e0-94c80f6c04be\"}\n[2026-05-11 11:24:20] local.INFO: [RetryFailedDownloads] Starting {\"options\":{\"from\":null,\"to\":null,\"help\":false,\"silent\":false,\"quiet\":false,\"verbose\":false,\"version\":false,\"ansi\":null,\"no-interaction\":false,\"env\":null}} {\"correlation_id\":\"bc30c028-bef4-47fb-9420-88571f097b0f\",\"trace_id\":\"3ad1ce39-473c-4b20-986f-a0de722b274e\"}\n[2026-05-11 11:25:05] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"2a3f0764-70e1-49cd-bf5f-b1479eeb3720\",\"trace_id\":\"6e624cda-dc1d-4aa4-b414-0eb5db7f67e2\"}\n[2026-05-11 11:25:05] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"2a3f0764-70e1-49cd-bf5f-b1479eeb3720\",\"trace_id\":\"6e624cda-dc1d-4aa4-b414-0eb5db7f67e2\"}\n[2026-05-11 11:25:05] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"2a3f0764-70e1-49cd-bf5f-b1479eeb3720\",\"trace_id\":\"6e624cda-dc1d-4aa4-b414-0eb5db7f67e2\"}\n[2026-05-11 11:25:07] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"9545d596-e9dc-4950-ba72-ecd5a0bde54f\",\"trace_id\":\"5571116b-5b8b-4267-a3fc-e329ab944d13\"}\n[2026-05-11 11:25:07] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"9545d596-e9dc-4950-ba72-ecd5a0bde54f\",\"trace_id\":\"5571116b-5b8b-4267-a3fc-e329ab944d13\"}\n[2026-05-11 11:25:09] local.NOTICE: Monitoring start {\"correlation_id\":\"0afcb416-af01-427e-b164-c40e32cffeea\",\"trace_id\":\"fc4546f6-800e-48a9-bdc4-2d269e559d66\"}\n[2026-05-11 11:25:09] local.NOTICE: Monitoring end {\"correlation_id\":\"0afcb416-af01-427e-b164-c40e32cffeea\",\"trace_id\":\"fc4546f6-800e-48a9-bdc4-2d269e559d66\"}\n[2026-05-11 11:25:11] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"d5689991-9d82-4295-a03a-b694b7ac093c\",\"trace_id\":\"f2f04177-1696-4f15-87de-c1f548ac9e90\"}\n[2026-05-11 11:25:11] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"d5689991-9d82-4295-a03a-b694b7ac093c\",\"trace_id\":\"f2f04177-1696-4f15-87de-c1f548ac9e90\"}\n[2026-05-11 11:25:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"dfb57410-d885-401c-9e42-b54fd60d1bda\",\"trace_id\":\"91a2f916-2107-4841-91b4-debba8f540a6\"}\n[2026-05-11 11:25:12] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"dfb57410-d885-401c-9e42-b54fd60d1bda\",\"trace_id\":\"91a2f916-2107-4841-91b4-debba8f540a6\"}\n[2026-05-11 11:25:12] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"dfb57410-d885-401c-9e42-b54fd60d1bda\",\"trace_id\":\"91a2f916-2107-4841-91b4-debba8f540a6\"}\n[2026-05-11 11:25:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"dfb57410-d885-401c-9e42-b54fd60d1bda\",\"trace_id\":\"91a2f916-2107-4841-91b4-debba8f540a6\"}\n[2026-05-11 11:25:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"15a826c1-0d26-451f-831b-59542a6de8bd\",\"trace_id\":\"9111c962-1dd9-4734-9bf7-67bef3b00b01\"}\n[2026-05-11 11:25:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"15a826c1-0d26-451f-831b-59542a6de8bd\",\"trace_id\":\"9111c962-1dd9-4734-9bf7-67bef3b00b01\"}\n[2026-05-11 11:25:17] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"74339c0c-f6c2-469a-876c-8a6f309b870b\",\"trace_id\":\"57bc9ab7-00d0-4195-b1df-6c17f6073ca5\"}\n[2026-05-11 11:25:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"74339c0c-f6c2-469a-876c-8a6f309b870b\",\"trace_id\":\"57bc9ab7-00d0-4195-b1df-6c17f6073ca5\"}\n[2026-05-11 11:25:19] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"1c91005c-c360-4c74-89aa-1b7c0e908865\",\"trace_id\":\"032d420e-12db-42ca-a172-2924788e0857\"}\n[2026-05-11 11:25:19] local.INFO: Running pre-meeting notification command {\"correlation_id\":\"1c91005c-c360-4c74-89aa-1b7c0e908865\",\"trace_id\":\"032d420e-12db-42ca-a172-2924788e0857\"}\n[2026-05-11 11:25:20] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"1c91005c-c360-4c74-89aa-1b7c0e908865\",\"trace_id\":\"032d420e-12db-42ca-a172-2924788e0857\"}\n[2026-05-11 11:25:21] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"6207a193-64a4-4a14-a4da-0244e01a8d02\",\"trace_id\":\"94286bcd-ce54-409b-acbf-f05497e878d5\"}\n[2026-05-11 11:25:21] local.INFO: Running conference:monitor:start command for activities in (2026-05-11 11:15:00, 2026-05-11 11:20:00] {\"correlation_id\":\"6207a193-64a4-4a14-a4da-0244e01a8d02\",\"trace_id\":\"94286bcd-ce54-409b-acbf-f05497e878d5\"}\n[2026-05-11 11:25:21] local.INFO: [conference:monitor:start] No activities found in (2026-05-11 11:15:00, 2026-05-11 11:20:00] {\"correlation_id\":\"6207a193-64a4-4a14-a4da-0244e01a8d02\",\"trace_id\":\"94286bcd-ce54-409b-acbf-f05497e878d5\"}\n[2026-05-11 11:25:21] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"6207a193-64a4-4a14-a4da-0244e01a8d02\",\"trace_id\":\"94286bcd-ce54-409b-acbf-f05497e878d5\"}\n[2026-05-11 11:25:23] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"9aedd474-8219-4813-8aea-217bfc67d472\",\"trace_id\":\"ff6ce966-9c33-4aee-aa90-413efc6868ee\"}\n[2026-05-11 11:25:23] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesEnded {\"from\":\"11:20\",\"to\":\"11:25\"} {\"correlation_id\":\"9aedd474-8219-4813-8aea-217bfc67d472\",\"trace_id\":\"ff6ce966-9c33-4aee-aa90-413efc6868ee\"}\n[2026-05-11 11:25:23] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesWithUnfinishedSession {\"from\":\"01:15\",\"to\":\"01:20\"} {\"correlation_id\":\"9aedd474-8219-4813-8aea-217bfc67d472\",\"trace_id\":\"ff6ce966-9c33-4aee-aa90-413efc6868ee\"}\n[2026-05-11 11:25:23] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"9aedd474-8219-4813-8aea-217bfc67d472\",\"trace_id\":\"ff6ce966-9c33-4aee-aa90-413efc6868ee\"}\n[2026-05-11 11:25:25] local.NOTICE: Repairing HubSpot tokens start {\"correlation_id\":\"987a75bc-a84b-45b4-808e-0ff39500f7a2\",\"trace_id\":\"f1fbdcb4-3f7c-4a52-8f63-440b3b2a7546\"}\n[2026-05-11 11:25:25] local.INFO: Trying to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\"} {\"correlation_id\":\"987a75bc-a84b-45b4-808e-0ff39500f7a2\",\"trace_id\":\"f1fbdcb4-3f7c-4a52-8f63-440b3b2a7546\"}\n[2026-05-11 11:25:25] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"987a75bc-a84b-45b4-808e-0ff39500f7a2\",\"trace_id\":\"f1fbdcb4-3f7c-4a52-8f63-440b3b2a7546\"}\n[2026-05-11 11:25:25] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":59,\"provider\":\"hubspot\",\"refreshToken\":\"97b78f6e2cc49965c00c2492b602b02708b1392551e6b3f113fbaa48992af90b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"987a75bc-a84b-45b4-808e-0ff39500f7a2\",\"trace_id\":\"f1fbdcb4-3f7c-4a52-8f63-440b3b2a7546\"}\n[2026-05-11 11:25:25] local.ERROR: Failed to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"987a75bc-a84b-45b4-808e-0ff39500f7a2\",\"trace_id\":\"f1fbdcb4-3f7c-4a52-8f63-440b3b2a7546\"}\n[2026-05-11 11:25:25] local.INFO: Trying to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\"} {\"correlation_id\":\"987a75bc-a84b-45b4-808e-0ff39500f7a2\",\"trace_id\":\"f1fbdcb4-3f7c-4a52-8f63-440b3b2a7546\"}\n[2026-05-11 11:25:25] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"987a75bc-a84b-45b4-808e-0ff39500f7a2\",\"trace_id\":\"f1fbdcb4-3f7c-4a52-8f63-440b3b2a7546\"}\n[2026-05-11 11:25:25] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":306,\"provider\":\"hubspot\",\"refreshToken\":\"6fa6aa8cc641d131231acc3470f5c03cb3b07b2e580fb18f8acb3b1dbb72549b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"987a75bc-a84b-45b4-808e-0ff39500f7a2\",\"trace_id\":\"f1fbdcb4-3f7c-4a52-8f63-440b3b2a7546\"}\n[2026-05-11 11:25:25] local.ERROR: Failed to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"987a75bc-a84b-45b4-808e-0ff39500f7a2\",\"trace_id\":\"f1fbdcb4-3f7c-4a52-8f63-440b3b2a7546\"}\n[2026-05-11 11:25:25] local.INFO: Trying to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\"} {\"correlation_id\":\"987a75bc-a84b-45b4-808e-0ff39500f7a2\",\"trace_id\":\"f1fbdcb4-3f7c-4a52-8f63-440b3b2a7546\"}\n[2026-05-11 11:25:25] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"987a75bc-a84b-45b4-808e-0ff39500f7a2\",\"trace_id\":\"f1fbdcb4-3f7c-4a52-8f63-440b3b2a7546\"}\n[2026-05-11 11:25:25] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1372,\"provider\":\"hubspot\",\"refreshToken\":\"9aa73948c761da29dce46c177cf9aee1fde483a44169ca38723f9f0597d7a8c4\",\"state\":\"full-refresh\"} {\"correlation_id\":\"987a75bc-a84b-45b4-808e-0ff39500f7a2\",\"trace_id\":\"f1fbdcb4-3f7c-4a52-8f63-440b3b2a7546\"}\n[2026-05-11 11:25:26] local.ERROR: Failed to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"987a75bc-a84b-45b4-808e-0ff39500f7a2\",\"trace_id\":\"f1fbdcb4-3f7c-4a52-8f63-440b3b2a7546\"}\n[2026-05-11 11:25:26] local.NOTICE: Repairing HubSpot tokens end {\"total\":3,\"fixed\":0,\"failed\":3} {\"correlation_id\":\"987a75bc-a84b-45b4-808e-0ff39500f7a2\",\"trace_id\":\"f1fbdcb4-3f7c-4a52-8f63-440b3b2a7546\"}\n[2026-05-11 11:25:29] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"5d4e1958-fbe6-4d66-951e-5c771b847fe5\",\"trace_id\":\"96d78d87-41be-4810-a79b-5470998dcece\"}\n[2026-05-11 11:25:29] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"133c5926-7f70-4923-a68b-55746832213b\",\"trace_id\":\"48acb135-ad29-4985-b592-0faaccebf2c0\"}\n[2026-05-11 11:25:29] local.INFO: [HubSpot Journal Command] Starting polling service {\"correlation_id\":\"b0ec9af7-f57b-4ebc-87b6-7dbc78a96940\",\"trace_id\":\"2bbf0d9d-9953-4a75-9ca7-edd70428e670\"}\n[2026-05-11 11:25:29] local.INFO: [HubSpot Journal Polling] Service starting {\"memory_limit\":\"256M\",\"max_execution_time\":\"0\",\"initial_memory_mb\":60.0} {\"correlation_id\":\"b0ec9af7-f57b-4ebc-87b6-7dbc78a96940\",\"trace_id\":\"2bbf0d9d-9953-4a75-9ca7-edd70428e670\"}\n[2026-05-11 11:25:29] local.INFO: [HubSpot Journal Polling] Acquired polling lock {\"expires_at\":\"2026-05-11T11:27:29.353081Z\"} {\"correlation_id\":\"b0ec9af7-f57b-4ebc-87b6-7dbc78a96940\",\"trace_id\":\"2bbf0d9d-9953-4a75-9ca7-edd70428e670\"}\n[2026-05-11 11:25:29] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"133c5926-7f70-4923-a68b-55746832213b\",\"trace_id\":\"48acb135-ad29-4985-b592-0faaccebf2c0\"}\n[2026-05-11 11:25:29] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"5d4e1958-fbe6-4d66-951e-5c771b847fe5\",\"trace_id\":\"96d78d87-41be-4810-a79b-5470998dcece\"}\n[2026-05-11 11:25:29] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"b0ec9af7-f57b-4ebc-87b6-7dbc78a96940\",\"trace_id\":\"2bbf0d9d-9953-4a75-9ca7-edd70428e670\"}\n[2026-05-11 11:25:34] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"b0ec9af7-f57b-4ebc-87b6-7dbc78a96940\",\"trace_id\":\"2bbf0d9d-9953-4a75-9ca7-edd70428e670\"}\n[2026-05-11 11:25:39] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"b0ec9af7-f57b-4ebc-87b6-7dbc78a96940\",\"trace_id\":\"2bbf0d9d-9953-4a75-9ca7-edd70428e670\"}\n[2026-05-11 11:25:55] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"b0ec9af7-f57b-4ebc-87b6-7dbc78a96940\",\"trace_id\":\"2bbf0d9d-9953-4a75-9ca7-edd70428e670\"}\n[2026-05-11 11:26:05] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a99d73f6-411d-42b0-8c28-da9d1c933230\",\"trace_id\":\"2e817bae-0d3b-4e2a-95fa-e8b60230afa0\"}\n[2026-05-11 11:26:05] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"a99d73f6-411d-42b0-8c28-da9d1c933230\",\"trace_id\":\"2e817bae-0d3b-4e2a-95fa-e8b60230afa0\"}\n[2026-05-11 11:26:05] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a99d73f6-411d-42b0-8c28-da9d1c933230\",\"trace_id\":\"2e817bae-0d3b-4e2a-95fa-e8b60230afa0\"}\n[2026-05-11 11:26:07] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"aaaf82e1-db01-4dc8-8b3a-f9a9adb6f71f\",\"trace_id\":\"f994c3af-16b5-41e7-a656-6c3e8a080b27\"}\n[2026-05-11 11:26:07] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"aaaf82e1-db01-4dc8-8b3a-f9a9adb6f71f\",\"trace_id\":\"f994c3af-16b5-41e7-a656-6c3e8a080b27\"}\n[2026-05-11 11:26:08] local.NOTICE: Monitoring start {\"correlation_id\":\"061b98f3-e143-4719-a17a-3efd7afee74a\",\"trace_id\":\"b78da73c-6e65-443a-9807-4b2abfd60f3e\"}\n[2026-05-11 11:26:08] local.NOTICE: Monitoring end {\"correlation_id\":\"061b98f3-e143-4719-a17a-3efd7afee74a\",\"trace_id\":\"b78da73c-6e65-443a-9807-4b2abfd60f3e\"}\n[2026-05-11 11:26:10] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"3c656bfd-6169-4216-b065-dbda07c0aa2f\",\"trace_id\":\"3fd2e5b8-413b-4664-aa1d-1a40c1f5a808\"}\n[2026-05-11 11:26:11] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"3c656bfd-6169-4216-b065-dbda07c0aa2f\",\"trace_id\":\"3fd2e5b8-413b-4664-aa1d-1a40c1f5a808\"}\n[2026-05-11 11:26:14] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"fd30ed6e-5985-403f-ab2d-2ad7b1be0e07\",\"trace_id\":\"ee460540-e426-41ad-aab3-ed7bec97987c\"}\n[2026-05-11 11:26:15] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"fd30ed6e-5985-403f-ab2d-2ad7b1be0e07\",\"trace_id\":\"ee460540-e426-41ad-aab3-ed7bec97987c\"}\n[2026-05-11 11:26:15] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"fd30ed6e-5985-403f-ab2d-2ad7b1be0e07\",\"trace_id\":\"ee460540-e426-41ad-aab3-ed7bec97987c\"}\n[2026-05-11 11:26:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"fd30ed6e-5985-403f-ab2d-2ad7b1be0e07\",\"trace_id\":\"ee460540-e426-41ad-aab3-ed7bec97987c\"}\n[2026-05-11 11:26:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"635c6a57-9730-445e-99a7-db06ba33a420\",\"trace_id\":\"e787171a-c571-401e-8d98-e9a7db9246fb\"}\n[2026-05-11 11:26:16] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 11:24:00, 2026-05-11 11:26:00] {\"correlation_id\":\"635c6a57-9730-445e-99a7-db06ba33a420\",\"trace_id\":\"e787171a-c571-401e-8d98-e9a7db9246fb\"}\n[2026-05-11 11:26:16] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 11:24:00, 2026-05-11 11:26:00] {\"correlation_id\":\"635c6a57-9730-445e-99a7-db06ba33a420\",\"trace_id\":\"e787171a-c571-401e-8d98-e9a7db9246fb\"}\n[2026-05-11 11:26:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"635c6a57-9730-445e-99a7-db06ba33a420\",\"trace_id\":\"e787171a-c571-401e-8d98-e9a7db9246fb\"}\n[2026-05-11 11:26:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:sync-hubspot-objects\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"1471d927-3486-46c3-b314-b84b54c292a2\",\"trace_id\":\"9b35def3-02dd-46ef-a4d2-c19f2605bc15\"}\n[2026-05-11 11:26:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:sync-hubspot-objects\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"1471d927-3486-46c3-b314-b84b54c292a2\",\"trace_id\":\"9b35def3-02dd-46ef-a4d2-c19f2605bc15\"}\n[2026-05-11 11:26:18] local.INFO: [SyncHubspotObjects] Starting sync {\"team\":\"abae74b8-bfa8-4383-9a7f-89f4bf2bdbb4\",\"usage\":23366272,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"48273eee-77f1-4f8d-bc74-cddb605a83f7\",\"trace_id\":\"9b35def3-02dd-46ef-a4d2-c19f2605bc15\"}\n[2026-05-11 11:26:18] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"48273eee-77f1-4f8d-bc74-cddb605a83f7\",\"trace_id\":\"9b35def3-02dd-46ef-a4d2-c19f2605bc15\"}\n[2026-05-11 11:26:18] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"48273eee-77f1-4f8d-bc74-cddb605a83f7\",\"trace_id\":\"9b35def3-02dd-46ef-a4d2-c19f2605bc15\"}\n[2026-05-11 11:26:18] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"48273eee-77f1-4f8d-bc74-cddb605a83f7\",\"trace_id\":\"9b35def3-02dd-46ef-a4d2-c19f2605bc15\"}\n[2026-05-11 11:26:18] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"48273eee-77f1-4f8d-bc74-cddb605a83f7\",\"trace_id\":\"9b35def3-02dd-46ef-a4d2-c19f2605bc15\"}\n[2026-05-11 11:26:18] local.INFO: [HubSpot] Syncing opportunities using strategy: lastModified {\"team\":2} {\"correlation_id\":\"48273eee-77f1-4f8d-bc74-cddb605a83f7\",\"trace_id\":\"9b35def3-02dd-46ef-a4d2-c19f2605bc15\"}\n[2026-05-11 11:26:19] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.25,\"average_seconds_per_request\":0.25} {\"correlation_id\":\"48273eee-77f1-4f8d-bc74-cddb605a83f7\",\"trace_id\":\"9b35def3-02dd-46ef-a4d2-c19f2605bc15\"}\n[2026-05-11 11:26:19] local.INFO: [HubSpot] Synced opportunities {\"team\":2,\"strategies\":\"lastModified\",\"sync_count\":0,\"total\":0,\"last_synced_id\":null,\"duration_ms\":252.59} {\"correlation_id\":\"48273eee-77f1-4f8d-bc74-cddb605a83f7\",\"trace_id\":\"9b35def3-02dd-46ef-a4d2-c19f2605bc15\"}\n[2026-05-11 11:26:19] local.INFO: [SyncHubspotObjects] Sync finished {\"team\":\"abae74b8-bfa8-4383-9a7f-89f4bf2bdbb4\",\"provider\":\"hubspot\",\"status\":\"completed\",\"duration_ms\":295.86,\"usage\":23450240,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"48273eee-77f1-4f8d-bc74-cddb605a83f7\",\"trace_id\":\"9b35def3-02dd-46ef-a4d2-c19f2605bc15\"}\n[2026-05-11 11:26:19] local.INFO: [SyncHubspotObjects] Starting sync {\"team\":\"b2d49a54-b645-4637-a7ae-a86cfce6e8e4\",\"usage\":23428168,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"12dd4e4c-51c0-4fb8-88d7-6bb6a049a9aa\",\"trace_id\":\"9b35def3-02dd-46ef-a4d2-c19f2605bc15\"}\n[2026-05-11 11:26:19] local.WARNING: [HubSpot] Account not connected for user {\"userId\":\"2ac0447f-3c8c-4ce0-baeb-b63ddb76fa9b\",\"account\":null} {\"correlation_id\":\"12dd4e4c-51c0-4fb8-88d7-6bb6a049a9aa\",\"trace_id\":\"9b35def3-02dd-46ef-a4d2-c19f2605bc15\"}\n[2026-05-11 11:26:19] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"hubspot\",\"crm_owner\":130,\"team_id\":42} {\"correlation_id\":\"12dd4e4c-51c0-4fb8-88d7-6bb6a049a9aa\",\"trace_id\":\"9b35def3-02dd-46ef-a4d2-c19f2605bc15\"}\n[2026-05-11 11:26:19] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":42} {\"correlation_id\":\"12dd4e4c-51c0-4fb8-88d7-6bb6a049a9aa\",\"trace_id\":\"9b35def3-02dd-46ef-a4d2-c19f2605bc15\"}\n[2026-05-11 11:26:19] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":42} {\"correlation_id\":\"12dd4e4c-51c0-4fb8-88d7-6bb6a049a9aa\",\"trace_id\":\"9b35def3-02dd-46ef-a4d2-c19f2605bc15\"}\n[2026-05-11 11:26:19] local.INFO: [SyncHubspotObjects] Sync finished {\"team\":\"b2d49a54-b645-4637-a7ae-a86cfce6e8e4\",\"provider\":\"hubspot\",\"status\":\"disconnected\",\"duration_ms\":16.64,\"usage\":23416176,\"real_usage\":62914560,\"pid\":74083,\"reason\":\"Social account for HubSpot cannot be found. Please login to Jiminny to connect.\"} {\"correlation_id\":\"12dd4e4c-51c0-4fb8-88d7-6bb6a049a9aa\",\"trace_id\":\"9b35def3-02dd-46ef-a4d2-c19f2605bc15\"}\n[2026-05-11 11:26:19] local.INFO: [SyncHubspotObjects] Starting sync {\"team\":\"b2b115eb-93ce-4d1b-929c-173757df8fba\",\"usage\":23376928,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"b921c6a2-b5ca-4d11-b4e0-2f08ef01bae2\",\"trace_id\":\"9b35def3-02dd-46ef-a4d2-c19f2605bc15\"}\n[2026-05-11 11:26:19] local.WARNING: [HubSpot] Account not connected for user {\"userId\":\"33e34a7a-1c02-4f04-87ac-22c3a385e6e3\",\"account\":{\"Jiminny\\\\Models\\\\SocialAccount\":{\"id\":306,\"sociable_id\":109,\"provider_user_id\":\"11348452\",\"expires\":1701077403,\"refresh_token_expires\":null,\"provider\":\"hubspot\",\"state\":\"full-refresh\",\"auth_scope\":null,\"retry_after\":null,\"created_at\":\"2020-09-01 16:59:04\",\"updated_at\":\"2023-11-27 09:30:03\"}}} {\"correlation_id\":\"b921c6a2-b5ca-4d11-b4e0-2f08ef01bae2\",\"trace_id\":\"9b35def3-02dd-46ef-a4d2-c19f2605bc15\"}\n[2026-05-11 11:26:19] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"hubspot\",\"crm_owner\":109,\"team_id\":29} {\"correlation_id\":\"b921c6a2-b5ca-4d11-b4e0-2f08ef01bae2\",\"trace_id\":\"9b35def3-02dd-46ef-a4d2-c19f2605bc15\"}\n[2026-05-11 11:26:19] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":29} {\"correlation_id\":\"b921c6a2-b5ca-4d11-b4e0-2f08ef01bae2\",\"trace_id\":\"9b35def3-02dd-46ef-a4d2-c19f2605bc15\"}\n[2026-05-11 11:26:19] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":29} {\"correlation_id\":\"b921c6a2-b5ca-4d11-b4e0-2f08ef01bae2\",\"trace_id\":\"9b35def3-02dd-46ef-a4d2-c19f2605bc15\"}\n[2026-05-11 11:26:19] local.INFO: [SyncHubspotObjects] Sync finished {\"team\":\"b2b115eb-93ce-4d1b-929c-173757df8fba\",\"provider\":\"hubspot\",\"status\":\"disconnected\",\"duration_ms\":6.2,\"usage\":23438968,\"real_usage\":62914560,\"pid\":74083,\"reason\":\"Your HubSpot account has become disconnected. Please login to Jiminny to reconnect.\"} {\"correlation_id\":\"b921c6a2-b5ca-4d11-b4e0-2f08ef01bae2\",\"trace_id\":\"9b35def3-02dd-46ef-a4d2-c19f2605bc15\"}\n[2026-05-11 11:26:20] local.INFO: [SyncHubspotObjects] Starting sync {\"team\":\"c6b9d6b0-b48d-4832-a68c-a57d60651888\",\"usage\":23396472,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"3fc7effa-42f8-4728-89de-96d5454a0b40\",\"trace_id\":\"9b35def3-02dd-46ef-a4d2-c19f2605bc15\"}\n[2026-05-11 11:26:20] local.WARNING: [HubSpot] Account not connected for user {\"userId\":\"71e3aac5-fb66-47c5-a236-2d051ae3e319\",\"account\":null} {\"correlation_id\":\"3fc7effa-42f8-4728-89de-96d5454a0b40\",\"trace_id\":\"9b35def3-02dd-46ef-a4d2-c19f2605bc15\"}\n[2026-05-11 11:26:20] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"hubspot\",\"crm_owner\":256,\"team_id\":49} {\"correlation_id\":\"3fc7effa-42f8-4728-89de-96d5454a0b40\",\"trace_id\":\"9b35def3-02dd-46ef-a4d2-c19f2605bc15\"}\n[2026-05-11 11:26:20] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":49} {\"correlation_id\":\"3fc7effa-42f8-4728-89de-96d5454a0b40\",\"trace_id\":\"9b35def3-02dd-46ef-a4d2-c19f2605bc15\"}\n[2026-05-11 11:26:20] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":49} {\"correlation_id\":\"3fc7effa-42f8-4728-89de-96d5454a0b40\",\"trace_id\":\"9b35def3-02dd-46ef-a4d2-c19f2605bc15\"}\n[2026-05-11 11:26:20] local.INFO: [SyncHubspotObjects] Sync finished {\"team\":\"c6b9d6b0-b48d-4832-a68c-a57d60651888\",\"provider\":\"hubspot\",\"status\":\"disconnected\",\"duration_ms\":11.53,\"usage\":23412592,\"real_usage\":62914560,\"pid\":74083,\"reason\":\"Social account for HubSpot cannot be found. Please login to Jiminny to connect.\"} {\"correlation_id\":\"3fc7effa-42f8-4728-89de-96d5454a0b40\",\"trace_id\":\"9b35def3-02dd-46ef-a4d2-c19f2605bc15\"}\n[2026-05-11 11:26:20] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:notify-not-logged\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"715ea288-5a4f-4ef8-9ba7-1a028e040dd3\",\"trace_id\":\"c4a8233a-1917-4b3c-a419-8ac7e4bc790b\"}\n[2026-05-11 11:26:20] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:notify-not-logged\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"715ea288-5a4f-4ef8-9ba7-1a028e040dd3\",\"trace_id\":\"c4a8233a-1917-4b3c-a419-8ac7e4bc790b\"}\n[2026-05-11 11:26:24] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"7b26cf6e-025e-4bdc-8515-96b62ef1371d\",\"trace_id\":\"f11769d8-5451-47c0-93e8-8159d4fae8f2\"}\n[2026-05-11 11:26:24] local.INFO: [EmailSchedule] STARTING Inbox Sync {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"7b26cf6e-025e-4bdc-8515-96b62ef1371d\",\"trace_id\":\"f11769d8-5451-47c0-93e8-8159d4fae8f2\"}\n[2026-05-11 11:26:24] local.INFO: [EmailSchedule] FINISHED Inbox Sync {\"host\":\"docker_lamp_1\",\"events\":2} {\"correlation_id\":\"7b26cf6e-025e-4bdc-8515-96b62ef1371d\",\"trace_id\":\"f11769d8-5451-47c0-93e8-8159d4fae8f2\"}\n[2026-05-11 11:26:24] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"7b26cf6e-025e-4bdc-8515-96b62ef1371d\",\"trace_id\":\"f11769d8-5451-47c0-93e8-8159d4fae8f2\"}\n[2026-05-11 11:26:25] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"b0ec9af7-f57b-4ebc-87b6-7dbc78a96940\",\"trace_id\":\"2bbf0d9d-9953-4a75-9ca7-edd70428e670\"}\n[2026-05-11 11:26:25] local.WARNING: [HubSpot Journal Polling] Maximum empty results reached, stopping {\"empty_results\":5,\"max_empty_results\":5} {\"correlation_id\":\"b0ec9af7-f57b-4ebc-87b6-7dbc78a96940\",\"trace_id\":\"2bbf0d9d-9953-4a75-9ca7-edd70428e670\"}\n[2026-05-11 11:26:25] local.WARNING: [HubSpot Journal Polling] Maximum empty results reached, stopping {\"empty_results\":5,\"max_empty_results\":5} {\"correlation_id\":\"b0ec9af7-f57b-4ebc-87b6-7dbc78a96940\",\"trace_id\":\"2bbf0d9d-9953-4a75-9ca7-edd70428e670\"}\n[2026-05-11 11:26:25] local.INFO: [HubSpot Journal Polling] Service ending {\"runtime_seconds\":56,\"total_cycles\":5,\"files_downloaded\":0,\"empty_files\":0,\"other_portal_skipped\":0,\"total_events\":0,\"events_per_file\":0,\"avg_api_ms\":183.4,\"avg_download_ms\":0.0,\"avg_transform_ms\":0.0,\"avg_process_ms\":0.0,\"peak_memory_mb\":99.73} {\"correlation_id\":\"b0ec9af7-f57b-4ebc-87b6-7dbc78a96940\",\"trace_id\":\"2bbf0d9d-9953-4a75-9ca7-edd70428e670\"}\n[2026-05-11 11:26:25] local.INFO: [HubSpot Journal Polling] Saved offset to database on cleanup {\"offset\":\"019e15a9-9ea0-7da7-87bc-82592e3ccf0d\"} {\"correlation_id\":\"b0ec9af7-f57b-4ebc-87b6-7dbc78a96940\",\"trace_id\":\"2bbf0d9d-9953-4a75-9ca7-edd70428e670\"}\n[2026-05-11 11:26:25] local.INFO: [HubSpot Journal Polling] Released polling lock {\"correlation_id\":\"b0ec9af7-f57b-4ebc-87b6-7dbc78a96940\",\"trace_id\":\"2bbf0d9d-9953-4a75-9ca7-edd70428e670\"}\n[2026-05-11 11:26:27] local.INFO: [Sync Mailbox] Sync start {\"inbox_id\":59} {\"correlation_id\":\"8045d610-e06d-4c43-b050-c96719c041eb\",\"trace_id\":\"f11769d8-5451-47c0-93e8-8159d4fae8f2\"}\n[2026-05-11 11:26:27] local.INFO: [Inbox service] Skipping METADATA SYNC for inbox 59 due to unauthorized access to the mailbox {\"correlation_id\":\"8045d610-e06d-4c43-b050-c96719c041eb\",\"trace_id\":\"f11769d8-5451-47c0-93e8-8159d4fae8f2\"}\n[2026-05-11 11:26:27] local.INFO: [Sync Mailbox] Sync complete {\"inbox_id\":59} {\"correlation_id\":\"8045d610-e06d-4c43-b050-c96719c041eb\",\"trace_id\":\"f11769d8-5451-47c0-93e8-8159d4fae8f2\"}\n[2026-05-11 11:26:27] local.INFO: [Sync Mailbox] Sync start {\"inbox_id\":212} {\"correlation_id\":\"f0ce8e22-59e0-46dd-b2c5-eedff340eb69\",\"trace_id\":\"f11769d8-5451-47c0-93e8-8159d4fae8f2\"}\n[2026-05-11 11:26:27] local.INFO: [Inbox service] Skipping METADATA SYNC for inbox 212 due to unauthorized access to the mailbox {\"correlation_id\":\"f0ce8e22-59e0-46dd-b2c5-eedff340eb69\",\"trace_id\":\"f11769d8-5451-47c0-93e8-8159d4fae8f2\"}\n[2026-05-11 11:26:27] local.INFO: [Sync Mailbox] Sync complete {\"inbox_id\":212} {\"correlation_id\":\"f0ce8e22-59e0-46dd-b2c5-eedff340eb69\",\"trace_id\":\"f11769d8-5451-47c0-93e8-8159d4fae8f2\"}\n[2026-05-11 11:27:05] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"75156279-7be4-457c-9018-0ed5f2b71ece\",\"trace_id\":\"69ab8899-af88-4a59-aa9d-738e2a457aff\"}\n[2026-05-11 11:27:05] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"75156279-7be4-457c-9018-0ed5f2b71ece\",\"trace_id\":\"69ab8899-af88-4a59-aa9d-738e2a457aff\"}\n[2026-05-11 11:27:05] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"75156279-7be4-457c-9018-0ed5f2b71ece\",\"trace_id\":\"69ab8899-af88-4a59-aa9d-738e2a457aff\"}\n[2026-05-11 11:27:07] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"82543eca-07a5-4fea-b606-b3558eed2493\",\"trace_id\":\"e40912ea-8d3c-4efd-98f0-2a7cf164a747\"}\n[2026-05-11 11:27:07] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"82543eca-07a5-4fea-b606-b3558eed2493\",\"trace_id\":\"e40912ea-8d3c-4efd-98f0-2a7cf164a747\"}\n[2026-05-11 11:27:09] local.NOTICE: Monitoring start {\"correlation_id\":\"e1534ea8-4244-4acc-912e-a3a60b346318\",\"trace_id\":\"b54370a0-ad08-4592-8b24-1e299f6253d2\"}\n[2026-05-11 11:27:09] local.NOTICE: Monitoring end {\"correlation_id\":\"e1534ea8-4244-4acc-912e-a3a60b346318\",\"trace_id\":\"b54370a0-ad08-4592-8b24-1e299f6253d2\"}\n[2026-05-11 11:27:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"e9b5f04d-7de1-46a6-bbfd-7d801d83c969\",\"trace_id\":\"ae9ea732-d3a5-46a5-a90d-3ccdeb1d34e2\"}\n[2026-05-11 11:27:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"e9b5f04d-7de1-46a6-bbfd-7d801d83c969\",\"trace_id\":\"ae9ea732-d3a5-46a5-a90d-3ccdeb1d34e2\"}\n[2026-05-11 11:27:14] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"2d0630a6-5a05-4ba8-9e1c-667ff36e82e8\",\"trace_id\":\"d7fbe2e4-78d9-4165-9d02-62a411645dde\"}\n[2026-05-11 11:27:14] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"2d0630a6-5a05-4ba8-9e1c-667ff36e82e8\",\"trace_id\":\"d7fbe2e4-78d9-4165-9d02-62a411645dde\"}\n[2026-05-11 11:27:14] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"2d0630a6-5a05-4ba8-9e1c-667ff36e82e8\",\"trace_id\":\"d7fbe2e4-78d9-4165-9d02-62a411645dde\"}\n[2026-05-11 11:27:14] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"2d0630a6-5a05-4ba8-9e1c-667ff36e82e8\",\"trace_id\":\"d7fbe2e4-78d9-4165-9d02-62a411645dde\"}\n[2026-05-11 11:27:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a6824064-9371-4a7f-9421-f13eb7a243e1\",\"trace_id\":\"2ae1ddbf-db70-4743-8e84-9d9f892a7a3f\"}\n[2026-05-11 11:27:15] local.INFO: [EmailSchedule] STARTING batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"a6824064-9371-4a7f-9421-f13eb7a243e1\",\"trace_id\":\"2ae1ddbf-db70-4743-8e84-9d9f892a7a3f\"}\n[2026-05-11 11:27:15] local.INFO: [EmailSchedule] FINISHED batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"a6824064-9371-4a7f-9421-f13eb7a243e1\",\"trace_id\":\"2ae1ddbf-db70-4743-8e84-9d9f892a7a3f\"}\n[2026-05-11 11:27:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a6824064-9371-4a7f-9421-f13eb7a243e1\",\"trace_id\":\"2ae1ddbf-db70-4743-8e84-9d9f892a7a3f\"}\n[2026-05-11 11:27:18] local.INFO: [Jiminny\\Jobs\\Mailbox\\CreateBatches] processed 2 inboxes and created 0 batches {\"userId\":null,\"batchSize\":30,\"maxBatches\":1000} {\"correlation_id\":\"4ebc2d2e-016e-41d7-974c-d8bd5e2273fa\",\"trace_id\":\"2ae1ddbf-db70-4743-8e84-9d9f892a7a3f\"}\n[2026-05-11 11:28:06] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"0b5b93da-8f8c-4e1a-a9f3-07c7c6be8788\",\"trace_id\":\"1f495c0c-6ebe-4b37-ae0a-b8277d650772\"}\n[2026-05-11 11:28:06] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"0b5b93da-8f8c-4e1a-a9f3-07c7c6be8788\",\"trace_id\":\"1f495c0c-6ebe-4b37-ae0a-b8277d650772\"}\n[2026-05-11 11:28:06] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"0b5b93da-8f8c-4e1a-a9f3-07c7c6be8788\",\"trace_id\":\"1f495c0c-6ebe-4b37-ae0a-b8277d650772\"}\n[2026-05-11 11:28:08] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"ee35ed40-2d9c-4cde-87e1-77f73de19e99\",\"trace_id\":\"9583c234-22f4-40b4-b98c-ab29ada82cd5\"}\n[2026-05-11 11:28:08] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"ee35ed40-2d9c-4cde-87e1-77f73de19e99\",\"trace_id\":\"9583c234-22f4-40b4-b98c-ab29ada82cd5\"}\n[2026-05-11 11:28:10] local.NOTICE: Monitoring start {\"correlation_id\":\"f5b44dea-1891-4f8e-9cc0-48af37bfc48f\",\"trace_id\":\"3c933285-dfbd-4491-81d8-301b28104d23\"}\n[2026-05-11 11:28:10] local.NOTICE: Monitoring end {\"correlation_id\":\"f5b44dea-1891-4f8e-9cc0-48af37bfc48f\",\"trace_id\":\"3c933285-dfbd-4491-81d8-301b28104d23\"}\n[2026-05-11 11:28:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"7dbe716f-ac8c-425b-9f5e-098d751a070a\",\"trace_id\":\"b3e590b5-923a-4e54-a004-6076a8ac4eef\"}\n[2026-05-11 11:28:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"7dbe716f-ac8c-425b-9f5e-098d751a070a\",\"trace_id\":\"b3e590b5-923a-4e54-a004-6076a8ac4eef\"}\n[2026-05-11 11:28:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"5df1e38d-7d8f-445c-a127-f4c0f0536d9d\",\"trace_id\":\"727bf834-a59f-454c-bf47-4c802195e493\"}\n[2026-05-11 11:28:15] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"5df1e38d-7d8f-445c-a127-f4c0f0536d9d\",\"trace_id\":\"727bf834-a59f-454c-bf47-4c802195e493\"}\n[2026-05-11 11:28:15] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"5df1e38d-7d8f-445c-a127-f4c0f0536d9d\",\"trace_id\":\"727bf834-a59f-454c-bf47-4c802195e493\"}\n[2026-05-11 11:28:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"5df1e38d-7d8f-445c-a127-f4c0f0536d9d\",\"trace_id\":\"727bf834-a59f-454c-bf47-4c802195e493\"}\n[2026-05-11 11:28:17] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"e7494e56-e956-4ffc-affe-2a5c582aebfe\",\"trace_id\":\"6ac1061c-4a2a-462c-b9df-feab95ed9a09\"}\n[2026-05-11 11:28:17] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 11:26:00, 2026-05-11 11:28:00] {\"correlation_id\":\"e7494e56-e956-4ffc-affe-2a5c582aebfe\",\"trace_id\":\"6ac1061c-4a2a-462c-b9df-feab95ed9a09\"}\n[2026-05-11 11:28:17] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 11:26:00, 2026-05-11 11:28:00] {\"correlation_id\":\"e7494e56-e956-4ffc-affe-2a5c582aebfe\",\"trace_id\":\"6ac1061c-4a2a-462c-b9df-feab95ed9a09\"}\n[2026-05-11 11:28:17] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"e7494e56-e956-4ffc-affe-2a5c582aebfe\",\"trace_id\":\"6ac1061c-4a2a-462c-b9df-feab95ed9a09\"}\n[2026-05-11 11:28:19] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"158a2c16-4980-46f8-9618-8cb297bb1ebb\",\"trace_id\":\"c44b3725-52b3-4c11-8ca9-fc920753fba4\"}\n[2026-05-11 11:28:19] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"calendar:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:19] local.NOTICE: Calendar sync start {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:19] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"158a2c16-4980-46f8-9618-8cb297bb1ebb\",\"trace_id\":\"c44b3725-52b3-4c11-8ca9-fc920753fba4\"}\n[2026-05-11 11:28:19] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1393,\"provider\":\"google\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:19] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1393,\"provider\":\"google\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:19] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:19] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1393,\"provider\":\"google\",\"refreshToken\":\"5aa7e2d96b53201cd16fca5d2e4ef3ad03320971fc064781d18aee3ae7b99fbf\",\"state\":\"full-refresh\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1393,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Account has been deleted\"}} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1393,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1387,\"provider\":\"google\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1387,\"provider\":\"google\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1387,\"provider\":\"google\",\"refreshToken\":\"8157ac6de94842937194009e9c50e459253600f799dacf6a40755ffdbeb5bba6\",\"state\":\"full-refresh\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1387,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Account has been deleted\"}} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1387,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1348,\"provider\":\"google\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1348,\"provider\":\"google\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1348,\"provider\":\"google\",\"refreshToken\":\"9e7d13d3032d0cb1b79d8e95aef01383e8e91eb52ff8ee960c8a0b6b95cd8c73\",\"state\":\"full-refresh\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1348,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1348,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1361,\"provider\":\"google\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1361,\"provider\":\"google\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1361,\"provider\":\"google\",\"refreshToken\":\"6c843da199c2b9907445329304fcc4ec5057a4ee748d8299641764395c08e1fd\",\"state\":\"full-refresh\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1361,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Account has been deleted\"}} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1361,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1310,\"provider\":\"google\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1310,\"provider\":\"google\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1310,\"provider\":\"google\",\"refreshToken\":\"e34818922c2830a660813a63f6169a4a9a992ae2cccd7dc8dd7796cfdb470ef1\",\"state\":\"full-refresh\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1310,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1310,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1333,\"provider\":\"google\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1333,\"provider\":\"google\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1333,\"provider\":\"google\",\"refreshToken\":\"6c902986546d8e8da1dc539b046cdc1d458f519acc972e5b5f1d6a1a295165e0\",\"state\":\"full-refresh\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1333,\"provider\":\"google\",\"responseBody\":{\"error\":\"unauthorized_client\",\"error_description\":\"Unauthorized\"}} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1333,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1368,\"provider\":\"google\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1368,\"provider\":\"google\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1368,\"provider\":\"google\",\"refreshToken\":\"d2f128898ff8543bd16b69cfae37896ab85119b0f5ed2b431d739593bb600333\",\"state\":\"full-refresh\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:21] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1368,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:21] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:21] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1368,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:21] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1365,\"provider\":\"google\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:21] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1365,\"provider\":\"google\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:21] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:21] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1365,\"provider\":\"google\",\"refreshToken\":\"7676e4a9afcd082b413248ab5ec6e487021fec6a9bdf315860a59cefad9caad8\",\"state\":\"full-refresh\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:21] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1365,\"provider\":\"google\",\"responseBody\":{\"error\":\"unauthorized_client\",\"error_description\":\"Unauthorized\"}} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:21] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:21] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1365,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:21] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1364,\"provider\":\"google\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:21] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1364,\"provider\":\"google\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:21] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:21] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1364,\"provider\":\"google\",\"refreshToken\":\"dd5882ebce76e645292ce33ae74238abbb77c0a4ecc6a2bfe723cad82e72ba8e\",\"state\":\"full-refresh\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:21] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1364,\"provider\":\"google\",\"responseBody\":{\"error\":\"unauthorized_client\",\"error_description\":\"Unauthorized\"}} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:21] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:21] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1364,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:21] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1370,\"provider\":\"office\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:21] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1370,\"provider\":\"office\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:21] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:21] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1370,\"provider\":\"office\",\"refreshToken\":\"b7ee8035306d0043cea6e00e7c4fe14f745e44074a1194db62a31cdf8b70af3e\",\"state\":\"full-refresh\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:21] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1370,\"provider\":\"office\",\"responseBody\":\"{\\\"error\\\":\\\"invalid_client\\\",\\\"error_description\\\":\\\"AADSTS7000215: Invalid client secret provided. Ensure the secret being sent in the request is the client secret value, not the client secret ID, for a secret added to app 'bbcbb2ef-6200-4fae-82bd-d81f5dd738da'. Trace ID: d110f131-9860-4d7e-88b3-e8530bbb2300 Correlation ID: 2c4331a5-6504-47c7-b060-bd5387180980 Timestamp: 2026-05-11 11:28:21Z\\\",\\\"error_codes\\\":[7000215],\\\"timestamp\\\":\\\"2026-05-11 11:28:21Z\\\",\\\"trace_id\\\":\\\"d110f131-9860-4d7e-88b3-e8530bbb2300\\\",\\\"correlation_id\\\":\\\"2c4331a5-6504-47c7-b060-bd5387180980\\\",\\\"error_uri\\\":\\\"https://login.microsoftonline.com/error?code=7000215\\\"}\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:21] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:21] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1370,\"provider\":\"office\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:21] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1202,\"provider\":\"office\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:21] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1202,\"provider\":\"office\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:21] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:21] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1202,\"provider\":\"office\",\"refreshToken\":\"b458799ccc29b21a6e2eb5260fdb63e49ccba21bf942a3973fb63799bd7f0afe\",\"state\":\"full-refresh\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:22] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1202,\"provider\":\"office\",\"responseBody\":\"{\\\"error\\\":\\\"invalid_client\\\",\\\"error_description\\\":\\\"AADSTS7000215: Invalid client secret provided. Ensure the secret being sent in the request is the client secret value, not the client secret ID, for a secret added to app 'bbcbb2ef-6200-4fae-82bd-d81f5dd738da'. Trace ID: 1c37dfe7-6666-43cf-8fd8-3a87fce32300 Correlation ID: 24510f33-56ce-4087-8169-ecf9d861bae3 Timestamp: 2026-05-11 11:28:22Z\\\",\\\"error_codes\\\":[7000215],\\\"timestamp\\\":\\\"2026-05-11 11:28:22Z\\\",\\\"trace_id\\\":\\\"1c37dfe7-6666-43cf-8fd8-3a87fce32300\\\",\\\"correlation_id\\\":\\\"24510f33-56ce-4087-8169-ecf9d861bae3\\\",\\\"error_uri\\\":\\\"https://login.microsoftonline.com/error?code=7000215\\\"}\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:22] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:22] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1202,\"provider\":\"office\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:22] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:22] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:22] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:22] local.INFO: Calendar sync job dispatched {\"calendar_id\":501} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:22] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1300,\"provider\":\"google\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:22] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1300,\"provider\":\"google\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:22] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:22] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1300,\"provider\":\"google\",\"refreshToken\":\"4b811db0725fd9602a95943519a7da935e2a5065da7d9ebfcb170752e3e1ddb8\",\"state\":\"full-refresh\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:22] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1300,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Account has been deleted\"}} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:22] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:22] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1300,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:22] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1409,\"provider\":\"google\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:22] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1409,\"provider\":\"google\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:22] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:22] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1409,\"provider\":\"google\",\"refreshToken\":\"e2a3f2d06894894eed1ee87d9db1ace77d4d42ee6e1288a8940ad2c10333b0c4\",\"state\":\"full-refresh\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:22] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1409,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:22] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:22] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1409,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:22] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1352,\"provider\":\"google\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:22] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1352,\"provider\":\"google\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:22] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:22] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1352,\"provider\":\"google\",\"refreshToken\":\"dd4b16b00fdc1216da6b717c02338c073636e29162826b2de6db3f064fc029eb\",\"state\":\"full-refresh\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:22] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1352,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Token has been expired or revoked.\"}} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:22] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:22] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1352,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:22] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1296,\"provider\":\"office\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:22] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1296,\"provider\":\"office\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:22] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:22] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1296,\"provider\":\"office\",\"refreshToken\":\"011ae723c9d800c674e0b4be76f49fc046dac7d501b66c59ef0d9549cfa56ae5\",\"state\":\"full-refresh\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:23] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1296,\"provider\":\"office\",\"responseBody\":\"{\\\"error\\\":\\\"invalid_client\\\",\\\"error_description\\\":\\\"AADSTS7000215: Invalid client secret provided. Ensure the secret being sent in the request is the client secret value, not the client secret ID, for a secret added to app 'bbcbb2ef-6200-4fae-82bd-d81f5dd738da'. Trace ID: bb896323-6a97-48d4-bb3d-500f7b1d2000 Correlation ID: ba707c5f-8f7b-4890-9dd3-e5d0e6f0133e Timestamp: 2026-05-11 11:28:23Z\\\",\\\"error_codes\\\":[7000215],\\\"timestamp\\\":\\\"2026-05-11 11:28:23Z\\\",\\\"trace_id\\\":\\\"bb896323-6a97-48d4-bb3d-500f7b1d2000\\\",\\\"correlation_id\\\":\\\"ba707c5f-8f7b-4890-9dd3-e5d0e6f0133e\\\",\\\"error_uri\\\":\\\"https://login.microsoftonline.com/error?code=7000215\\\"}\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:23] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:23] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1296,\"provider\":\"office\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:23] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":391,\"provider\":\"office\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:23] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":391,\"provider\":\"office\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:23] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:23] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":391,\"provider\":\"office\",\"refreshToken\":\"00045eebae0f39b34887c6d53f92ae78064f7145e1f4b67754aebd03cfb2d881\",\"state\":\"full-refresh\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:24] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"4e6b0159-2cb1-4cd3-a131-dab75cc7716d\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:24] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"4e6b0159-2cb1-4cd3-a131-dab75cc7716d\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:24] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4e6b0159-2cb1-4cd3-a131-dab75cc7716d\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:24] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":391,\"provider\":\"office\",\"responseBody\":\"{\\\"error\\\":\\\"invalid_client\\\",\\\"error_description\\\":\\\"AADSTS7000215: Invalid client secret provided. Ensure the secret being sent in the request is the client secret value, not the client secret ID, for a secret added to app 'bbcbb2ef-6200-4fae-82bd-d81f5dd738da'. Trace ID: f1ddbfc1-909b-4659-8661-99d8ba932300 Correlation ID: cddc65c1-7281-49cf-851f-e1b9103ca9bc Timestamp: 2026-05-11 11:28:24Z\\\",\\\"error_codes\\\":[7000215],\\\"timestamp\\\":\\\"2026-05-11 11:28:24Z\\\",\\\"trace_id\\\":\\\"f1ddbfc1-909b-4659-8661-99d8ba932300\\\",\\\"correlation_id\\\":\\\"cddc65c1-7281-49cf-851f-e1b9103ca9bc\\\",\\\"error_uri\\\":\\\"https://login.microsoftonline.com/error?code=7000215\\\"}\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:24] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:24] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":391,\"provider\":\"office\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:24] local.INFO: [Calendar] Processing sync {\"calendarId\":\"a33076c1-8d97-431a-99f0-85c9524e118b\",\"from\":null,\"to\":null,\"delta\":\"CIiFh8TP44kDEIiFh8TP44kDGAUgkZvkzgIokZvkzgI=\",\"last_sync\":\"2024-12-09 07:12:53\",\"dateMode\":\"daily\"} {\"correlation_id\":\"4e6b0159-2cb1-4cd3-a131-dab75cc7716d\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:24] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1271,\"provider\":\"office\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:24] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1271,\"provider\":\"office\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:24] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:24] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1271,\"provider\":\"office\",\"refreshToken\":\"118cde2c06993147b07ccaec4cbcd5026a819dea6c71081166a492933e392afb\",\"state\":\"full-refresh\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:24] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"integration-app\",\"crm_owner\":1695,\"team_id\":3143} {\"correlation_id\":\"4e6b0159-2cb1-4cd3-a131-dab75cc7716d\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:24] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"4e6b0159-2cb1-4cd3-a131-dab75cc7716d\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:24] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"4e6b0159-2cb1-4cd3-a131-dab75cc7716d\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:24] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4e6b0159-2cb1-4cd3-a131-dab75cc7716d\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:24] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1271,\"provider\":\"office\",\"responseBody\":\"{\\\"error\\\":\\\"invalid_client\\\",\\\"error_description\\\":\\\"AADSTS7000215: Invalid client secret provided. Ensure the secret being sent in the request is the client secret value, not the client secret ID, for a secret added to app 'bbcbb2ef-6200-4fae-82bd-d81f5dd738da'. Trace ID: 15b968ac-ade9-4993-b2db-272c0cfb0700 Correlation ID: 2e83270b-54ef-4a9a-85d2-d579994d2823 Timestamp: 2026-05-11 11:28:24Z\\\",\\\"error_codes\\\":[7000215],\\\"timestamp\\\":\\\"2026-05-11 11:28:24Z\\\",\\\"trace_id\\\":\\\"15b968ac-ade9-4993-b2db-272c0cfb0700\\\",\\\"correlation_id\\\":\\\"2e83270b-54ef-4a9a-85d2-d579994d2823\\\",\\\"error_uri\\\":\\\"https://login.microsoftonline.com/error?code=7000215\\\"}\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:24] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:24] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1271,\"provider\":\"office\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:24] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1351,\"provider\":\"google\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:24] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1351,\"provider\":\"google\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:24] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:24] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1351,\"provider\":\"google\",\"refreshToken\":\"4271d15b9e60a606439caddc68337f783e472c85b03dacff14d1b6dfded9051c\",\"state\":\"full-refresh\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:24] local.INFO: [Google Calendar] Failed to watch channel for calendar {\"calendarId\":\"a33076c1-8d97-431a-99f0-85c9524e118b\",\"code\":400,\"reason\":\"{\n \\\"error\\\": {\n \\\"errors\\\": [\n {\n \\\"domain\\\": \\\"global\\\",\n \\\"reason\\\": \\\"push.webhookUrlNotHttps\\\",\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n ],\n \\\"code\\\": 400,\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n}\"} {\"correlation_id\":\"4e6b0159-2cb1-4cd3-a131-dab75cc7716d\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:24] local.WARNING: [Calendar] Sync failed {\"calendarId\":\"a33076c1-8d97-431a-99f0-85c9524e118b\",\"code\":400,\"reason\":\"{\n \\\"error\\\": {\n \\\"errors\\\": [\n {\n \\\"domain\\\": \\\"global\\\",\n \\\"reason\\\": \\\"push.webhookUrlNotHttps\\\",\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n ],\n \\\"code\\\": 400,\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n}\"} {\"correlation_id\":\"4e6b0159-2cb1-4cd3-a131-dab75cc7716d\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:24] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1351,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:25] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:25] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1351,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:25] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1366,\"provider\":\"google\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:25] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1366,\"provider\":\"google\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:25] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:25] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1366,\"provider\":\"google\",\"refreshToken\":\"ae21385059b2eebfd43f68aecd56eccd702a1aabb6598f1f7ab594ed8af491b4\",\"state\":\"full-refresh\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:25] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1366,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:25] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:25] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1366,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:25] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:25] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:25] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:25] local.INFO: Calendar sync job dispatched {\"calendar_id\":378} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:25] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1421,\"provider\":\"office\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:25] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1421,\"provider\":\"office\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:25] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:25] local.INFO: Calendar sync job dispatched {\"calendar_id\":504} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:25] local.NOTICE: Calendar sync end {\"retrieved_calendars\":31,\"processed_calendars\":3} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:25] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"calendar:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":62.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:26] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"fcb3d942-0c58-49d5-960f-80a2b4916ce8\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:26] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"fcb3d942-0c58-49d5-960f-80a2b4916ce8\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:26] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"fcb3d942-0c58-49d5-960f-80a2b4916ce8\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:26] local.INFO: [Calendar] Processing sync {\"calendarId\":\"2676cb6d-f86c-427e-bf78-591e388e3c1e\",\"from\":null,\"to\":null,\"delta\":\"CJ_x49O3jpIDEJ_x49O3jpIDGAUgw67KlwMow67KlwM=\",\"last_sync\":\"2026-01-19 07:48:40\",\"dateMode\":\"daily\"} {\"correlation_id\":\"fcb3d942-0c58-49d5-960f-80a2b4916ce8\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:26] local.WARNING: [Pipedrive] Account not connected for user {\"userId\":\"e6538737-e7b4-455f-a37a-3e79b665a220\",\"account\":{\"Jiminny\\\\Models\\\\SocialAccount\":{\"id\":1116,\"sociable_id\":241,\"provider_user_id\":\"19555731\",\"expires\":1775683749,\"refresh_token_expires\":null,\"provider\":\"pipedrive\",\"state\":\"full-refresh\",\"auth_scope\":\"base,deals:full,activities:full,contacts:full,search:read\",\"retry_after\":null,\"created_at\":\"2023-09-08 09:44:29\",\"updated_at\":\"2026-04-08 22:58:34\"}}} {\"correlation_id\":\"fcb3d942-0c58-49d5-960f-80a2b4916ce8\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:26] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"pipedrive\",\"crm_owner\":241,\"team_id\":19} {\"correlation_id\":\"fcb3d942-0c58-49d5-960f-80a2b4916ce8\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:26] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"pipedrive\",\"team_id\":19} {\"correlation_id\":\"fcb3d942-0c58-49d5-960f-80a2b4916ce8\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:26] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"pipedrive\",\"team_id\":19} {\"correlation_id\":\"fcb3d942-0c58-49d5-960f-80a2b4916ce8\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:26] local.WARNING: [Calendar] CRM disconnected for user so events will not be matched {\"provider\":\"pipedrive\",\"user_id\":241,\"message\":\"Your Pipedrive account has become disconnected. Please login to Jiminny to reconnect.\"} {\"correlation_id\":\"fcb3d942-0c58-49d5-960f-80a2b4916ce8\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:26] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"fcb3d942-0c58-49d5-960f-80a2b4916ce8\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:26] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"fcb3d942-0c58-49d5-960f-80a2b4916ce8\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:26] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"fcb3d942-0c58-49d5-960f-80a2b4916ce8\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:27] local.INFO: [Google Calendar] Failed to watch channel for calendar {\"calendarId\":\"2676cb6d-f86c-427e-bf78-591e388e3c1e\",\"code\":400,\"reason\":\"{\n \\\"error\\\": {\n \\\"errors\\\": [\n {\n \\\"domain\\\": \\\"global\\\",\n \\\"reason\\\": \\\"push.webhookUrlNotHttps\\\",\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n ],\n \\\"code\\\": 400,\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n}\"} {\"correlation_id\":\"fcb3d942-0c58-49d5-960f-80a2b4916ce8\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:27] local.WARNING: [Calendar] Sync failed {\"calendarId\":\"2676cb6d-f86c-427e-bf78-591e388e3c1e\",\"code\":400,\"reason\":\"{\n \\\"error\\\": {\n \\\"errors\\\": [\n {\n \\\"domain\\\": \\\"global\\\",\n \\\"reason\\\": \\\"push.webhookUrlNotHttps\\\",\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n ],\n \\\"code\\\": 400,\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n}\"} {\"correlation_id\":\"fcb3d942-0c58-49d5-960f-80a2b4916ce8\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1421,\"provider\":\"office\"} {\"correlation_id\":\"e0caf59f-ef2d-4d7d-b8d2-548cc5aedb07\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1421,\"provider\":\"office\"} {\"correlation_id\":\"e0caf59f-ef2d-4d7d-b8d2-548cc5aedb07\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e0caf59f-ef2d-4d7d-b8d2-548cc5aedb07\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:27] local.INFO: [Calendar] Processing sync {\"calendarId\":\"9e8b1a2c-1a8f-42bd-b161-810fc0baf540\",\"from\":null,\"to\":null,\"delta\":\"R0usmcdvmMuZCBYV0hguCLlvcOB4kXlhlC7KgH1SnZwTrZ3faZv1fXPQqJhxe_L9AxWWlb-wASsjGiiWlhsBUg9MFb3ZdlAYerVV_ZirRPbsKWCxEXhybD90arJmok_M4ecGFUQ9_BIGu-c6RAnJy2TRKZ7gPTsJi_8TGceGAuqimlhm4G4mjDLvYVVwImjjU7M3xJvUzL47dLOGNTJCww.k1TST0VEYCgbFOkwa3ysYMi100FtVfkzfqlXLnV6gPg\",\"last_sync\":\"2026-05-11 06:13:36\",\"dateMode\":\"daily\"} {\"correlation_id\":\"e0caf59f-ef2d-4d7d-b8d2-548cc5aedb07\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e0caf59f-ef2d-4d7d-b8d2-548cc5aedb07\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:27] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e0caf59f-ef2d-4d7d-b8d2-548cc5aedb07\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e0caf59f-ef2d-4d7d-b8d2-548cc5aedb07\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:27] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1499,\"provider\":\"hubspot\",\"refreshToken\":\"96f94c623a404e02ebdbf07f1b75707bb6cdbf848cbf45d418baf608c41a8d86\",\"state\":\"connected\"} {\"correlation_id\":\"e0caf59f-ef2d-4d7d-b8d2-548cc5aedb07\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:27] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"e0caf59f-ef2d-4d7d-b8d2-548cc5aedb07\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:27] local.INFO: [SocialAccountObserver] Access token was modified, encrypting {\"correlation_id\":\"e0caf59f-ef2d-4d7d-b8d2-548cc5aedb07\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:28] local.INFO: [SocialAccountService] Token refreshed {\"socialAccountId\":1499,\"provider\":\"hubspot\",\"state\":\"connected\"} {\"correlation_id\":\"e0caf59f-ef2d-4d7d-b8d2-548cc5aedb07\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:28] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":89,\"team_id\":2} {\"correlation_id\":\"e0caf59f-ef2d-4d7d-b8d2-548cc5aedb07\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:28] local.INFO: [MS Office Calendar] Skipping delta sync for daily mode {\"calendarId\":\"9e8b1a2c-1a8f-42bd-b161-810fc0baf540\"} {\"correlation_id\":\"e0caf59f-ef2d-4d7d-b8d2-548cc5aedb07\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:29:05] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"ab4d1d36-5cda-4a0d-9bce-397e37640510\",\"trace_id\":\"5cafc2a4-1917-4a26-bcb7-7d09815a8113\"}\n[2026-05-11 11:29:05] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"ab4d1d36-5cda-4a0d-9bce-397e37640510\",\"trace_id\":\"5cafc2a4-1917-4a26-bcb7-7d09815a8113\"}\n[2026-05-11 11:29:05] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"ab4d1d36-5cda-4a0d-9bce-397e37640510\",\"trace_id\":\"5cafc2a4-1917-4a26-bcb7-7d09815a8113\"}\n[2026-05-11 11:29:07] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"398335bc-9558-4e78-a470-303347e5cb07\",\"trace_id\":\"228e4d51-9626-4a21-9219-341a10a72134\"}\n[2026-05-11 11:29:07] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"398335bc-9558-4e78-a470-303347e5cb07\",\"trace_id\":\"228e4d51-9626-4a21-9219-341a10a72134\"}\n[2026-05-11 11:29:09] local.NOTICE: Monitoring start {\"correlation_id\":\"ab8bbff9-92b2-4ea9-9144-7c73e59a2512\",\"trace_id\":\"d9383e1a-aa30-49f9-929e-ba549279f46c\"}\n[2026-05-11 11:29:09] local.NOTICE: Monitoring end {\"correlation_id\":\"ab8bbff9-92b2-4ea9-9144-7c73e59a2512\",\"trace_id\":\"d9383e1a-aa30-49f9-929e-ba549279f46c\"}\n[2026-05-11 11:29:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"71f7d896-3e71-4734-bf0e-bbf50c0b3d92\",\"trace_id\":\"ab6b38fc-861f-468b-8650-768b2764d057\"}\n[2026-05-11 11:29:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"71f7d896-3e71-4734-bf0e-bbf50c0b3d92\",\"trace_id\":\"ab6b38fc-861f-468b-8650-768b2764d057\"}\n[2026-05-11 11:29:13] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"83ee973b-76b5-4968-9c7e-fc24ea70371c\",\"trace_id\":\"23470df3-fb69-43c4-8c46-01d45d8e9156\"}\n[2026-05-11 11:29:13] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"83ee973b-76b5-4968-9c7e-fc24ea70371c\",\"trace_id\":\"23470df3-fb69-43c4-8c46-01d45d8e9156\"}\n[2026-05-11 11:29:13] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"83ee973b-76b5-4968-9c7e-fc24ea70371c\",\"trace_id\":\"23470df3-fb69-43c4-8c46-01d45d8e9156\"}\n[2026-05-11 11:29:13] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"83ee973b-76b5-4968-9c7e-fc24ea70371c\",\"trace_id\":\"23470df3-fb69-43c4-8c46-01d45d8e9156\"}\n[2026-05-11 11:30:06] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"3dfec64a-7673-425f-a93a-4dac1ba6e711\",\"trace_id\":\"76e0e1b0-8958-41e3-b48b-cde7f534b0e1\"}\n[2026-05-11 11:30:06] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"3dfec64a-7673-425f-a93a-4dac1ba6e711\",\"trace_id\":\"76e0e1b0-8958-41e3-b48b-cde7f534b0e1\"}\n[2026-05-11 11:30:06] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"3dfec64a-7673-425f-a93a-4dac1ba6e711\",\"trace_id\":\"76e0e1b0-8958-41e3-b48b-cde7f534b0e1\"}\n[2026-05-11 11:30:08] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"4d9e21c1-a3da-4bcc-a739-92731d054be7\",\"trace_id\":\"2b3b0026-4b4a-4209-87bf-f377593c3f05\"}\n[2026-05-11 11:30:08] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"4d9e21c1-a3da-4bcc-a739-92731d054be7\",\"trace_id\":\"2b3b0026-4b4a-4209-87bf-f377593c3f05\"}\n[2026-05-11 11:30:10] local.NOTICE: Monitoring start {\"correlation_id\":\"74a0e37f-fe37-4186-a3ea-aee5d038d66e\",\"trace_id\":\"fb3c6bdf-ae20-4895-94d5-a233a112ac45\"}\n[2026-05-11 11:30:10] local.NOTICE: Monitoring end {\"correlation_id\":\"74a0e37f-fe37-4186-a3ea-aee5d038d66e\",\"trace_id\":\"fb3c6bdf-ae20-4895-94d5-a233a112ac45\"}\n[2026-05-11 11:30:13] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"2c0f05cd-74ed-45d1-bd8a-08c28c62de8b\",\"trace_id\":\"bce86ae5-b821-4c5e-b241-7d94012b40d3\"}\n[2026-05-11 11:30:13] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"2c0f05cd-74ed-45d1-bd8a-08c28c62de8b\",\"trace_id\":\"bce86ae5-b821-4c5e-b241-7d94012b40d3\"}\n[2026-05-11 11:30:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"87a037b4-d5c3-4475-837b-6e1be374ddb6\",\"trace_id\":\"ae9d9811-c79a-458c-b4c4-e61103e37d4d\"}\n[2026-05-11 11:30:15] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"87a037b4-d5c3-4475-837b-6e1be374ddb6\",\"trace_id\":\"ae9d9811-c79a-458c-b4c4-e61103e37d4d\"}\n[2026-05-11 11:30:15] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"87a037b4-d5c3-4475-837b-6e1be374ddb6\",\"trace_id\":\"ae9d9811-c79a-458c-b4c4-e61103e37d4d\"}\n[2026-05-11 11:30:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"87a037b4-d5c3-4475-837b-6e1be374ddb6\",\"trace_id\":\"ae9d9811-c79a-458c-b4c4-e61103e37d4d\"}\n[2026-05-11 11:30:17] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"c962d8bd-b520-4477-8061-bca021082da4\",\"trace_id\":\"7fe69df2-ffbf-4a09-bbb8-4b25c7f6cb42\"}\n[2026-05-11 11:30:17] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 11:28:00, 2026-05-11 11:30:00] {\"correlation_id\":\"c962d8bd-b520-4477-8061-bca021082da4\",\"trace_id\":\"7fe69df2-ffbf-4a09-bbb8-4b25c7f6cb42\"}\n[2026-05-11 11:30:17] local.INFO: [conference:monitor:count] Push to Datadog jiminny.conference {\"activity_id\":432231,\"activity_status\":\"failed\",\"company\":\"jiminny\",\"provider\":\"google-meet\",\"timeframe\":\"(2026-05-11 11:28:00, 2026-05-11 11:30:00]\"} {\"correlation_id\":\"c962d8bd-b520-4477-8061-bca021082da4\",\"trace_id\":\"7fe69df2-ffbf-4a09-bbb8-4b25c7f6cb42\"}\n[2026-05-11 11:30:17] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"c962d8bd-b520-4477-8061-bca021082da4\",\"trace_id\":\"7fe69df2-ffbf-4a09-bbb8-4b25c7f6cb42\"}\n[2026-05-11 11:30:19] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"ddf867bf-61ec-4e6a-b8c3-d50c64f89aa9\",\"trace_id\":\"6ec5e944-6b80-4fdd-9ba4-e8f529dc4568\"}\n[2026-05-11 11:30:19] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"ddf867bf-61ec-4e6a-b8c3-d50c64f89aa9\",\"trace_id\":\"6ec5e944-6b80-4fdd-9ba4-e8f529dc4568\"}\n[2026-05-11 11:30:22] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"c9476012-6e8c-4b8a-909c-c3634b065ce2\",\"trace_id\":\"da25f065-14ea-4d45-a389-791cb1963997\"}\n[2026-05-11 11:30:22] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"c9476012-6e8c-4b8a-909c-c3634b065ce2\",\"trace_id\":\"da25f065-14ea-4d45-a389-791cb1963997\"}\n[2026-05-11 11:30:24] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"6b0a13fc-f608-4aa8-a537-b3cfa54f28d2\",\"trace_id\":\"5167771a-0f8a-4a68-bbd1-d4c6db4c5ebe\"}\n[2026-05-11 11:30:25] local.INFO: Running pre-meeting notification command {\"correlation_id\":\"6b0a13fc-f608-4aa8-a537-b3cfa54f28d2\",\"trace_id\":\"5167771a-0f8a-4a68-bbd1-d4c6db4c5ebe\"}\n[2026-05-11 11:30:25] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"6b0a13fc-f608-4aa8-a537-b3cfa54f28d2\",\"trace_id\":\"5167771a-0f8a-4a68-bbd1-d4c6db4c5ebe\"}\n[2026-05-11 11:30:28] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"4809e333-be69-44e0-ab39-c551c37b49f1\",\"trace_id\":\"d255198d-2929-45be-abae-52c5bb9db4bc\"}\n[2026-05-11 11:30:28] local.INFO: Running conference:monitor:start command for activities in (2026-05-11 11:20:00, 2026-05-11 11:25:00] {\"correlation_id\":\"4809e333-be69-44e0-ab39-c551c37b49f1\",\"trace_id\":\"d255198d-2929-45be-abae-52c5bb9db4bc\"}\n[2026-05-11 11:30:28] local.INFO: [conference:monitor:start] No activities found in (2026-05-11 11:20:00, 2026-05-11 11:25:00] {\"correlation_id\":\"4809e333-be69-44e0-ab39-c551c37b49f1\",\"trace_id\":\"d255198d-2929-45be-abae-52c5bb9db4bc\"}\n[2026-05-11 11:30:28] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"4809e333-be69-44e0-ab39-c551c37b49f1\",\"trace_id\":\"d255198d-2929-45be-abae-52c5bb9db4bc\"}\n[2026-05-11 11:30:35] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"572da9a9-932c-44ab-bbea-38b3ad498b62\",\"trace_id\":\"47ccc1e5-0df6-4a99-a4f9-e3384e909889\"}\n[2026-05-11 11:30:35] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesEnded {\"from\":\"11:25\",\"to\":\"11:30\"} {\"correlation_id\":\"572da9a9-932c-44ab-bbea-38b3ad498b62\",\"trace_id\":\"47ccc1e5-0df6-4a99-a4f9-e3384e909889\"}\n[2026-05-11 11:30:35] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesWithUnfinishedSession {\"from\":\"01:20\",\"to\":\"01:25\"} {\"correlation_id\":\"572da9a9-932c-44ab-bbea-38b3ad498b62\",\"trace_id\":\"47ccc1e5-0df6-4a99-a4f9-e3384e909889\"}\n[2026-05-11 11:30:35] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"572da9a9-932c-44ab-bbea-38b3ad498b62\",\"trace_id\":\"47ccc1e5-0df6-4a99-a4f9-e3384e909889\"}\n[2026-05-11 11:30:42] local.NOTICE: Repairing HubSpot tokens start {\"correlation_id\":\"ee757e15-f88c-410c-9dfd-7ca7e954f174\",\"trace_id\":\"e26657e9-b855-42cf-8ffa-b610a94172cd\"}\n[2026-05-11 11:30:42] local.INFO: Trying to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\"} {\"correlation_id\":\"ee757e15-f88c-410c-9dfd-7ca7e954f174\",\"trace_id\":\"e26657e9-b855-42cf-8ffa-b610a94172cd\"}\n[2026-05-11 11:30:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ee757e15-f88c-410c-9dfd-7ca7e954f174\",\"trace_id\":\"e26657e9-b855-42cf-8ffa-b610a94172cd\"}\n[2026-05-11 11:30:42] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":59,\"provider\":\"hubspot\",\"refreshToken\":\"97b78f6e2cc49965c00c2492b602b02708b1392551e6b3f113fbaa48992af90b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"ee757e15-f88c-410c-9dfd-7ca7e954f174\",\"trace_id\":\"e26657e9-b855-42cf-8ffa-b610a94172cd\"}\n[2026-05-11 11:30:42] local.ERROR: Failed to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"ee757e15-f88c-410c-9dfd-7ca7e954f174\",\"trace_id\":\"e26657e9-b855-42cf-8ffa-b610a94172cd\"}\n[2026-05-11 11:30:42] local.INFO: Trying to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\"} {\"correlation_id\":\"ee757e15-f88c-410c-9dfd-7ca7e954f174\",\"trace_id\":\"e26657e9-b855-42cf-8ffa-b610a94172cd\"}\n[2026-05-11 11:30:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ee757e15-f88c-410c-9dfd-7ca7e954f174\",\"trace_id\":\"e26657e9-b855-42cf-8ffa-b610a94172cd\"}\n[2026-05-11 11:30:42] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":306,\"provider\":\"hubspot\",\"refreshToken\":\"6fa6aa8cc641d131231acc3470f5c03cb3b07b2e580fb18f8acb3b1dbb72549b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"ee757e15-f88c-410c-9dfd-7ca7e954f174\",\"trace_id\":\"e26657e9-b855-42cf-8ffa-b610a94172cd\"}\n[2026-05-11 11:30:43] local.ERROR: Failed to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"ee757e15-f88c-410c-9dfd-7ca7e954f174\",\"trace_id\":\"e26657e9-b855-42cf-8ffa-b610a94172cd\"}\n[2026-05-11 11:30:43] local.INFO: Trying to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\"} {\"correlation_id\":\"ee757e15-f88c-410c-9dfd-7ca7e954f174\",\"trace_id\":\"e26657e9-b855-42cf-8ffa-b610a94172cd\"}\n[2026-05-11 11:30:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ee757e15-f88c-410c-9dfd-7ca7e954f174\",\"trace_id\":\"e26657e9-b855-42cf-8ffa-b610a94172cd\"}\n[2026-05-11 11:30:43] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1372,\"provider\":\"hubspot\",\"refreshToken\":\"9aa73948c761da29dce46c177cf9aee1fde483a44169ca38723f9f0597d7a8c4\",\"state\":\"full-refresh\"} {\"correlation_id\":\"ee757e15-f88c-410c-9dfd-7ca7e954f174\",\"trace_id\":\"e26657e9-b855-42cf-8ffa-b610a94172cd\"}\n[2026-05-11 11:30:43] local.ERROR: Failed to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"ee757e15-f88c-410c-9dfd-7ca7e954f174\",\"trace_id\":\"e26657e9-b855-42cf-8ffa-b610a94172cd\"}\n[2026-05-11 11:30:43] local.NOTICE: Repairing HubSpot tokens end {\"total\":3,\"fixed\":0,\"failed\":3} {\"correlation_id\":\"ee757e15-f88c-410c-9dfd-7ca7e954f174\",\"trace_id\":\"e26657e9-b855-42cf-8ffa-b610a94172cd\"}\n[2026-05-11 11:30:51] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"81fd74c8-2c4b-4d38-89f6-77ac8905c741\",\"trace_id\":\"de02a777-afa7-432e-8d00-6000cf4529a1\"}\n[2026-05-11 11:30:51] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"jiminny:transcription:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"7c918475-da47-4160-b989-8d55979401f4\",\"trace_id\":\"7bf6040a-aa3b-48cb-a569-8a3896ed9fb2\"}\n[2026-05-11 11:30:52] local.INFO: [HubSpot Journal Command] Starting polling service {\"correlation_id\":\"19a9f55f-344c-41fc-9a24-4809004a0dfe\",\"trace_id\":\"38755cbd-4512-4605-ad38-493563300576\"}\n[2026-05-11 11:30:52] local.INFO: [HubSpot Journal Polling] Service starting {\"memory_limit\":\"256M\",\"max_execution_time\":\"0\",\"initial_memory_mb\":60.0} {\"correlation_id\":\"19a9f55f-344c-41fc-9a24-4809004a0dfe\",\"trace_id\":\"38755cbd-4512-4605-ad38-493563300576\"}\n[2026-05-11 11:30:52] local.INFO: [HubSpot Journal Polling] Acquired polling lock {\"expires_at\":\"2026-05-11T11:32:52.138967Z\"} {\"correlation_id\":\"19a9f55f-344c-41fc-9a24-4809004a0dfe\",\"trace_id\":\"38755cbd-4512-4605-ad38-493563300576\"}\n[2026-05-11 11:30:52] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"jiminny:transcription:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"7c918475-da47-4160-b989-8d55979401f4\",\"trace_id\":\"7bf6040a-aa3b-48cb-a569-8a3896ed9fb2\"}\n[2026-05-11 11:30:52] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"81fd74c8-2c4b-4d38-89f6-77ac8905c741\",\"trace_id\":\"de02a777-afa7-432e-8d00-6000cf4529a1\"}\n[2026-05-11 11:30:52] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"19a9f55f-344c-41fc-9a24-4809004a0dfe\",\"trace_id\":\"38755cbd-4512-4605-ad38-493563300576\"}\n[2026-05-11 11:30:55] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:reset-governor\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"ae93d9cd-cae3-4bb6-af7f-b919fa377861\",\"trace_id\":\"e265cbc6-32d8-4351-a78d-644d0f37f7e5\"}\n[2026-05-11 11:30:55] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:reset-governor\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"ae93d9cd-cae3-4bb6-af7f-b919fa377861\",\"trace_id\":\"e265cbc6-32d8-4351-a78d-644d0f37f7e5\"}\n[2026-05-11 11:30:57] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"19a9f55f-344c-41fc-9a24-4809004a0dfe\",\"trace_id\":\"38755cbd-4512-4605-ad38-493563300576\"}\n[2026-05-11 11:31:00] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"55c98953-bdea-4594-a81d-05ec9158a6d1\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:00] local.INFO: Dispatching activity sync job {\"import_id\":812707,\"provider\":\"twilio-flex\",\"team\":\"jiminny\"} {\"correlation_id\":\"55c98953-bdea-4594-a81d-05ec9158a6d1\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:00] local.INFO: Dispatching activity sync job {\"import_id\":812708,\"provider\":\"xant\",\"team\":\"jiminny\"} {\"correlation_id\":\"55c98953-bdea-4594-a81d-05ec9158a6d1\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:00] local.INFO: Dispatching activity sync job {\"import_id\":812709,\"provider\":\"apollo\",\"team\":\"jiminny\"} {\"correlation_id\":\"55c98953-bdea-4594-a81d-05ec9158a6d1\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:00] local.INFO: Dispatching activity sync job {\"import_id\":812710,\"provider\":\"groove\",\"team\":\"jiminny\"} {\"correlation_id\":\"55c98953-bdea-4594-a81d-05ec9158a6d1\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:00] local.INFO: Dispatching activity sync job {\"import_id\":812711,\"provider\":\"twilio-video\",\"team\":\"jiminny\"} {\"correlation_id\":\"55c98953-bdea-4594-a81d-05ec9158a6d1\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:00] local.INFO: Dispatching activity sync job {\"import_id\":812712,\"provider\":\"hubspot\",\"team\":\"hubspot\"} {\"correlation_id\":\"55c98953-bdea-4594-a81d-05ec9158a6d1\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:00] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"55c98953-bdea-4594-a81d-05ec9158a6d1\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:01] local.WARNING: [Salesforce] Account not connected for user {\"userId\":\"cdf8b554-d951-4758-bc2b-c1b85d1cd0b9\",\"account\":null} {\"correlation_id\":\"cc016559-47de-4a5e-a8a2-5010ad7caf36\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:01] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"salesforce\",\"crm_owner\":3,\"team_id\":1} {\"correlation_id\":\"cc016559-47de-4a5e-a8a2-5010ad7caf36\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:01] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"salesforce\",\"team_id\":1} {\"correlation_id\":\"cc016559-47de-4a5e-a8a2-5010ad7caf36\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:01] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"salesforce\",\"team_id\":1} {\"correlation_id\":\"cc016559-47de-4a5e-a8a2-5010ad7caf36\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:01] local.ALERT: [SyncActivity] Failed {\"import_id\":812707,\"provider\":\"twilio-flex\",\"provider_id\":317,\"team\":\"jiminny\",\"team_id\":1,\"reason\":\"Social account for Salesforce cannot be found. Please login to Jiminny to connect.\",\"file\":\"/home/jiminny/app/Services/Crm/BaseService.php\",\"line\":646} {\"correlation_id\":\"cc016559-47de-4a5e-a8a2-5010ad7caf36\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:01] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"04b1aa54-2281-48f0-989b-ec987b644c73\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:01] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"04b1aa54-2281-48f0-989b-ec987b644c73\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:01] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"04b1aa54-2281-48f0-989b-ec987b644c73\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:02] local.ALERT: [SyncActivity] Failed {\"import_id\":812708,\"provider\":\"xant\",\"provider_id\":161,\"team\":\"jiminny\",\"team_id\":1,\"reason\":\"Activity Provider account not connected.\",\"file\":\"/home/jiminny/app/Services/Activity/ActivityProviderService.php\",\"line\":174} {\"correlation_id\":\"04b1aa54-2281-48f0-989b-ec987b644c73\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"bb4ced39-a1b6-4bdd-a927-4a4b5961bbcb\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"bb4ced39-a1b6-4bdd-a927-4a4b5961bbcb\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"bb4ced39-a1b6-4bdd-a927-4a4b5961bbcb\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:02] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:fail-stalled\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"081ec933-31e4-4201-b09f-4787fc648543\",\"trace_id\":\"c2c221a1-2399-42d1-97e5-b87b76c487bf\"}\n[2026-05-11 11:31:02] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:fail-stalled\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"081ec933-31e4-4201-b09f-4787fc648543\",\"trace_id\":\"c2c221a1-2399-42d1-97e5-b87b76c487bf\"}\n[2026-05-11 11:31:03] local.ALERT: [SyncActivity] Failed {\"import_id\":812709,\"provider\":\"apollo\",\"provider_id\":441,\"team\":\"jiminny\",\"team_id\":1,\"reason\":\"Activity Provider account not connected.\",\"file\":\"/home/jiminny/app/Services/Activity/ActivityProviderService.php\",\"line\":174} {\"correlation_id\":\"bb4ced39-a1b6-4bdd-a927-4a4b5961bbcb\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:03] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"958b63ab-aafc-42ef-afc4-2e3ed37426b1\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:03] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"958b63ab-aafc-42ef-afc4-2e3ed37426b1\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:03] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"958b63ab-aafc-42ef-afc4-2e3ed37426b1\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:03] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"19a9f55f-344c-41fc-9a24-4809004a0dfe\",\"trace_id\":\"38755cbd-4512-4605-ad38-493563300576\"}\n[2026-05-11 11:31:03] local.ALERT: [SyncActivity] Failed {\"import_id\":812710,\"provider\":\"groove\",\"provider_id\":228,\"team\":\"jiminny\",\"team_id\":1,\"reason\":\"Activity Provider account not connected.\",\"file\":\"/home/jiminny/app/Services/Activity/ActivityProviderService.php\",\"line\":174} {\"correlation_id\":\"958b63ab-aafc-42ef-afc4-2e3ed37426b1\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:03] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"3eb4e8b0-bf7d-43ee-ab5e-defcc50b92a2\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:03] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"3eb4e8b0-bf7d-43ee-ab5e-defcc50b92a2\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:03] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"3eb4e8b0-bf7d-43ee-ab5e-defcc50b92a2\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:04] local.ALERT: [SyncActivity] Failed {\"import_id\":812711,\"provider\":\"twilio-video\",\"provider_id\":243,\"team\":\"jiminny\",\"team_id\":1,\"reason\":\"Activity Provider account not connected.\",\"file\":\"/home/jiminny/app/Services/Activity/ActivityProviderService.php\",\"line\":174} {\"correlation_id\":\"3eb4e8b0-bf7d-43ee-ab5e-defcc50b92a2\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:04] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"fe7d208a-48e9-40b3-94c1-c03d605e717f\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:04] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"fe7d208a-48e9-40b3-94c1-c03d605e717f\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:04] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"fe7d208a-48e9-40b3-94c1-c03d605e717f\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:04] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":89,\"team_id\":2} {\"correlation_id\":\"fe7d208a-48e9-40b3-94c1-c03d605e717f\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:04] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":408,\"provider\":\"hubspot\"} {\"correlation_id\":\"fe7d208a-48e9-40b3-94c1-c03d605e717f\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:04] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":408,\"provider\":\"hubspot\"} {\"correlation_id\":\"fe7d208a-48e9-40b3-94c1-c03d605e717f\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:04] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"fe7d208a-48e9-40b3-94c1-c03d605e717f\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:04] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":408,\"provider\":\"hubspot\",\"refreshToken\":\"de4e47eb985578f4218833e763e31059e88b562e87e10749b3389be2328f0aa7\",\"state\":\"connected\"} {\"correlation_id\":\"fe7d208a-48e9-40b3-94c1-c03d605e717f\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:04] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"fe7d208a-48e9-40b3-94c1-c03d605e717f\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:04] local.INFO: [SocialAccountObserver] Access token was modified, encrypting {\"correlation_id\":\"fe7d208a-48e9-40b3-94c1-c03d605e717f\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:04] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"fc765491-1a8c-40e0-b742-a6508a4e90e0\",\"trace_id\":\"f182b9ea-f9bf-43d1-b628-81ed882e1df8\"}\n[2026-05-11 11:31:04] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"fc765491-1a8c-40e0-b742-a6508a4e90e0\",\"trace_id\":\"f182b9ea-f9bf-43d1-b628-81ed882e1df8\"}\n[2026-05-11 11:31:04] local.INFO: [SocialAccountService] Token refreshed {\"socialAccountId\":408,\"provider\":\"hubspot\",\"state\":\"connected\"} {\"correlation_id\":\"fe7d208a-48e9-40b3-94c1-c03d605e717f\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:04] local.INFO: [SyncActivity] Start {\"import_id\":812712,\"provider\":\"hubspot\",\"provider_id\":31,\"team\":\"hubspot\",\"team_id\":2} {\"correlation_id\":\"fe7d208a-48e9-40b3-94c1-c03d605e717f\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:05] local.INFO: [HubSpot] Search calls for period {\"from\":\"2026-05-11 11:14:00\",\"to\":\"2026-05-11 11:30:00\"} {\"correlation_id\":\"fe7d208a-48e9-40b3-94c1-c03d605e717f\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:05] local.INFO: [SyncActivity] End {\"import_id\":812712,\"provider\":\"hubspot\",\"provider_id\":31,\"team\":\"hubspot\",\"team_id\":2} {\"correlation_id\":\"fe7d208a-48e9-40b3-94c1-c03d605e717f\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:05] local.INFO: [SyncActivity] Memory usage {\"import_id\":812712,\"provider\":\"hubspot\",\"provider_id\":31,\"team\":\"hubspot\",\"team_id\":2,\"memory_usage\":25934592,\"memory_real_usage\":65011712,\"pid\":74086} {\"correlation_id\":\"fe7d208a-48e9-40b3-94c1-c03d605e717f\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:07] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"nudges:send\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"76b7f7ab-a127-4c84-926f-58ef6363dd27\",\"trace_id\":\"11f1ef21-fcdb-46af-b034-b906890c8b78\"}\n[2026-05-11 11:31:07] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"nudges:send\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"76b7f7ab-a127-4c84-926f-58ef6363dd27\",\"trace_id\":\"11f1ef21-fcdb-46af-b034-b906890c8b78\"}\n[2026-05-11 11:31:09] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"jiminny:playlists:normalize-sort\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"31b81e1d-353d-4ae9-8cea-f1cb64e1afac\",\"trace_id\":\"874a5b86-6c77-4f05-8358-25d91a76e358\"}\n[2026-05-11 11:31:09] local.INFO: [Jiminny\\Component\\Playlist\\Command\\NormalizeSortCommand::handle] starting. {\"playlists\":[]} {\"correlation_id\":\"31b81e1d-353d-4ae9-8cea-f1cb64e1afac\",\"trace_id\":\"874a5b86-6c77-4f05-8358-25d91a76e358\"}\n[2026-05-11 11:31:09] local.INFO: [Jiminny\\Component\\Playlist\\Command\\NormalizeSortCommand::handle] finished. {\"normalizedPlaylists\":[],\"deletedPlaylists\":[]} {\"correlation_id\":\"31b81e1d-353d-4ae9-8cea-f1cb64e1afac\",\"trace_id\":\"874a5b86-6c77-4f05-8358-25d91a76e358\"}\n[2026-05-11 11:31:09] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"jiminny:playlists:normalize-sort\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"31b81e1d-353d-4ae9-8cea-f1cb64e1afac\",\"trace_id\":\"874a5b86-6c77-4f05-8358-25d91a76e358\"}\n[2026-05-11 11:31:18] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"19a9f55f-344c-41fc-9a24-4809004a0dfe\",\"trace_id\":\"38755cbd-4512-4605-ad38-493563300576\"}\n[2026-05-11 11:31:48] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"19a9f55f-344c-41fc-9a24-4809004a0dfe\",\"trace_id\":\"38755cbd-4512-4605-ad38-493563300576\"}\n[2026-05-11 11:31:48] local.WARNING: [HubSpot Journal Polling] Maximum empty results reached, stopping {\"empty_results\":5,\"max_empty_results\":5} {\"correlation_id\":\"19a9f55f-344c-41fc-9a24-4809004a0dfe\",\"trace_id\":\"38755cbd-4512-4605-ad38-493563300576\"}\n[2026-05-11 11:31:48] local.WARNING: [HubSpot Journal Polling] Maximum empty results reached, stopping {\"empty_results\":5,\"max_empty_results\":5} {\"correlation_id\":\"19a9f55f-344c-41fc-9a24-4809004a0dfe\",\"trace_id\":\"38755cbd-4512-4605-ad38-493563300576\"}\n[2026-05-11 11:31:48] local.INFO: [HubSpot Journal Polling] Service ending {\"runtime_seconds\":56,\"total_cycles\":5,\"files_downloaded\":0,\"empty_files\":0,\"other_portal_skipped\":0,\"total_events\":0,\"events_per_file\":0,\"avg_api_ms\":274.6,\"avg_download_ms\":0.0,\"avg_transform_ms\":0.0,\"avg_process_ms\":0.0,\"peak_memory_mb\":99.73} {\"correlation_id\":\"19a9f55f-344c-41fc-9a24-4809004a0dfe\",\"trace_id\":\"38755cbd-4512-4605-ad38-493563300576\"}\n[2026-05-11 11:31:48] local.INFO: [HubSpot Journal Polling] Saved offset to database on cleanup {\"offset\":\"019e15a9-9ea0-7da7-87bc-82592e3ccf0d\"} {\"correlation_id\":\"19a9f55f-344c-41fc-9a24-4809004a0dfe\",\"trace_id\":\"38755cbd-4512-4605-ad38-493563300576\"}\n[2026-05-11 11:31:48] local.INFO: [HubSpot Journal Polling] Released polling lock {\"correlation_id\":\"19a9f55f-344c-41fc-9a24-4809004a0dfe\",\"trace_id\":\"38755cbd-4512-4605-ad38-493563300576\"}\n[2026-05-11 11:32:20] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"833f4f8b-8127-4454-b373-4b8212e284de\",\"trace_id\":\"144f4d20-e8e2-4ccc-b28b-8a76e30a3cd0\"}\n[2026-05-11 11:32:20] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"833f4f8b-8127-4454-b373-4b8212e284de\",\"trace_id\":\"144f4d20-e8e2-4ccc-b28b-8a76e30a3cd0\"}\n[2026-05-11 11:32:20] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"833f4f8b-8127-4454-b373-4b8212e284de\",\"trace_id\":\"144f4d20-e8e2-4ccc-b28b-8a76e30a3cd0\"}\n[2026-05-11 11:32:25] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"e2b69631-4e5e-49cf-aa9d-b98c4537202d\",\"trace_id\":\"b11af75c-ee3e-4c7f-98a5-129a6bd30853\"}\n[2026-05-11 11:32:25] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"e2b69631-4e5e-49cf-aa9d-b98c4537202d\",\"trace_id\":\"b11af75c-ee3e-4c7f-98a5-129a6bd30853\"}\n[2026-05-11 11:32:28] local.NOTICE: Monitoring start {\"correlation_id\":\"4a20a6c2-381f-400b-8e3e-b299d251cf2a\",\"trace_id\":\"b9c4ed2d-d650-465c-af65-add0679d2d3a\"}\n[2026-05-11 11:32:28] local.NOTICE: Monitoring end {\"correlation_id\":\"4a20a6c2-381f-400b-8e3e-b299d251cf2a\",\"trace_id\":\"b9c4ed2d-d650-465c-af65-add0679d2d3a\"}\n[2026-05-11 11:32:33] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"f73dd268-ee34-4bc6-95d7-bcce0b5765ab\",\"trace_id\":\"8cc81570-d909-4ac6-9727-3e7861260950\"}\n[2026-05-11 11:32:34] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"f73dd268-ee34-4bc6-95d7-bcce0b5765ab\",\"trace_id\":\"8cc81570-d909-4ac6-9727-3e7861260950\"}\n[2026-05-11 11:32:38] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"9d618ed1-a6ef-478d-98cd-db5c37094ec3\",\"trace_id\":\"cc9f9c1a-7863-4117-a9de-0ebe1442b605\"}\n[2026-05-11 11:32:38] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"9d618ed1-a6ef-478d-98cd-db5c37094ec3\",\"trace_id\":\"cc9f9c1a-7863-4117-a9de-0ebe1442b605\"}\n[2026-05-11 11:32:38] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"9d618ed1-a6ef-478d-98cd-db5c37094ec3\",\"trace_id\":\"cc9f9c1a-7863-4117-a9de-0ebe1442b605\"}\n[2026-05-11 11:32:38] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"9d618ed1-a6ef-478d-98cd-db5c37094ec3\",\"trace_id\":\"cc9f9c1a-7863-4117-a9de-0ebe1442b605\"}\n[2026-05-11 11:32:40] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"d3d14cd7-283a-4134-89b5-ef93171ed27d\",\"trace_id\":\"358aed33-3416-4a08-bb65-fc9837710d80\"}\n[2026-05-11 11:32:40] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 11:30:00, 2026-05-11 11:32:00] {\"correlation_id\":\"d3d14cd7-283a-4134-89b5-ef93171ed27d\",\"trace_id\":\"358aed33-3416-4a08-bb65-fc9837710d80\"}\n[2026-05-11 11:32:40] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 11:30:00, 2026-05-11 11:32:00] {\"correlation_id\":\"d3d14cd7-283a-4134-89b5-ef93171ed27d\",\"trace_id\":\"358aed33-3416-4a08-bb65-fc9837710d80\"}\n[2026-05-11 11:32:40] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"d3d14cd7-283a-4134-89b5-ef93171ed27d\",\"trace_id\":\"358aed33-3416-4a08-bb65-fc9837710d80\"}\n[2026-05-11 11:32:43] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"9b993ee8-2d09-4d30-8202-30bdccb8e131\",\"trace_id\":\"894c6598-be21-4753-8074-35885ec0b344\"}\n[2026-05-11 11:32:43] local.INFO: [EmailSchedule] STARTING batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"9b993ee8-2d09-4d30-8202-30bdccb8e131\",\"trace_id\":\"894c6598-be21-4753-8074-35885ec0b344\"}\n[2026-05-11 11:32:43] local.INFO: [EmailSchedule] FINISHED batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"9b993ee8-2d09-4d30-8202-30bdccb8e131\",\"trace_id\":\"894c6598-be21-4753-8074-35885ec0b344\"}\n[2026-05-11 11:32:43] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"9b993ee8-2d09-4d30-8202-30bdccb8e131\",\"trace_id\":\"894c6598-be21-4753-8074-35885ec0b344\"}\n[2026-05-11 11:32:45] local.INFO: [Jiminny\\Jobs\\Mailbox\\CreateBatches] processed 2 inboxes and created 0 batches {\"userId\":null,\"batchSize\":30,\"maxBatches\":1000} {\"correlation_id\":\"eccafadc-d0ff-4197-8a61-fdffedebe8a0\",\"trace_id\":\"894c6598-be21-4753-8074-35885ec0b344\"}\n[2026-05-11 11:33:09] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"c5bc7f30-e3fb-4263-8dee-2b9d8bb2b0a5\",\"trace_id\":\"e6eb4572-8cee-4ef8-9f3b-c5c94e01ffd5\"}\n[2026-05-11 11:33:10] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"c5bc7f30-e3fb-4263-8dee-2b9d8bb2b0a5\",\"trace_id\":\"e6eb4572-8cee-4ef8-9f3b-c5c94e01ffd5\"}\n[2026-05-11 11:33:10] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"c5bc7f30-e3fb-4263-8dee-2b9d8bb2b0a5\",\"trace_id\":\"e6eb4572-8cee-4ef8-9f3b-c5c94e01ffd5\"}\n[2026-05-11 11:33:13] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"15067ad9-0ac9-4899-964c-162f02e7f410\",\"trace_id\":\"2962fdf3-0b0f-4379-8f07-ff1457245422\"}\n[2026-05-11 11:33:13] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"15067ad9-0ac9-4899-964c-162f02e7f410\",\"trace_id\":\"2962fdf3-0b0f-4379-8f07-ff1457245422\"}\n[2026-05-11 11:33:15] local.NOTICE: Monitoring start {\"correlation_id\":\"091dbefd-e9da-49b4-834c-37e0005e080b\",\"trace_id\":\"94cbb97f-4b83-494f-8403-0f68bb5e9529\"}\n[2026-05-11 11:33:15] local.NOTICE: Monitoring end {\"correlation_id\":\"091dbefd-e9da-49b4-834c-37e0005e080b\",\"trace_id\":\"94cbb97f-4b83-494f-8403-0f68bb5e9529\"}\n[2026-05-11 11:33:17] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"cea4337c-5e77-4e26-a35f-e19700c6541a\",\"trace_id\":\"4aa67dd9-e193-4ff7-9cd2-a4f3afdd81a6\"}\n[2026-05-11 11:33:17] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"cea4337c-5e77-4e26-a35f-e19700c6541a\",\"trace_id\":\"4aa67dd9-e193-4ff7-9cd2-a4f3afdd81a6\"}\n[2026-05-11 11:33:19] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"4eff6429-116b-4507-b74c-abccfcf32241\",\"trace_id\":\"11b1ac9e-2397-4eef-9020-405ab0a96d26\"}\n[2026-05-11 11:33:19] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"4eff6429-116b-4507-b74c-abccfcf32241\",\"trace_id\":\"11b1ac9e-2397-4eef-9020-405ab0a96d26\"}\n[2026-05-11 11:33:19] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"4eff6429-116b-4507-b74c-abccfcf32241\",\"trace_id\":\"11b1ac9e-2397-4eef-9020-405ab0a96d26\"}\n[2026-05-11 11:33:19] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"4eff6429-116b-4507-b74c-abccfcf32241\",\"trace_id\":\"11b1ac9e-2397-4eef-9020-405ab0a96d26\"}\n[2026-05-11 11:33:21] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"dd1df744-9be2-4b6b-958a-d7837267bae7\",\"trace_id\":\"3bdd6871-dd44-421f-be94-913ccdd95198\"}\n[2026-05-11 11:33:21] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"dd1df744-9be2-4b6b-958a-d7837267bae7\",\"trace_id\":\"3bdd6871-dd44-421f-be94-913ccdd95198\"}\n[2026-05-11 11:34:10] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"f56a188a-615f-4573-aa99-4cdc382a41ec\",\"trace_id\":\"10d5dd3e-2384-49f2-817d-debefd5d63e7\"}\n[2026-05-11 11:34:10] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"f56a188a-615f-4573-aa99-4cdc382a41ec\",\"trace_id\":\"10d5dd3e-2384-49f2-817d-debefd5d63e7\"}\n[2026-05-11 11:34:10] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"f56a188a-615f-4573-aa99-4cdc382a41ec\",\"trace_id\":\"10d5dd3e-2384-49f2-817d-debefd5d63e7\"}\n[2026-05-11 11:34:13] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"8dc3021b-34ee-4c1d-aa2d-7eae23b7416c\",\"trace_id\":\"054c38ee-b1a6-4e5a-b26d-b78fdc977580\"}\n[2026-05-11 11:34:13] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"8dc3021b-34ee-4c1d-aa2d-7eae23b7416c\",\"trace_id\":\"054c38ee-b1a6-4e5a-b26d-b78fdc977580\"}\n[2026-05-11 11:34:15] local.NOTICE: Monitoring start {\"correlation_id\":\"fbb85f01-d3e9-470c-b13b-335347bec433\",\"trace_id\":\"92f550b4-50a5-44ae-bbc0-92e286d2f393\"}\n[2026-05-11 11:34:15] local.NOTICE: Monitoring end {\"correlation_id\":\"fbb85f01-d3e9-470c-b13b-335347bec433\",\"trace_id\":\"92f550b4-50a5-44ae-bbc0-92e286d2f393\"}\n[2026-05-11 11:34:17] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"36f69f07-dca5-43c4-9a0b-f63459c5911f\",\"trace_id\":\"ea3668fe-a7a5-4871-ae75-560ac8af134a\"}\n[2026-05-11 11:34:17] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"36f69f07-dca5-43c4-9a0b-f63459c5911f\",\"trace_id\":\"ea3668fe-a7a5-4871-ae75-560ac8af134a\"}\n[2026-05-11 11:34:19] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"99016640-1f4b-4651-af58-c13927850c9c\",\"trace_id\":\"b3ac58e0-76ea-4694-b2c1-4d0d738621aa\"}\n[2026-05-11 11:34:19] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"99016640-1f4b-4651-af58-c13927850c9c\",\"trace_id\":\"b3ac58e0-76ea-4694-b2c1-4d0d738621aa\"}\n[2026-05-11 11:34:19] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"99016640-1f4b-4651-af58-c13927850c9c\",\"trace_id\":\"b3ac58e0-76ea-4694-b2c1-4d0d738621aa\"}\n[2026-05-11 11:34:19] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"99016640-1f4b-4651-af58-c13927850c9c\",\"trace_id\":\"b3ac58e0-76ea-4694-b2c1-4d0d738621aa\"}\n[2026-05-11 11:34:21] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"4ec7157d-7b72-4a5c-a471-d4405ef1a6d6\",\"trace_id\":\"3dfd961c-9916-4ba2-b1ec-829f497c99dc\"}\n[2026-05-11 11:34:21] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 11:32:00, 2026-05-11 11:34:00] {\"correlation_id\":\"4ec7157d-7b72-4a5c-a471-d4405ef1a6d6\",\"trace_id\":\"3dfd961c-9916-4ba2-b1ec-829f497c99dc\"}\n[2026-05-11 11:34:21] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 11:32:00, 2026-05-11 11:34:00] {\"correlation_id\":\"4ec7157d-7b72-4a5c-a471-d4405ef1a6d6\",\"trace_id\":\"3dfd961c-9916-4ba2-b1ec-829f497c99dc\"}\n[2026-05-11 11:34:21] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"4ec7157d-7b72-4a5c-a471-d4405ef1a6d6\",\"trace_id\":\"3dfd961c-9916-4ba2-b1ec-829f497c99dc\"}\n[2026-05-11 11:35:08] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"3e49ecc8-1786-45e0-9b12-4b2b72351af7\",\"trace_id\":\"8cd3a4be-4f04-4dc3-afda-fafbffed47fe\"}\n[2026-05-11 11:35:08] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"3e49ecc8-1786-45e0-9b12-4b2b72351af7\",\"trace_id\":\"8cd3a4be-4f04-4dc3-afda-fafbffed47fe\"}\n[2026-05-11 11:35:08] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"3e49ecc8-1786-45e0-9b12-4b2b72351af7\",\"trace_id\":\"8cd3a4be-4f04-4dc3-afda-fafbffed47fe\"}\n[2026-05-11 11:35:13] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"154e23cd-63ba-458d-ab76-731b4b41a300\",\"trace_id\":\"b69059d0-74c3-4e9c-a6f2-6e81597171fe\"}\n[2026-05-11 11:35:13] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"154e23cd-63ba-458d-ab76-731b4b41a300\",\"trace_id\":\"b69059d0-74c3-4e9c-a6f2-6e81597171fe\"}\n[2026-05-11 11:35:17] local.NOTICE: Monitoring start {\"correlation_id\":\"806af418-1f84-43ab-889a-e6d4718331ad\",\"trace_id\":\"523e39f9-8535-44c7-b476-2d2d901ef261\"}\n[2026-05-11 11:35:17] local.NOTICE: Monitoring end {\"correlation_id\":\"806af418-1f84-43ab-889a-e6d4718331ad\",\"trace_id\":\"523e39f9-8535-44c7-b476-2d2d901ef261\"}\n[2026-05-11 11:35:21] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"dd7516d6-890e-49f1-8b1e-ebdcac563a95\",\"trace_id\":\"5e3bc94f-e5b3-41e6-a41a-7430e9fac1ff\"}\n[2026-05-11 11:35:21] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"dd7516d6-890e-49f1-8b1e-ebdcac563a95\",\"trace_id\":\"5e3bc94f-e5b3-41e6-a41a-7430e9fac1ff\"}\n[2026-05-11 11:35:25] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"81f9972f-f529-4ccd-b06e-3430d756eb83\",\"trace_id\":\"27d99d0b-f2f7-4b81-a804-3bc9a5a30d8a\"}\n[2026-05-11 11:35:25] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"81f9972f-f529-4ccd-b06e-3430d756eb83\",\"trace_id\":\"27d99d0b-f2f7-4b81-a804-3bc9a5a30d8a\"}\n[2026-05-11 11:35:25] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"81f9972f-f529-4ccd-b06e-3430d756eb83\",\"trace_id\":\"27d99d0b-f2f7-4b81-a804-3bc9a5a30d8a\"}\n[2026-05-11 11:35:25] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"81f9972f-f529-4ccd-b06e-3430d756eb83\",\"trace_id\":\"27d99d0b-f2f7-4b81-a804-3bc9a5a30d8a\"}\n[2026-05-11 11:35:32] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"aec05013-dc68-4fec-a9db-dc408d027301\",\"trace_id\":\"bb1dbfc4-61f1-4f3c-8002-5b63531bcb70\"}\n[2026-05-11 11:35:33] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"aec05013-dc68-4fec-a9db-dc408d027301\",\"trace_id\":\"bb1dbfc4-61f1-4f3c-8002-5b63531bcb70\"}\n[2026-05-11 11:35:36] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a3cf66e8-9c66-49a1-b8ab-f612b21ea566\",\"trace_id\":\"13710306-1983-4e67-85cc-01ee00846871\"}\n[2026-05-11 11:35:36] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a3cf66e8-9c66-49a1-b8ab-f612b21ea566\",\"trace_id\":\"13710306-1983-4e67-85cc-01ee00846871\"}\n[2026-05-11 11:35:40] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"78d0f0b4-6df5-440f-aef5-503af540bd8b\",\"trace_id\":\"29dc33ab-36f4-428c-916d-15c687b7a5ab\"}\n[2026-05-11 11:35:40] local.INFO: Running pre-meeting notification command {\"correlation_id\":\"78d0f0b4-6df5-440f-aef5-503af540bd8b\",\"trace_id\":\"29dc33ab-36f4-428c-916d-15c687b7a5ab\"}\n[2026-05-11 11:35:40] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"78d0f0b4-6df5-440f-aef5-503af540bd8b\",\"trace_id\":\"29dc33ab-36f4-428c-916d-15c687b7a5ab\"}\n[2026-05-11 11:35:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"cf501225-1da6-4535-82d4-93fb6a3203d9\",\"trace_id\":\"d9c8b814-53ac-4f4a-8970-b6dc8f05cd6f\"}\n[2026-05-11 11:35:42] local.INFO: Running conference:monitor:start command for activities in (2026-05-11 11:25:00, 2026-05-11 11:30:00] {\"correlation_id\":\"cf501225-1da6-4535-82d4-93fb6a3203d9\",\"trace_id\":\"d9c8b814-53ac-4f4a-8970-b6dc8f05cd6f\"}\n[2026-05-11 11:35:42] local.INFO: [conference:monitor:start] start ok {\"activity_id\":432231} {\"correlation_id\":\"cf501225-1da6-4535-82d4-93fb6a3203d9\",\"trace_id\":\"d9c8b814-53ac-4f4a-8970-b6dc8f05cd6f\"}\n[2026-05-11 11:35:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"cf501225-1da6-4535-82d4-93fb6a3203d9\",\"trace_id\":\"d9c8b814-53ac-4f4a-8970-b6dc8f05cd6f\"}\n[2026-05-11 11:35:45] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"9268b305-57d7-4cdc-9676-5643e26095d9\",\"trace_id\":\"e3c95e4d-8d20-47f2-a27d-21e3945c24ed\"}\n[2026-05-11 11:35:45] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesEnded {\"from\":\"11:30\",\"to\":\"11:35\"} {\"correlation_id\":\"9268b305-57d7-4cdc-9676-5643e26095d9\",\"trace_id\":\"e3c95e4d-8d20-47f2-a27d-21e3945c24ed\"}\n[2026-05-11 11:35:45] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesWithUnfinishedSession {\"from\":\"01:25\",\"to\":\"01:30\"} {\"correlation_id\":\"9268b305-57d7-4cdc-9676-5643e26095d9\",\"trace_id\":\"e3c95e4d-8d20-47f2-a27d-21e3945c24ed\"}\n[2026-05-11 11:35:45] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"9268b305-57d7-4cdc-9676-5643e26095d9\",\"trace_id\":\"e3c95e4d-8d20-47f2-a27d-21e3945c24ed\"}\n[2026-05-11 11:35:48] local.NOTICE: Repairing HubSpot tokens start {\"correlation_id\":\"b8292706-1dcd-4072-b788-b5c374fd4c9d\",\"trace_id\":\"70fd23fd-05e6-4af7-a3f6-2add924c585d\"}\n[2026-05-11 11:35:48] local.INFO: Trying to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\"} {\"correlation_id\":\"b8292706-1dcd-4072-b788-b5c374fd4c9d\",\"trace_id\":\"70fd23fd-05e6-4af7-a3f6-2add924c585d\"}\n[2026-05-11 11:35:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b8292706-1dcd-4072-b788-b5c374fd4c9d\",\"trace_id\":\"70fd23fd-05e6-4af7-a3f6-2add924c585d\"}\n[2026-05-11 11:35:48] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":59,\"provider\":\"hubspot\",\"refreshToken\":\"97b78f6e2cc49965c00c2492b602b02708b1392551e6b3f113fbaa48992af90b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"b8292706-1dcd-4072-b788-b5c374fd4c9d\",\"trace_id\":\"70fd23fd-05e6-4af7-a3f6-2add924c585d\"}\n[2026-05-11 11:35:48] local.ERROR: Failed to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"b8292706-1dcd-4072-b788-b5c374fd4c9d\",\"trace_id\":\"70fd23fd-05e6-4af7-a3f6-2add924c585d\"}\n[2026-05-11 11:35:48] local.INFO: Trying to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\"} {\"correlation_id\":\"b8292706-1dcd-4072-b788-b5c374fd4c9d\",\"trace_id\":\"70fd23fd-05e6-4af7-a3f6-2add924c585d\"}\n[2026-05-11 11:35:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b8292706-1dcd-4072-b788-b5c374fd4c9d\",\"trace_id\":\"70fd23fd-05e6-4af7-a3f6-2add924c585d\"}\n[2026-05-11 11:35:48] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":306,\"provider\":\"hubspot\",\"refreshToken\":\"6fa6aa8cc641d131231acc3470f5c03cb3b07b2e580fb18f8acb3b1dbb72549b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"b8292706-1dcd-4072-b788-b5c374fd4c9d\",\"trace_id\":\"70fd23fd-05e6-4af7-a3f6-2add924c585d\"}\n[2026-05-11 11:35:48] local.ERROR: Failed to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"b8292706-1dcd-4072-b788-b5c374fd4c9d\",\"trace_id\":\"70fd23fd-05e6-4af7-a3f6-2add924c585d\"}\n[2026-05-11 11:35:48] local.INFO: Trying to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\"} {\"correlation_id\":\"b8292706-1dcd-4072-b788-b5c374fd4c9d\",\"trace_id\":\"70fd23fd-05e6-4af7-a3f6-2add924c585d\"}\n[2026-05-11 11:35:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b8292706-1dcd-4072-b788-b5c374fd4c9d\",\"trace_id\":\"70fd23fd-05e6-4af7-a3f6-2add924c585d\"}\n[2026-05-11 11:35:48] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1372,\"provider\":\"hubspot\",\"refreshToken\":\"9aa73948c761da29dce46c177cf9aee1fde483a44169ca38723f9f0597d7a8c4\",\"state\":\"full-refresh\"} {\"correlation_id\":\"b8292706-1dcd-4072-b788-b5c374fd4c9d\",\"trace_id\":\"70fd23fd-05e6-4af7-a3f6-2add924c585d\"}\n[2026-05-11 11:35:49] local.ERROR: Failed to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"b8292706-1dcd-4072-b788-b5c374fd4c9d\",\"trace_id\":\"70fd23fd-05e6-4af7-a3f6-2add924c585d\"}\n[2026-05-11 11:35:49] local.NOTICE: Repairing HubSpot tokens end {\"total\":3,\"fixed\":0,\"failed\":3} {\"correlation_id\":\"b8292706-1dcd-4072-b788-b5c374fd4c9d\",\"trace_id\":\"70fd23fd-05e6-4af7-a3f6-2add924c585d\"}\n[2026-05-11 11:35:57] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"b7c9d05d-5879-4737-9b04-586f72c6b8f9\",\"trace_id\":\"166b9455-ab09-43c2-a9b6-daa2d1360d81\"}\n[2026-05-11 11:35:57] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"bdbc5b77-c5de-4aec-822c-ee6537449481\",\"trace_id\":\"fd9db7f0-b1c9-42ff-ba02-5afa64debd65\"}\n[2026-05-11 11:35:57] local.INFO: [HubSpot Journal Command] Starting polling service {\"correlation_id\":\"97a527a8-f15a-4069-b68e-682eb124a293\",\"trace_id\":\"cb4cd9e1-6d6d-4209-83c2-830bd85f46d9\"}\n[2026-05-11 11:35:57] local.INFO: [HubSpot Journal Polling] Service starting {\"memory_limit\":\"256M\",\"max_execution_time\":\"0\",\"initial_memory_mb\":60.0} {\"correlation_id\":\"97a527a8-f15a-4069-b68e-682eb124a293\",\"trace_id\":\"cb4cd9e1-6d6d-4209-83c2-830bd85f46d9\"}\n[2026-05-11 11:35:57] local.INFO: [HubSpot Journal Polling] Acquired polling lock {\"expires_at\":\"2026-05-11T11:37:57.588121Z\"} {\"correlation_id\":\"97a527a8-f15a-4069-b68e-682eb124a293\",\"trace_id\":\"cb4cd9e1-6d6d-4209-83c2-830bd85f46d9\"}\n[2026-05-11 11:35:57] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"b7c9d05d-5879-4737-9b04-586f72c6b8f9\",\"trace_id\":\"166b9455-ab09-43c2-a9b6-daa2d1360d81\"}\n[2026-05-11 11:35:57] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"bdbc5b77-c5de-4aec-822c-ee6537449481\",\"trace_id\":\"fd9db7f0-b1c9-42ff-ba02-5afa64debd65\"}\n[2026-05-11 11:35:57] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"97a527a8-f15a-4069-b68e-682eb124a293\",\"trace_id\":\"cb4cd9e1-6d6d-4209-83c2-830bd85f46d9\"}\n[2026-05-11 11:36:03] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"97a527a8-f15a-4069-b68e-682eb124a293\",\"trace_id\":\"cb4cd9e1-6d6d-4209-83c2-830bd85f46d9\"}\n[2026-05-11 11:36:08] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"97a527a8-f15a-4069-b68e-682eb124a293\",\"trace_id\":\"cb4cd9e1-6d6d-4209-83c2-830bd85f46d9\"}\n[2026-05-11 11:36:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"ed64c2dd-996e-4266-8af9-a1f391071bea\",\"trace_id\":\"c96ce0e2-d04c-4b01-bcf1-47d6fe7b4e56\"}\n[2026-05-11 11:36:12] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"ed64c2dd-996e-4266-8af9-a1f391071bea\",\"trace_id\":\"c96ce0e2-d04c-4b01-bcf1-47d6fe7b4e56\"}\n[2026-05-11 11:36:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"ed64c2dd-996e-4266-8af9-a1f391071bea\",\"trace_id\":\"c96ce0e2-d04c-4b01-bcf1-47d6fe7b4e56\"}\n[2026-05-11 11:36:13] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"435378ce-9096-4a0b-8445-944ba0ca771c\",\"trace_id\":\"3002214c-eba1-4ad9-a0bb-4452c1f69af2\"}\n[2026-05-11 11:36:13] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"435378ce-9096-4a0b-8445-944ba0ca771c\",\"trace_id\":\"3002214c-eba1-4ad9-a0bb-4452c1f69af2\"}\n[2026-05-11 11:36:17] local.NOTICE: Monitoring start {\"correlation_id\":\"cc89edc0-e903-448b-a83d-7ebfa770789a\",\"trace_id\":\"65b8c9fc-b1ac-4fcd-b138-d1af4b14c1f0\"}\n[2026-05-11 11:36:17] local.NOTICE: Monitoring end {\"correlation_id\":\"cc89edc0-e903-448b-a83d-7ebfa770789a\",\"trace_id\":\"65b8c9fc-b1ac-4fcd-b138-d1af4b14c1f0\"}\n[2026-05-11 11:36:19] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"9dc85070-9dc1-4821-9b21-bf71cb4a35a7\",\"trace_id\":\"6288c472-dd35-476f-ad35-d1988f54255e\"}\n[2026-05-11 11:36:19] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"9dc85070-9dc1-4821-9b21-bf71cb4a35a7\",\"trace_id\":\"6288c472-dd35-476f-ad35-d1988f54255e\"}\n[2026-05-11 11:36:21] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"ab75325d-90d5-4192-900b-a28f0601c7a8\",\"trace_id\":\"92f2899a-35ba-41f7-bdb8-7f2cd7b4e7d8\"}\n[2026-05-11 11:36:21] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"ab75325d-90d5-4192-900b-a28f0601c7a8\",\"trace_id\":\"92f2899a-35ba-41f7-bdb8-7f2cd7b4e7d8\"}\n[2026-05-11 11:36:21] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"ab75325d-90d5-4192-900b-a28f0601c7a8\",\"trace_id\":\"92f2899a-35ba-41f7-bdb8-7f2cd7b4e7d8\"}\n[2026-05-11 11:36:21] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"ab75325d-90d5-4192-900b-a28f0601c7a8\",\"trace_id\":\"92f2899a-35ba-41f7-bdb8-7f2cd7b4e7d8\"}\n[2026-05-11 11:36:23] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"97a527a8-f15a-4069-b68e-682eb124a293\",\"trace_id\":\"cb4cd9e1-6d6d-4209-83c2-830bd85f46d9\"}\n[2026-05-11 11:36:23] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"23455c29-95de-4465-96d1-a105422a3e6c\",\"trace_id\":\"9a1665bf-e44b-4301-911f-bcb548e82b31\"}\n[2026-05-11 11:36:23] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 11:34:00, 2026-05-11 11:36:00] {\"correlation_id\":\"23455c29-95de-4465-96d1-a105422a3e6c\",\"trace_id\":\"9a1665bf-e44b-4301-911f-bcb548e82b31\"}\n[2026-05-11 11:36:23] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 11:34:00, 2026-05-11 11:36:00] {\"correlation_id\":\"23455c29-95de-4465-96d1-a105422a3e6c\",\"trace_id\":\"9a1665bf-e44b-4301-911f-bcb548e82b31\"}\n[2026-05-11 11:36:23] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"23455c29-95de-4465-96d1-a105422a3e6c\",\"trace_id\":\"9a1665bf-e44b-4301-911f-bcb548e82b31\"}\n[2026-05-11 11:36:26] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:sync-hubspot-objects\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"19151979-e90e-4527-9061-2fd0280024f3\",\"trace_id\":\"63932467-31c2-4871-9144-4ce924d22ae7\"}\n[2026-05-11 11:36:26] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:sync-hubspot-objects\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"19151979-e90e-4527-9061-2fd0280024f3\",\"trace_id\":\"63932467-31c2-4871-9144-4ce924d22ae7\"}\n[2026-05-11 11:36:26] local.INFO: [SyncHubspotObjects] Starting sync {\"team\":\"b2b115eb-93ce-4d1b-929c-173757df8fba\",\"usage\":23373304,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"26f50693-857d-4948-95b5-e5b3faae1267\",\"trace_id\":\"63932467-31c2-4871-9144-4ce924d22ae7\"}\n[2026-05-11 11:36:26] local.WARNING: [HubSpot] Account not connected for user {\"userId\":\"33e34a7a-1c02-4f04-87ac-22c3a385e6e3\",\"account\":{\"Jiminny\\\\Models\\\\SocialAccount\":{\"id\":306,\"sociable_id\":109,\"provider_user_id\":\"11348452\",\"expires\":1701077403,\"refresh_token_expires\":null,\"provider\":\"hubspot\",\"state\":\"full-refresh\",\"auth_scope\":null,\"retry_after\":null,\"created_at\":\"2020-09-01 16:59:04\",\"updated_at\":\"2023-11-27 09:30:03\"}}} {\"correlation_id\":\"26f50693-857d-4948-95b5-e5b3faae1267\",\"trace_id\":\"63932467-31c2-4871-9144-4ce924d22ae7\"}\n[2026-05-11 11:36:26] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"hubspot\",\"crm_owner\":109,\"team_id\":29} {\"correlation_id\":\"26f50693-857d-4948-95b5-e5b3faae1267\",\"trace_id\":\"63932467-31c2-4871-9144-4ce924d22ae7\"}\n[2026-05-11 11:36:26] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":29} {\"correlation_id\":\"26f50693-857d-4948-95b5-e5b3faae1267\",\"trace_id\":\"63932467-31c2-4871-9144-4ce924d22ae7\"}\n[2026-05-11 11:36:26] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":29} {\"correlation_id\":\"26f50693-857d-4948-95b5-e5b3faae1267\",\"trace_id\":\"63932467-31c2-4871-9144-4ce924d22ae7\"}\n[2026-05-11 11:36:26] local.INFO: [SyncHubspotObjects] Sync finished {\"team\":\"b2b115eb-93ce-4d1b-929c-173757df8fba\",\"provider\":\"hubspot\",\"status\":\"disconnected\",\"duration_ms\":17.52,\"usage\":23438968,\"real_usage\":62914560,\"pid\":74083,\"reason\":\"Your HubSpot account has become disconnected. Please login to Jiminny to reconnect.\"} {\"correlation_id\":\"26f50693-857d-4948-95b5-e5b3faae1267\",\"trace_id\":\"63932467-31c2-4871-9144-4ce924d22ae7\"}\n[2026-05-11 11:36:26] local.INFO: [SyncHubspotObjects] Starting sync {\"team\":\"abae74b8-bfa8-4383-9a7f-89f4bf2bdbb4\",\"usage\":23397184,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"4579e24d-7300-4765-b5e6-a8d1e75436d8\",\"trace_id\":\"63932467-31c2-4871-9144-4ce924d22ae7\"}\n[2026-05-11 11:36:26] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4579e24d-7300-4765-b5e6-a8d1e75436d8\",\"trace_id\":\"63932467-31c2-4871-9144-4ce924d22ae7\"}\n[2026-05-11 11:36:26] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4579e24d-7300-4765-b5e6-a8d1e75436d8\",\"trace_id\":\"63932467-31c2-4871-9144-4ce924d22ae7\"}\n[2026-05-11 11:36:26] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4579e24d-7300-4765-b5e6-a8d1e75436d8\",\"trace_id\":\"63932467-31c2-4871-9144-4ce924d22ae7\"}\n[2026-05-11 11:36:26] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4579e24d-7300-4765-b5e6-a8d1e75436d8\",\"trace_id\":\"63932467-31c2-4871-9144-4ce924d22ae7\"}\n[2026-05-11 11:36:26] local.INFO: [HubSpot] Syncing opportunities using strategy: lastModified {\"team\":2} {\"correlation_id\":\"4579e24d-7300-4765-b5e6-a8d1e75436d8\",\"trace_id\":\"63932467-31c2-4871-9144-4ce924d22ae7\"}\n[2026-05-11 11:36:26] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.26,\"average_seconds_per_request\":0.26} {\"correlation_id\":\"4579e24d-7300-4765-b5e6-a8d1e75436d8\",\"trace_id\":\"63932467-31c2-4871-9144-4ce924d22ae7\"}\n[2026-05-11 11:36:26] local.INFO: [HubSpot] Synced opportunities {\"team\":2,\"strategies\":\"lastModified\",\"sync_count\":0,\"total\":0,\"last_synced_id\":null,\"duration_ms\":266.37} {\"correlation_id\":\"4579e24d-7300-4765-b5e6-a8d1e75436d8\",\"trace_id\":\"63932467-31c2-4871-9144-4ce924d22ae7\"}\n[2026-05-11 11:36:26] local.INFO: [SyncHubspotObjects] Sync finished {\"team\":\"abae74b8-bfa8-4383-9a7f-89f4bf2bdbb4\",\"provider\":\"hubspot\",\"status\":\"completed\",\"duration_ms\":307.04,\"usage\":23461536,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"4579e24d-7300-4765-b5e6-a8d1e75436d8\",\"trace_id\":\"63932467-31c2-4871-9144-4ce924d22ae7\"}\n[2026-05-11 11:36:28] local.INFO: [SyncHubspotObjects] Starting sync {\"team\":\"c6b9d6b0-b48d-4832-a68c-a57d60651888\",\"usage\":23439464,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"48369349-9d95-4a19-8793-f3809c7a1b59\",\"trace_id\":\"63932467-31c2-4871-9144-4ce924d22ae7\"}\n[2026-05-11 11:36:28] local.WARNING: [HubSpot] Account not connected for user {\"userId\":\"71e3aac5-fb66-47c5-a236-2d051ae3e319\",\"account\":null} {\"correlation_id\":\"48369349-9d95-4a19-8793-f3809c7a1b59\",\"trace_id\":\"63932467-31c2-4871-9144-4ce924d22ae7\"}\n[2026-05-11 11:36:28] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"hubspot\",\"crm_owner\":256,\"team_id\":49} {\"correlation_id\":\"48369349-9d95-4a19-8793-f3809c7a1b59\",\"trace_id\":\"63932467-31c2-4871-9144-4ce924d22ae7\"}\n[2026-05-11 11:36:28] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":49} {\"correlation_id\":\"48369349-9d95-4a19-8793-f3809c7a1b59\",\"trace_id\":\"63932467-31c2-4871-9144-4ce924d22ae7\"}\n[2026-05-11 11:36:28] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":49} {\"correlation_id\":\"48369349-9d95-4a19-8793-f3809c7a1b59\",\"trace_id\":\"63932467-31c2-4871-9144-4ce924d22ae7\"}\n[2026-05-11 11:36:28] local.INFO: [SyncHubspotObjects] Sync finished {\"team\":\"c6b9d6b0-b48d-4832-a68c-a57d60651888\",\"provider\":\"hubspot\",\"status\":\"disconnected\",\"duration_ms\":18.69,\"usage\":23423888,\"real_usage\":62914560,\"pid\":74083,\"reason\":\"Social account for HubSpot cannot be found. Please login to Jiminny to connect.\"} {\"correlation_id\":\"48369349-9d95-4a19-8793-f3809c7a1b59\",\"trace_id\":\"63932467-31c2-4871-9144-4ce924d22ae7\"}\n[2026-05-11 11:36:28] local.INFO: [SyncHubspotObjects] Starting sync {\"team\":\"b2d49a54-b645-4637-a7ae-a86cfce6e8e4\",\"usage\":23384528,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"afb4923c-7862-47d2-a140-646a189f5ef4\",\"trace_id\":\"63932467-31c2-4871-9144-4ce924d22ae7\"}\n[2026-05-11 11:36:28] local.WARNING: [HubSpot] Account not connected for user {\"userId\":\"2ac0447f-3c8c-4ce0-baeb-b63ddb76fa9b\",\"account\":null} {\"correlation_id\":\"afb4923c-7862-47d2-a140-646a189f5ef4\",\"trace_id\":\"63932467-31c2-4871-9144-4ce924d22ae7\"}\n[2026-05-11 11:36:28] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"hubspot\",\"crm_owner\":130,\"team_id\":42} {\"correlation_id\":\"afb4923c-7862-47d2-a140-646a189f5ef4\",\"trace_id\":\"63932467-31c2-4871-9144-4ce924d22ae7\"}\n[2026-05-11 11:36:28] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":42} {\"correlation_id\":\"afb4923c-7862-47d2-a140-646a189f5ef4\",\"trace_id\":\"63932467-31c2-4871-9144-4ce924d22ae7\"}\n[2026-05-11 11:36:28] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":42} {\"correlation_id\":\"afb4923c-7862-47d2-a140-646a189f5ef4\",\"trace_id\":\"63932467-31c2-4871-9144-4ce924d22ae7\"}\n[2026-05-11 11:36:28] local.INFO: [SyncHubspotObjects] Sync finished {\"team\":\"b2d49a54-b645-4637-a7ae-a86cfce6e8e4\",\"provider\":\"hubspot\",\"status\":\"disconnected\",\"duration_ms\":11.74,\"usage\":23427472,\"real_usage\":62914560,\"pid\":74083,\"reason\":\"Social account for HubSpot cannot be found. Please login to Jiminny to connect.\"} {\"correlation_id\":\"afb4923c-7862-47d2-a140-646a189f5ef4\",\"trace_id\":\"63932467-31c2-4871-9144-4ce924d22ae7\"}\n[2026-05-11 11:36:28] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:notify-not-logged\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"654e753f-abcd-464d-a51b-b358ecba4ff9\",\"trace_id\":\"1bc4a51a-0961-4402-a6d5-99f8278f1dc7\"}\n[2026-05-11 11:36:28] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:notify-not-logged\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"654e753f-abcd-464d-a51b-b358ecba4ff9\",\"trace_id\":\"1bc4a51a-0961-4402-a6d5-99f8278f1dc7\"}\n[2026-05-11 11:36:32] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"e14930b5-bee0-44a4-8383-15d87eaef035\",\"trace_id\":\"41361dee-7237-4377-8dd6-961525696b41\"}\n[2026-05-11 11:36:33] local.INFO: [EmailSchedule] STARTING Inbox Sync {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"e14930b5-bee0-44a4-8383-15d87eaef035\",\"trace_id\":\"41361dee-7237-4377-8dd6-961525696b41\"}\n[2026-05-11 11:36:33] local.INFO: [EmailSchedule] FINISHED Inbox Sync {\"host\":\"docker_lamp_1\",\"events\":2} {\"correlation_id\":\"e14930b5-bee0-44a4-8383-15d87eaef035\",\"trace_id\":\"41361dee-7237-4377-8dd6-961525696b41\"}\n[2026-05-11 11:36:33] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"e14930b5-bee0-44a4-8383-15d87eaef035\",\"trace_id\":\"41361dee-7237-4377-8dd6-961525696b41\"}\n[2026-05-11 11:36:35] local.INFO: [Sync Mailbox] Sync start {\"inbox_id\":59} {\"correlation_id\":\"9177aaae-38d8-46b4-9340-f9942a57fa45\",\"trace_id\":\"41361dee-7237-4377-8dd6-961525696b41\"}\n[2026-05-11 11:36:35] local.INFO: [Inbox service] Skipping METADATA SYNC for inbox 59 due to unauthorized access to the mailbox {\"correlation_id\":\"9177aaae-38d8-46b4-9340-f9942a57fa45\",\"trace_id\":\"41361dee-7237-4377-8dd6-961525696b41\"}\n[2026-05-11 11:36:35] local.INFO: [Sync Mailbox] Sync complete {\"inbox_id\":59} {\"correlation_id\":\"9177aaae-38d8-46b4-9340-f9942a57fa45\",\"trace_id\":\"41361dee-7237-4377-8dd6-961525696b41\"}\n[2026-05-11 11:36:35] local.INFO: [Sync Mailbox] Sync start {\"inbox_id\":212} {\"correlation_id\":\"877bdb5b-1232-47ca-9e13-e1201b0523fe\",\"trace_id\":\"41361dee-7237-4377-8dd6-961525696b41\"}\n[2026-05-11 11:36:35] local.INFO: [Inbox service] Skipping METADATA SYNC for inbox 212 due to unauthorized access to the mailbox {\"correlation_id\":\"877bdb5b-1232-47ca-9e13-e1201b0523fe\",\"trace_id\":\"41361dee-7237-4377-8dd6-961525696b41\"}\n[2026-05-11 11:36:35] local.INFO: [Sync Mailbox] Sync complete {\"inbox_id\":212} {\"correlation_id\":\"877bdb5b-1232-47ca-9e13-e1201b0523fe\",\"trace_id\":\"41361dee-7237-4377-8dd6-961525696b41\"}\n[2026-05-11 11:36:54] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"97a527a8-f15a-4069-b68e-682eb124a293\",\"trace_id\":\"cb4cd9e1-6d6d-4209-83c2-830bd85f46d9\"}\n[2026-05-11 11:36:54] local.WARNING: [HubSpot Journal Polling] Maximum empty results reached, stopping {\"empty_results\":5,\"max_empty_results\":5} {\"correlation_id\":\"97a527a8-f15a-4069-b68e-682eb124a293\",\"trace_id\":\"cb4cd9e1-6d6d-4209-83c2-830bd85f46d9\"}\n[2026-05-11 11:36:54] local.WARNING: [HubSpot Journal Polling] Maximum empty results reached, stopping {\"empty_results\":5,\"max_empty_results\":5} {\"correlation_id\":\"97a527a8-f15a-4069-b68e-682eb124a293\",\"trace_id\":\"cb4cd9e1-6d6d-4209-83c2-830bd85f46d9\"}\n[2026-05-11 11:36:54] local.INFO: [HubSpot Journal Polling] Service ending {\"runtime_seconds\":57,\"total_cycles\":5,\"files_downloaded\":0,\"empty_files\":0,\"other_portal_skipped\":0,\"total_events\":0,\"events_per_file\":0,\"avg_api_ms\":211.8,\"avg_download_ms\":0.0,\"avg_transform_ms\":0.0,\"avg_process_ms\":0.0,\"peak_memory_mb\":99.73} {\"correlation_id\":\"97a527a8-f15a-4069-b68e-682eb124a293\",\"trace_id\":\"cb4cd9e1-6d6d-4209-83c2-830bd85f46d9\"}\n[2026-05-11 11:36:54] local.INFO: [HubSpot Journal Polling] Saved offset to database on cleanup {\"offset\":\"019e15a9-9ea0-7da7-87bc-82592e3ccf0d\"} {\"correlation_id\":\"97a527a8-f15a-4069-b68e-682eb124a293\",\"trace_id\":\"cb4cd9e1-6d6d-4209-83c2-830bd85f46d9\"}\n[2026-05-11 11:36:54] local.INFO: [HubSpot Journal Polling] Released polling lock {\"correlation_id\":\"97a527a8-f15a-4069-b68e-682eb124a293\",\"trace_id\":\"cb4cd9e1-6d6d-4209-83c2-830bd85f46d9\"}\n[2026-05-11 11:37:08] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"15940138-e7f5-472c-bec4-e594219fb191\",\"trace_id\":\"418d8346-03e7-4433-8826-f2ec96496fdc\"}\n[2026-05-11 11:37:08] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"15940138-e7f5-472c-bec4-e594219fb191\",\"trace_id\":\"418d8346-03e7-4433-8826-f2ec96496fdc\"}\n[2026-05-11 11:37:08] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"15940138-e7f5-472c-bec4-e594219fb191\",\"trace_id\":\"418d8346-03e7-4433-8826-f2ec96496fdc\"}\n[2026-05-11 11:37:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"5ca920bb-7b15-4229-b3fe-a1445e67b199\",\"trace_id\":\"96f700d1-45ac-41f3-a456-dd767f406c18\"}\n[2026-05-11 11:37:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"5ca920bb-7b15-4229-b3fe-a1445e67b199\",\"trace_id\":\"96f700d1-45ac-41f3-a456-dd767f406c18\"}\n[2026-05-11 11:37:14] local.NOTICE: Monitoring start {\"correlation_id\":\"2192742c-a038-41f8-82e0-78559fcc76db\",\"trace_id\":\"8bba3861-e7af-4a44-a2a0-b05937422aa4\"}\n[2026-05-11 11:37:14] local.NOTICE: Monitoring end {\"correlation_id\":\"2192742c-a038-41f8-82e0-78559fcc76db\",\"trace_id\":\"8bba3861-e7af-4a44-a2a0-b05937422aa4\"}\n[2026-05-11 11:37:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"b3be6fa8-dd5d-4f0c-97fe-ecea4ab529cd\",\"trace_id\":\"86ee318b-a230-4ab5-aae3-73adabf4cfbd\"}\n[2026-05-11 11:37:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"b3be6fa8-dd5d-4f0c-97fe-ecea4ab529cd\",\"trace_id\":\"86ee318b-a230-4ab5-aae3-73adabf4cfbd\"}\n[2026-05-11 11:37:22] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"4983de8a-ee3f-46a6-aeed-7cf59e42a336\",\"trace_id\":\"c1ad61a2-c56f-43bf-96eb-24c50ab079af\"}\n[2026-05-11 11:37:22] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"4983de8a-ee3f-46a6-aeed-7cf59e42a336\",\"trace_id\":\"c1ad61a2-c56f-43bf-96eb-24c50ab079af\"}\n[2026-05-11 11:37:23] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"4983de8a-ee3f-46a6-aeed-7cf59e42a336\",\"trace_id\":\"c1ad61a2-c56f-43bf-96eb-24c50ab079af\"}\n[2026-05-11 11:37:23] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"4983de8a-ee3f-46a6-aeed-7cf59e42a336\",\"trace_id\":\"c1ad61a2-c56f-43bf-96eb-24c50ab079af\"}\n[2026-05-11 11:37:25] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"8b1f5285-ab6d-4008-b9eb-8960734e12c8\",\"trace_id\":\"60276151-6edf-4040-b81c-9465a81a92dd\"}\n[2026-05-11 11:37:25] local.INFO: [EmailSchedule] STARTING batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"8b1f5285-ab6d-4008-b9eb-8960734e12c8\",\"trace_id\":\"60276151-6edf-4040-b81c-9465a81a92dd\"}\n[2026-05-11 11:37:25] local.INFO: [EmailSchedule] FINISHED batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"8b1f5285-ab6d-4008-b9eb-8960734e12c8\",\"trace_id\":\"60276151-6edf-4040-b81c-9465a81a92dd\"}\n[2026-05-11 11:37:25] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"8b1f5285-ab6d-4008-b9eb-8960734e12c8\",\"trace_id\":\"60276151-6edf-4040-b81c-9465a81a92dd\"}\n[2026-05-11 11:37:26] local.INFO: [Jiminny\\Jobs\\Mailbox\\CreateBatches] processed 2 inboxes and created 0 batches {\"userId\":null,\"batchSize\":30,\"maxBatches\":1000} {\"correlation_id\":\"9901dba9-6b69-44eb-acdc-7a2246f82419\",\"trace_id\":\"60276151-6edf-4040-b81c-9465a81a92dd\"}\n[2026-05-11 11:37:28] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"69d41df6-224e-4db9-ac05-88ac705ee741\",\"trace_id\":\"c05a2a81-4e1a-4f0b-8b4d-32a60d9816e1\"}\n[2026-05-11 11:37:28] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"69d41df6-224e-4db9-ac05-88ac705ee741\",\"trace_id\":\"c05a2a81-4e1a-4f0b-8b4d-32a60d9816e1\"}\n[2026-05-11 11:38:08] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"5db27930-2b5a-4b84-b25e-1e3b43ea8add\",\"trace_id\":\"6cfecb02-c968-4473-b540-030e0f5b744d\"}\n[2026-05-11 11:38:08] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"5db27930-2b5a-4b84-b25e-1e3b43ea8add\",\"trace_id\":\"6cfecb02-c968-4473-b540-030e0f5b744d\"}\n[2026-05-11 11:38:08] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"5db27930-2b5a-4b84-b25e-1e3b43ea8add\",\"trace_id\":\"6cfecb02-c968-4473-b540-030e0f5b744d\"}\n[2026-05-11 11:38:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a69e46bc-2365-4966-9e37-a99fd1aecd4c\",\"trace_id\":\"b2505494-12ca-4339-bbf7-c7213045c9f0\"}\n[2026-05-11 11:38:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a69e46bc-2365-4966-9e37-a99fd1aecd4c\",\"trace_id\":\"b2505494-12ca-4339-bbf7-c7213045c9f0\"}\n[2026-05-11 11:38:17] local.NOTICE: Monitoring start {\"correlation_id\":\"231a58c6-2a59-4241-a3b9-3b9bdd2fa3a1\",\"trace_id\":\"05429fd5-b419-421b-afe8-18d7a4fd5ae9\"}\n[2026-05-11 11:38:17] local.NOTICE: Monitoring end {\"correlation_id\":\"231a58c6-2a59-4241-a3b9-3b9bdd2fa3a1\",\"trace_id\":\"05429fd5-b419-421b-afe8-18d7a4fd5ae9\"}\n[2026-05-11 11:38:20] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"25e36035-000d-4b58-bfe7-b1ecdbed7c9d\",\"trace_id\":\"5fe4eb1c-1c67-4f96-8900-1339cb81ee53\"}\n[2026-05-11 11:38:20] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"25e36035-000d-4b58-bfe7-b1ecdbed7c9d\",\"trace_id\":\"5fe4eb1c-1c67-4f96-8900-1339cb81ee53\"}\n[2026-05-11 11:38:24] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"7feddd80-ff43-42a0-b95d-5ee3b61d9433\",\"trace_id\":\"2bdbef46-33b1-4c1b-a406-3a853e4ccb67\"}\n[2026-05-11 11:38:24] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"7feddd80-ff43-42a0-b95d-5ee3b61d9433\",\"trace_id\":\"2bdbef46-33b1-4c1b-a406-3a853e4ccb67\"}\n[2026-05-11 11:38:24] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"7feddd80-ff43-42a0-b95d-5ee3b61d9433\",\"trace_id\":\"2bdbef46-33b1-4c1b-a406-3a853e4ccb67\"}\n[2026-05-11 11:38:24] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"7feddd80-ff43-42a0-b95d-5ee3b61d9433\",\"trace_id\":\"2bdbef46-33b1-4c1b-a406-3a853e4ccb67\"}\n[2026-05-11 11:38:30] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"cf157a8b-6992-458e-a3dc-facc18787856\",\"trace_id\":\"ba532c9a-ea58-492d-b1ed-293ae6ca7151\"}\n[2026-05-11 11:38:30] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 11:36:00, 2026-05-11 11:38:00] {\"correlation_id\":\"cf157a8b-6992-458e-a3dc-facc18787856\",\"trace_id\":\"ba532c9a-ea58-492d-b1ed-293ae6ca7151\"}\n[2026-05-11 11:38:30] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 11:36:00, 2026-05-11 11:38:00] {\"correlation_id\":\"cf157a8b-6992-458e-a3dc-facc18787856\",\"trace_id\":\"ba532c9a-ea58-492d-b1ed-293ae6ca7151\"}\n[2026-05-11 11:38:30] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"cf157a8b-6992-458e-a3dc-facc18787856\",\"trace_id\":\"ba532c9a-ea58-492d-b1ed-293ae6ca7151\"}\n[2026-05-11 11:38:33] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a38ca8d1-f920-4af0-9ead-2c999788a762\",\"trace_id\":\"7f7c276e-3d0c-4337-9b91-60a46e249027\"}\n[2026-05-11 11:38:33] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a38ca8d1-f920-4af0-9ead-2c999788a762\",\"trace_id\":\"7f7c276e-3d0c-4337-9b91-60a46e249027\"}\n[2026-05-11 11:39:44] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"e334af78-eaf1-4b5a-82f9-8007826916cc\",\"trace_id\":\"13cea870-aff6-44e1-8e89-202cd0626e30\"}\n[2026-05-11 11:39:44] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"e334af78-eaf1-4b5a-82f9-8007826916cc\",\"trace_id\":\"13cea870-aff6-44e1-8e89-202cd0626e30\"}\n[2026-05-11 11:39:44] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"e334af78-eaf1-4b5a-82f9-8007826916cc\",\"trace_id\":\"13cea870-aff6-44e1-8e89-202cd0626e30\"}\n[2026-05-11 11:40:08] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"6c1eb788-cc37-4ce8-b25e-60834ccbbaca\",\"trace_id\":\"2df49960-6038-4cc1-9e8f-2add7b626f67\"}\n[2026-05-11 11:40:08] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"6c1eb788-cc37-4ce8-b25e-60834ccbbaca\",\"trace_id\":\"2df49960-6038-4cc1-9e8f-2add7b626f67\"}\n[2026-05-11 11:40:35] local.NOTICE: Monitoring start {\"correlation_id\":\"40e335c4-fd85-4f54-9281-291fe298424c\",\"trace_id\":\"b0f17a56-f2d5-4cd6-96cb-1209490ac7fe\"}\n[2026-05-11 11:40:36] local.NOTICE: Monitoring end {\"correlation_id\":\"40e335c4-fd85-4f54-9281-291fe298424c\",\"trace_id\":\"b0f17a56-f2d5-4cd6-96cb-1209490ac7fe\"}\n[2026-05-11 11:41:14] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"243d35a2-60a2-455d-81d1-f8e7f254ff49\",\"trace_id\":\"9052ee8b-33de-46ec-96bd-a5a6680680fe\"}\n[2026-05-11 11:41:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"243d35a2-60a2-455d-81d1-f8e7f254ff49\",\"trace_id\":\"9052ee8b-33de-46ec-96bd-a5a6680680fe\"}\n[2026-05-11 11:41:52] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"979a8201-55ff-4c48-bfb2-975d3fa8ef5c\",\"trace_id\":\"3d33eea6-2425-4eb8-9e74-596294d88208\"}\n[2026-05-11 11:41:52] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"979a8201-55ff-4c48-bfb2-975d3fa8ef5c\",\"trace_id\":\"3d33eea6-2425-4eb8-9e74-596294d88208\"}\n[2026-05-11 11:41:53] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"979a8201-55ff-4c48-bfb2-975d3fa8ef5c\",\"trace_id\":\"3d33eea6-2425-4eb8-9e74-596294d88208\"}\n[2026-05-11 11:41:53] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"979a8201-55ff-4c48-bfb2-975d3fa8ef5c\",\"trace_id\":\"3d33eea6-2425-4eb8-9e74-596294d88208\"}\n[2026-05-11 11:42:26] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:aircall:check-and-renew\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"1dc1f40a-b4a2-434d-b98a-2f0776bd58d7\",\"trace_id\":\"e83849b9-f2e9-4352-ad13-d5c2ed894982\"}\n[2026-05-11 11:42:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1496,\"provider\":\"aircall\"} {\"correlation_id\":\"1dc1f40a-b4a2-434d-b98a-2f0776bd58d7\",\"trace_id\":\"e83849b9-f2e9-4352-ad13-d5c2ed894982\"}\n[2026-05-11 11:42:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1496,\"provider\":\"aircall\"} {\"correlation_id\":\"1dc1f40a-b4a2-434d-b98a-2f0776bd58d7\",\"trace_id\":\"e83849b9-f2e9-4352-ad13-d5c2ed894982\"}\n[2026-05-11 11:42:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1dc1f40a-b4a2-434d-b98a-2f0776bd58d7\",\"trace_id\":\"e83849b9-f2e9-4352-ad13-d5c2ed894982\"}\n[2026-05-11 11:42:28] local.ERROR: [Aircall] Re-activating webhooks failed {\"team_id\":1,\"reason\":\"{\\\"message\\\":\\\"Forbidden\\\"}\"} {\"correlation_id\":\"1dc1f40a-b4a2-434d-b98a-2f0776bd58d7\",\"trace_id\":\"e83849b9-f2e9-4352-ad13-d5c2ed894982\"}\n[2026-05-11 11:42:28] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:aircall:check-and-renew\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"1dc1f40a-b4a2-434d-b98a-2f0776bd58d7\",\"trace_id\":\"e83849b9-f2e9-4352-ad13-d5c2ed894982\"}\n[2026-05-11 11:42:54] local.INFO: [RetryFailedDownloads] Starting {\"options\":{\"from\":null,\"to\":null,\"help\":false,\"silent\":false,\"quiet\":false,\"verbose\":false,\"version\":false,\"ansi\":null,\"no-interaction\":false,\"env\":null}} {\"correlation_id\":\"5446fc92-2300-4510-9863-048fe06a4b98\",\"trace_id\":\"87a50f74-91ab-47ee-9742-41f64dce94a7\"}\n[2026-05-11 11:43:45] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"fda720c4-f0f8-4e70-9807-542d7728a21d\",\"trace_id\":\"7f3371db-65a6-47eb-9e1d-c45bdc19039c\"}\n[2026-05-11 11:43:46] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"fda720c4-f0f8-4e70-9807-542d7728a21d\",\"trace_id\":\"7f3371db-65a6-47eb-9e1d-c45bdc19039c\"}\n[2026-05-11 11:43:46] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"fda720c4-f0f8-4e70-9807-542d7728a21d\",\"trace_id\":\"7f3371db-65a6-47eb-9e1d-c45bdc19039c\"}\n[2026-05-11 11:43:52] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"6d0158f2-88fa-48ce-b393-2da5e099e6cf\",\"trace_id\":\"6b08733f-64f2-4f39-90f8-38c47ffd7e71\"}\n[2026-05-11 11:43:52] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"6d0158f2-88fa-48ce-b393-2da5e099e6cf\",\"trace_id\":\"6b08733f-64f2-4f39-90f8-38c47ffd7e71\"}\n[2026-05-11 11:44:05] local.NOTICE: Monitoring start {\"correlation_id\":\"8f83f2bc-49c0-4073-8bc2-5c7dc756fc9b\",\"trace_id\":\"825d4830-4b62-47b5-9e4f-4f05a8e99fa4\"}\n[2026-05-11 11:44:05] local.NOTICE: Monitoring end {\"correlation_id\":\"8f83f2bc-49c0-4073-8bc2-5c7dc756fc9b\",\"trace_id\":\"825d4830-4b62-47b5-9e4f-4f05a8e99fa4\"}\n[2026-05-11 11:44:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"5f3e633b-60fe-4b1a-b53e-aeaaee6d9872\",\"trace_id\":\"96fee333-6840-448a-bf31-19f1cab1aa31\"}\n[2026-05-11 11:44:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"5f3e633b-60fe-4b1a-b53e-aeaaee6d9872\",\"trace_id\":\"96fee333-6840-448a-bf31-19f1cab1aa31\"}\n[2026-05-11 11:44:27] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"d7f214f2-1b36-4ba2-be0a-a0b132e19301\",\"trace_id\":\"840bfd9f-efbb-458c-89e8-feb1c60fe6d8\"}\n[2026-05-11 11:44:27] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"d7f214f2-1b36-4ba2-be0a-a0b132e19301\",\"trace_id\":\"840bfd9f-efbb-458c-89e8-feb1c60fe6d8\"}\n[2026-05-11 11:44:27] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"d7f214f2-1b36-4ba2-be0a-a0b132e19301\",\"trace_id\":\"840bfd9f-efbb-458c-89e8-feb1c60fe6d8\"}\n[2026-05-11 11:44:27] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"d7f214f2-1b36-4ba2-be0a-a0b132e19301\",\"trace_id\":\"840bfd9f-efbb-458c-89e8-feb1c60fe6d8\"}\n[2026-05-11 11:44:41] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"bb9a211f-a3bf-4708-9e02-493a1d3eaa44\",\"trace_id\":\"bd6c38ac-801b-4fcd-9ef2-770c931e2cd9\"}\n[2026-05-11 11:44:41] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"calendar:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:41] local.NOTICE: Calendar sync start {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:41] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"bb9a211f-a3bf-4708-9e02-493a1d3eaa44\",\"trace_id\":\"bd6c38ac-801b-4fcd-9ef2-770c931e2cd9\"}\n[2026-05-11 11:44:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1393,\"provider\":\"google\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:41] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1393,\"provider\":\"google\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:42] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1393,\"provider\":\"google\",\"refreshToken\":\"5aa7e2d96b53201cd16fca5d2e4ef3ad03320971fc064781d18aee3ae7b99fbf\",\"state\":\"full-refresh\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:42] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1393,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Account has been deleted\"}} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:42] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:42] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1393,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1387,\"provider\":\"google\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:42] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1387,\"provider\":\"google\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:42] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1387,\"provider\":\"google\",\"refreshToken\":\"8157ac6de94842937194009e9c50e459253600f799dacf6a40755ffdbeb5bba6\",\"state\":\"full-refresh\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:42] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1387,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Account has been deleted\"}} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:42] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:42] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1387,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1348,\"provider\":\"google\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:42] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1348,\"provider\":\"google\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:42] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1348,\"provider\":\"google\",\"refreshToken\":\"9e7d13d3032d0cb1b79d8e95aef01383e8e91eb52ff8ee960c8a0b6b95cd8c73\",\"state\":\"full-refresh\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:43] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1348,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:43] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:43] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1348,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1361,\"provider\":\"google\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:43] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1361,\"provider\":\"google\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:43] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1361,\"provider\":\"google\",\"refreshToken\":\"6c843da199c2b9907445329304fcc4ec5057a4ee748d8299641764395c08e1fd\",\"state\":\"full-refresh\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:43] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1361,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Account has been deleted\"}} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:43] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:43] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1361,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1310,\"provider\":\"google\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:43] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1310,\"provider\":\"google\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:43] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1310,\"provider\":\"google\",\"refreshToken\":\"e34818922c2830a660813a63f6169a4a9a992ae2cccd7dc8dd7796cfdb470ef1\",\"state\":\"full-refresh\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:43] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1310,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:44] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:44] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1310,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:44] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1333,\"provider\":\"google\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:44] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1333,\"provider\":\"google\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:44] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:44] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1333,\"provider\":\"google\",\"refreshToken\":\"6c902986546d8e8da1dc539b046cdc1d458f519acc972e5b5f1d6a1a295165e0\",\"state\":\"full-refresh\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:44] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1333,\"provider\":\"google\",\"responseBody\":{\"error\":\"unauthorized_client\",\"error_description\":\"Unauthorized\"}} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:45] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:45] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1333,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1368,\"provider\":\"google\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:45] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1368,\"provider\":\"google\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:45] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1368,\"provider\":\"google\",\"refreshToken\":\"d2f128898ff8543bd16b69cfae37896ab85119b0f5ed2b431d739593bb600333\",\"state\":\"full-refresh\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:45] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1368,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:45] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:45] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1368,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1365,\"provider\":\"google\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:45] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1365,\"provider\":\"google\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:45] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1365,\"provider\":\"google\",\"refreshToken\":\"7676e4a9afcd082b413248ab5ec6e487021fec6a9bdf315860a59cefad9caad8\",\"state\":\"full-refresh\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:45] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1365,\"provider\":\"google\",\"responseBody\":{\"error\":\"unauthorized_client\",\"error_description\":\"Unauthorized\"}} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:45] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:45] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1365,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1364,\"provider\":\"google\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:45] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1364,\"provider\":\"google\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:45] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1364,\"provider\":\"google\",\"refreshToken\":\"dd5882ebce76e645292ce33ae74238abbb77c0a4ecc6a2bfe723cad82e72ba8e\",\"state\":\"full-refresh\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:45] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1364,\"provider\":\"google\",\"responseBody\":{\"error\":\"unauthorized_client\",\"error_description\":\"Unauthorized\"}} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:45] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:46] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1364,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1370,\"provider\":\"office\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:46] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1370,\"provider\":\"office\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:46] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1370,\"provider\":\"office\",\"refreshToken\":\"b7ee8035306d0043cea6e00e7c4fe14f745e44074a1194db62a31cdf8b70af3e\",\"state\":\"full-refresh\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:46] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1370,\"provider\":\"office\",\"responseBody\":\"{\\\"error\\\":\\\"invalid_client\\\",\\\"error_description\\\":\\\"AADSTS7000215: Invalid client secret provided. Ensure the secret being sent in the request is the client secret value, not the client secret ID, for a secret added to app 'bbcbb2ef-6200-4fae-82bd-d81f5dd738da'. Trace ID: 320c5112-8012-438e-b59e-3160637c2400 Correlation ID: f87caf33-b771-4e58-8916-9df89ee13b6a Timestamp: 2026-05-11 11:44:46Z\\\",\\\"error_codes\\\":[7000215],\\\"timestamp\\\":\\\"2026-05-11 11:44:46Z\\\",\\\"trace_id\\\":\\\"320c5112-8012-438e-b59e-3160637c2400\\\",\\\"correlation_id\\\":\\\"f87caf33-b771-4e58-8916-9df89ee13b6a\\\",\\\"error_uri\\\":\\\"https://login.microsoftonline.com/error?code=7000215\\\"}\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:46] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:46] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1370,\"provider\":\"office\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1202,\"provider\":\"office\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:46] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1202,\"provider\":\"office\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:46] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1202,\"provider\":\"office\",\"refreshToken\":\"b458799ccc29b21a6e2eb5260fdb63e49ccba21bf942a3973fb63799bd7f0afe\",\"state\":\"full-refresh\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:47] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1202,\"provider\":\"office\",\"responseBody\":\"{\\\"error\\\":\\\"invalid_client\\\",\\\"error_description\\\":\\\"AADSTS7000215: Invalid client secret provided. Ensure the secret being sent in the request is the client secret value, not the client secret ID, for a secret added to app 'bbcbb2ef-6200-4fae-82bd-d81f5dd738da'. Trace ID: d629ca21-3ca7-44b5-9e49-1c8fdae61a00 Correlation ID: 18de3690-3388-4539-8f6f-fd2f9897cd34 Timestamp: 2026-05-11 11:44:47Z\\\",\\\"error_codes\\\":[7000215],\\\"timestamp\\\":\\\"2026-05-11 11:44:47Z\\\",\\\"trace_id\\\":\\\"d629ca21-3ca7-44b5-9e49-1c8fdae61a00\\\",\\\"correlation_id\\\":\\\"18de3690-3388-4539-8f6f-fd2f9897cd34\\\",\\\"error_uri\\\":\\\"https://login.microsoftonline.com/error?code=7000215\\\"}\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:47] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:47] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1202,\"provider\":\"office\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:48] local.INFO: Calendar sync job dispatched {\"calendar_id\":501} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1300,\"provider\":\"google\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:48] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1300,\"provider\":\"google\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:48] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1300,\"provider\":\"google\",\"refreshToken\":\"4b811db0725fd9602a95943519a7da935e2a5065da7d9ebfcb170752e3e1ddb8\",\"state\":\"full-refresh\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:48] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1300,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Account has been deleted\"}} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:48] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:48] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1300,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1409,\"provider\":\"google\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:48] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1409,\"provider\":\"google\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:48] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1409,\"provider\":\"google\",\"refreshToken\":\"e2a3f2d06894894eed1ee87d9db1ace77d4d42ee6e1288a8940ad2c10333b0c4\",\"state\":\"full-refresh\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:49] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"b0ba3c55-b39e-4817-9aaa-10ce829bb673\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:49] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"b0ba3c55-b39e-4817-9aaa-10ce829bb673\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:49] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b0ba3c55-b39e-4817-9aaa-10ce829bb673\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:49] local.INFO: [Calendar] Processing sync {\"calendarId\":\"a33076c1-8d97-431a-99f0-85c9524e118b\",\"from\":null,\"to\":null,\"delta\":\"CIiFh8TP44kDEIiFh8TP44kDGAUgkZvkzgIokZvkzgI=\",\"last_sync\":\"2024-12-09 07:12:53\",\"dateMode\":\"daily\"} {\"correlation_id\":\"b0ba3c55-b39e-4817-9aaa-10ce829bb673\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:49] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1409,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:49] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:49] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1409,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:49] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"integration-app\",\"crm_owner\":1695,\"team_id\":3143} {\"correlation_id\":\"b0ba3c55-b39e-4817-9aaa-10ce829bb673\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:49] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"b0ba3c55-b39e-4817-9aaa-10ce829bb673\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:49] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"b0ba3c55-b39e-4817-9aaa-10ce829bb673\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:49] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b0ba3c55-b39e-4817-9aaa-10ce829bb673\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:49] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1352,\"provider\":\"google\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:49] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1352,\"provider\":\"google\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:49] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:49] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1352,\"provider\":\"google\",\"refreshToken\":\"dd4b16b00fdc1216da6b717c02338c073636e29162826b2de6db3f064fc029eb\",\"state\":\"full-refresh\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:50] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1352,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Token has been expired or revoked.\"}} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:50] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:50] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1352,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1296,\"provider\":\"office\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:50] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1296,\"provider\":\"office\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:50] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1296,\"provider\":\"office\",\"refreshToken\":\"011ae723c9d800c674e0b4be76f49fc046dac7d501b66c59ef0d9549cfa56ae5\",\"state\":\"full-refresh\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:51] local.INFO: [Google Calendar] Failed to watch channel for calendar {\"calendarId\":\"a33076c1-8d97-431a-99f0-85c9524e118b\",\"code\":400,\"reason\":\"{\n \\\"error\\\": {\n \\\"errors\\\": [\n {\n \\\"domain\\\": \\\"global\\\",\n \\\"reason\\\": \\\"push.webhookUrlNotHttps\\\",\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n ],\n \\\"code\\\": 400,\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n}\"} {\"correlation_id\":\"b0ba3c55-b39e-4817-9aaa-10ce829bb673\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:51] local.WARNING: [Calendar] Sync failed {\"calendarId\":\"a33076c1-8d97-431a-99f0-85c9524e118b\",\"code\":400,\"reason\":\"{\n \\\"error\\\": {\n \\\"errors\\\": [\n {\n \\\"domain\\\": \\\"global\\\",\n \\\"reason\\\": \\\"push.webhookUrlNotHttps\\\",\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n ],\n \\\"code\\\": 400,\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n}\"} {\"correlation_id\":\"b0ba3c55-b39e-4817-9aaa-10ce829bb673\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:51] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1296,\"provider\":\"office\",\"responseBody\":\"{\\\"error\\\":\\\"invalid_client\\\",\\\"error_description\\\":\\\"AADSTS7000215: Invalid client secret provided. Ensure the secret being sent in the request is the client secret value, not the client secret ID, for a secret added to app 'bbcbb2ef-6200-4fae-82bd-d81f5dd738da'. Trace ID: db10007a-f935-4410-8801-fe3fc7f41f00 Correlation ID: 67f4abc0-cb40-498e-b741-6a92d8168e42 Timestamp: 2026-05-11 11:44:51Z\\\",\\\"error_codes\\\":[7000215],\\\"timestamp\\\":\\\"2026-05-11 11:44:51Z\\\",\\\"trace_id\\\":\\\"db10007a-f935-4410-8801-fe3fc7f41f00\\\",\\\"correlation_id\\\":\\\"67f4abc0-cb40-498e-b741-6a92d8168e42\\\",\\\"error_uri\\\":\\\"https://login.microsoftonline.com/error?code=7000215\\\"}\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:51] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:51] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1296,\"provider\":\"office\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:51] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":391,\"provider\":\"office\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:51] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":391,\"provider\":\"office\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:51] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:51] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":391,\"provider\":\"office\",\"refreshToken\":\"00045eebae0f39b34887c6d53f92ae78064f7145e1f4b67754aebd03cfb2d881\",\"state\":\"full-refresh\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:52] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":391,\"provider\":\"office\",\"responseBody\":\"{\\\"error\\\":\\\"invalid_client\\\",\\\"error_description\\\":\\\"AADSTS7000215: Invalid client secret provided. Ensure the secret being sent in the request is the client secret value, not the client secret ID, for a secret added to app 'bbcbb2ef-6200-4fae-82bd-d81f5dd738da'. Trace ID: 0d350193-c2af-4281-a07b-54de5efc2100 Correlation ID: e3aad26c-d360-4a7c-84fb-4aa3bd7e1d3c Timestamp: 2026-05-11 11:44:52Z\\\",\\\"error_codes\\\":[7000215],\\\"timestamp\\\":\\\"2026-05-11 11:44:52Z\\\",\\\"trace_id\\\":\\\"0d350193-c2af-4281-a07b-54de5efc2100\\\",\\\"correlation_id\\\":\\\"e3aad26c-d360-4a7c-84fb-4aa3bd7e1d3c\\\",\\\"error_uri\\\":\\\"https://login.microsoftonline.com/error?code=7000215\\\"}\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:52] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:52] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":391,\"provider\":\"office\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:52] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1271,\"provider\":\"office\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:52] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1271,\"provider\":\"office\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:52] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:52] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1271,\"provider\":\"office\",\"refreshToken\":\"118cde2c06993147b07ccaec4cbcd5026a819dea6c71081166a492933e392afb\",\"state\":\"full-refresh\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:52] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1271,\"provider\":\"office\",\"responseBody\":\"{\\\"error\\\":\\\"invalid_client\\\",\\\"error_description\\\":\\\"AADSTS7000215: Invalid client secret provided. Ensure the secret being sent in the request is the client secret value, not the client secret ID, for a secret added to app 'bbcbb2ef-6200-4fae-82bd-d81f5dd738da'. Trace ID: 2141a1b8-550b-4342-802b-5f2cc50c0100 Correlation ID: 6e94803a-2f67-4141-8893-d697e6158fef Timestamp: 2026-05-11 11:44:52Z\\\",\\\"error_codes\\\":[7000215],\\\"timestamp\\\":\\\"2026-05-11 11:44:52Z\\\",\\\"trace_id\\\":\\\"2141a1b8-550b-4342-802b-5f2cc50c0100\\\",\\\"correlation_id\\\":\\\"6e94803a-2f67-4141-8893-d697e6158fef\\\",\\\"error_uri\\\":\\\"https://login.microsoftonline.com/error?code=7000215\\\"}\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:52] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:52] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1271,\"provider\":\"office\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:52] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1351,\"provider\":\"google\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:52] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1351,\"provider\":\"google\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:52] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:52] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1351,\"provider\":\"google\",\"refreshToken\":\"4271d15b9e60a606439caddc68337f783e472c85b03dacff14d1b6dfded9051c\",\"state\":\"full-refresh\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:53] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1351,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:53] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:53] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1351,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:53] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1366,\"provider\":\"google\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:53] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1366,\"provider\":\"google\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:53] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:53] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1366,\"provider\":\"google\",\"refreshToken\":\"ae21385059b2eebfd43f68aecd56eccd702a1aabb6598f1f7ab594ed8af491b4\",\"state\":\"full-refresh\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:53] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1366,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:53] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:53] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1366,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:53] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:53] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:53] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:53] local.INFO: Calendar sync job dispatched {\"calendar_id\":378} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:53] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1421,\"provider\":\"office\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:53] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1421,\"provider\":\"office\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:53] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:53] local.INFO: Calendar sync job dispatched {\"calendar_id\":504} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:53] local.NOTICE: Calendar sync end {\"retrieved_calendars\":31,\"processed_calendars\":3} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:53] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"calendar:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":62.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:55] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"3c272c6b-1fda-44e0-84f4-d30b755533db\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:55] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"3c272c6b-1fda-44e0-84f4-d30b755533db\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:55] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"3c272c6b-1fda-44e0-84f4-d30b755533db\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:55] local.INFO: [Calendar] Processing sync {\"calendarId\":\"2676cb6d-f86c-427e-bf78-591e388e3c1e\",\"from\":null,\"to\":null,\"delta\":\"CJ_x49O3jpIDEJ_x49O3jpIDGAUgw67KlwMow67KlwM=\",\"last_sync\":\"2026-01-19 07:48:40\",\"dateMode\":\"daily\"} {\"correlation_id\":\"3c272c6b-1fda-44e0-84f4-d30b755533db\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:55] local.WARNING: [Pipedrive] Account not connected for user {\"userId\":\"e6538737-e7b4-455f-a37a-3e79b665a220\",\"account\":{\"Jiminny\\\\Models\\\\SocialAccount\":{\"id\":1116,\"sociable_id\":241,\"provider_user_id\":\"19555731\",\"expires\":1775683749,\"refresh_token_expires\":null,\"provider\":\"pipedrive\",\"state\":\"full-refresh\",\"auth_scope\":\"base,deals:full,activities:full,contacts:full,search:read\",\"retry_after\":null,\"created_at\":\"2023-09-08 09:44:29\",\"updated_at\":\"2026-04-08 22:58:34\"}}} {\"correlation_id\":\"3c272c6b-1fda-44e0-84f4-d30b755533db\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:55] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"pipedrive\",\"crm_owner\":241,\"team_id\":19} {\"correlation_id\":\"3c272c6b-1fda-44e0-84f4-d30b755533db\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:55] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"pipedrive\",\"team_id\":19} {\"correlation_id\":\"3c272c6b-1fda-44e0-84f4-d30b755533db\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:55] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"pipedrive\",\"team_id\":19} {\"correlation_id\":\"3c272c6b-1fda-44e0-84f4-d30b755533db\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:55] local.WARNING: [Calendar] CRM disconnected for user so events will not be matched {\"provider\":\"pipedrive\",\"user_id\":241,\"message\":\"Your Pipedrive account has become disconnected. Please login to Jiminny to reconnect.\"} {\"correlation_id\":\"3c272c6b-1fda-44e0-84f4-d30b755533db\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:55] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"3c272c6b-1fda-44e0-84f4-d30b755533db\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:55] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"3c272c6b-1fda-44e0-84f4-d30b755533db\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:55] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"3c272c6b-1fda-44e0-84f4-d30b755533db\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:55] local.INFO: [Google Calendar] Failed to watch channel for calendar {\"calendarId\":\"2676cb6d-f86c-427e-bf78-591e388e3c1e\",\"code\":400,\"reason\":\"{\n \\\"error\\\": {\n \\\"errors\\\": [\n {\n \\\"domain\\\": \\\"global\\\",\n \\\"reason\\\": \\\"push.webhookUrlNotHttps\\\",\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n ],\n \\\"code\\\": 400,\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n}\"} {\"correlation_id\":\"3c272c6b-1fda-44e0-84f4-d30b755533db\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:55] local.WARNING: [Calendar] Sync failed {\"calendarId\":\"2676cb6d-f86c-427e-bf78-591e388e3c1e\",\"code\":400,\"reason\":\"{\n \\\"error\\\": {\n \\\"errors\\\": [\n {\n \\\"domain\\\": \\\"global\\\",\n \\\"reason\\\": \\\"push.webhookUrlNotHttps\\\",\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n ],\n \\\"code\\\": 400,\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n}\"} {\"correlation_id\":\"3c272c6b-1fda-44e0-84f4-d30b755533db\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:55] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1421,\"provider\":\"office\"} {\"correlation_id\":\"90bd563f-bdb0-4222-aa3d-1aafaba59b82\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:55] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1421,\"provider\":\"office\"} {\"correlation_id\":\"90bd563f-bdb0-4222-aa3d-1aafaba59b82\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:55] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"90bd563f-bdb0-4222-aa3d-1aafaba59b82\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:55] local.INFO: [Calendar] Processing sync {\"calendarId\":\"9e8b1a2c-1a8f-42bd-b161-810fc0baf540\",\"from\":null,\"to\":null,\"delta\":\"R0usmcdvmMuZCBYV0hguCLlvcOB4kXlhlC7KgH1SnZwTrZ3faZv1fXPQqJhxe_L9AxWWlb-wASsjGiiWlhsBUg9MFb3ZdlAYerVV_ZirRPbsKWCxEXhybD90arJmok_M4ecGFUQ9_BIGu-c6RAnJy2TRKZ7gPTsJi_8TGceGAuqimlhm4G4mjDLvYVVwImjjU7M3xJvUzL47dLOGNTJCww.k1TST0VEYCgbFOkwa3ysYMi100FtVfkzfqlXLnV6gPg\",\"last_sync\":\"2026-05-11 06:13:36\",\"dateMode\":\"daily\"} {\"correlation_id\":\"90bd563f-bdb0-4222-aa3d-1aafaba59b82\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:55] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"90bd563f-bdb0-4222-aa3d-1aafaba59b82\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:55] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"90bd563f-bdb0-4222-aa3d-1aafaba59b82\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:55] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"90bd563f-bdb0-4222-aa3d-1aafaba59b82\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:55] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":89,\"team_id\":2} {\"correlation_id\":\"90bd563f-bdb0-4222-aa3d-1aafaba59b82\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:55] local.INFO: [MS Office Calendar] Skipping delta sync for daily mode {\"calendarId\":\"9e8b1a2c-1a8f-42bd-b161-810fc0baf540\"} {\"correlation_id\":\"90bd563f-bdb0-4222-aa3d-1aafaba59b82\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:45:14] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"e38cc330-c508-40e3-aae6-4886ac685e84\",\"trace_id\":\"7d3d16ad-2140-4b32-81ed-7d79adbaaa27\"}\n[2026-05-11 11:45:14] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"e38cc330-c508-40e3-aae6-4886ac685e84\",\"trace_id\":\"7d3d16ad-2140-4b32-81ed-7d79adbaaa27\"}\n[2026-05-11 11:45:14] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"e38cc330-c508-40e3-aae6-4886ac685e84\",\"trace_id\":\"7d3d16ad-2140-4b32-81ed-7d79adbaaa27\"}\n[2026-05-11 11:45:21] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"92dd58e9-61aa-4f82-88d3-4a75a2bb37fa\",\"trace_id\":\"3e36a4da-9bba-4512-9b9f-94ec5f45d7fc\"}\n[2026-05-11 11:45:21] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"92dd58e9-61aa-4f82-88d3-4a75a2bb37fa\",\"trace_id\":\"3e36a4da-9bba-4512-9b9f-94ec5f45d7fc\"}\n[2026-05-11 11:45:27] local.NOTICE: Monitoring start {\"correlation_id\":\"663c42a6-b97e-450a-aa0f-d6fef8588b9f\",\"trace_id\":\"850c5ae3-dc61-46d1-b7c4-0488f2ff1915\"}\n[2026-05-11 11:45:27] local.NOTICE: Monitoring end {\"correlation_id\":\"663c42a6-b97e-450a-aa0f-d6fef8588b9f\",\"trace_id\":\"850c5ae3-dc61-46d1-b7c4-0488f2ff1915\"}\n[2026-05-11 11:45:32] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"33fe17ca-a4e0-4873-9491-55e4622fa5c3\",\"trace_id\":\"9d6f0bd9-6599-4086-a97d-ad6d4b1aa9d6\"}\n[2026-05-11 11:45:32] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"33fe17ca-a4e0-4873-9491-55e4622fa5c3\",\"trace_id\":\"9d6f0bd9-6599-4086-a97d-ad6d4b1aa9d6\"}\n[2026-05-11 11:45:41] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"b41595aa-55cf-4c06-8c4f-848c8f357074\",\"trace_id\":\"e209cd3a-b5e8-451c-8b95-0118333fafc3\"}\n[2026-05-11 11:45:41] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"b41595aa-55cf-4c06-8c4f-848c8f357074\",\"trace_id\":\"e209cd3a-b5e8-451c-8b95-0118333fafc3\"}\n[2026-05-11 11:45:41] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"b41595aa-55cf-4c06-8c4f-848c8f357074\",\"trace_id\":\"e209cd3a-b5e8-451c-8b95-0118333fafc3\"}\n[2026-05-11 11:45:41] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"b41595aa-55cf-4c06-8c4f-848c8f357074\",\"trace_id\":\"e209cd3a-b5e8-451c-8b95-0118333fafc3\"}\n[2026-05-11 11:45:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"baa504e2-e879-4ce1-8918-7d0d096d7a0c\",\"trace_id\":\"4642c955-721c-46eb-ae85-71980708bca5\"}\n[2026-05-11 11:45:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"baa504e2-e879-4ce1-8918-7d0d096d7a0c\",\"trace_id\":\"4642c955-721c-46eb-ae85-71980708bca5\"}\n[2026-05-11 11:46:08] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"9aa7b716-b86d-471f-80fb-5c8a86342d9f\",\"trace_id\":\"f2324492-31c2-4bd2-9e85-dedc6316d313\"}\n[2026-05-11 11:46:09] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"9aa7b716-b86d-471f-80fb-5c8a86342d9f\",\"trace_id\":\"f2324492-31c2-4bd2-9e85-dedc6316d313\"}\n[2026-05-11 11:46:14] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"e4daeead-81f8-47c2-845d-8f633b42fa1f\",\"trace_id\":\"88b9994e-1ec0-42f8-b302-e9a78f56dc27\"}\n[2026-05-11 11:46:14] local.INFO: Running pre-meeting notification command {\"correlation_id\":\"e4daeead-81f8-47c2-845d-8f633b42fa1f\",\"trace_id\":\"88b9994e-1ec0-42f8-b302-e9a78f56dc27\"}\n[2026-05-11 11:46:14] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"e4daeead-81f8-47c2-845d-8f633b42fa1f\",\"trace_id\":\"88b9994e-1ec0-42f8-b302-e9a78f56dc27\"}\n[2026-05-11 11:46:19] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"2e51507c-a336-4a6f-8a13-0eec091277f2\",\"trace_id\":\"05c8c900-8947-47e0-a810-f3307a965b01\"}\n[2026-05-11 11:46:19] local.INFO: Running conference:monitor:start command for activities in (2026-05-11 11:36:00, 2026-05-11 11:41:00] {\"correlation_id\":\"2e51507c-a336-4a6f-8a13-0eec091277f2\",\"trace_id\":\"05c8c900-8947-47e0-a810-f3307a965b01\"}\n[2026-05-11 11:46:19] local.INFO: [conference:monitor:start] No activities found in (2026-05-11 11:36:00, 2026-05-11 11:41:00] {\"correlation_id\":\"2e51507c-a336-4a6f-8a13-0eec091277f2\",\"trace_id\":\"05c8c900-8947-47e0-a810-f3307a965b01\"}\n[2026-05-11 11:46:19] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"2e51507c-a336-4a6f-8a13-0eec091277f2\",\"trace_id\":\"05c8c900-8947-47e0-a810-f3307a965b01\"}\n[2026-05-11 11:46:28] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"d9815217-198c-4a8b-bf0b-9964a9dee30a\",\"trace_id\":\"cc9a27b0-4d08-4ef5-931e-ca23eff1fcd1\"}\n[2026-05-11 11:46:28] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesEnded {\"from\":\"11:41\",\"to\":\"11:46\"} {\"correlation_id\":\"d9815217-198c-4a8b-bf0b-9964a9dee30a\",\"trace_id\":\"cc9a27b0-4d08-4ef5-931e-ca23eff1fcd1\"}\n[2026-05-11 11:46:28] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesWithUnfinishedSession {\"from\":\"01:36\",\"to\":\"01:41\"} {\"correlation_id\":\"d9815217-198c-4a8b-bf0b-9964a9dee30a\",\"trace_id\":\"cc9a27b0-4d08-4ef5-931e-ca23eff1fcd1\"}\n[2026-05-11 11:46:28] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"d9815217-198c-4a8b-bf0b-9964a9dee30a\",\"trace_id\":\"cc9a27b0-4d08-4ef5-931e-ca23eff1fcd1\"}\n[2026-05-11 11:46:35] local.NOTICE: Repairing HubSpot tokens start {\"correlation_id\":\"d7252595-d0db-48fc-b018-b6227114d9be\",\"trace_id\":\"a79194f0-69e2-4629-b31c-4adc72e75e32\"}\n[2026-05-11 11:46:35] local.INFO: Trying to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\"} {\"correlation_id\":\"d7252595-d0db-48fc-b018-b6227114d9be\",\"trace_id\":\"a79194f0-69e2-4629-b31c-4adc72e75e32\"}\n[2026-05-11 11:46:35] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d7252595-d0db-48fc-b018-b6227114d9be\",\"trace_id\":\"a79194f0-69e2-4629-b31c-4adc72e75e32\"}\n[2026-05-11 11:46:35] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":59,\"provider\":\"hubspot\",\"refreshToken\":\"97b78f6e2cc49965c00c2492b602b02708b1392551e6b3f113fbaa48992af90b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"d7252595-d0db-48fc-b018-b6227114d9be\",\"trace_id\":\"a79194f0-69e2-4629-b31c-4adc72e75e32\"}\n[2026-05-11 11:46:36] local.ERROR: Failed to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"d7252595-d0db-48fc-b018-b6227114d9be\",\"trace_id\":\"a79194f0-69e2-4629-b31c-4adc72e75e32\"}\n[2026-05-11 11:46:36] local.INFO: Trying to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\"} {\"correlation_id\":\"d7252595-d0db-48fc-b018-b6227114d9be\",\"trace_id\":\"a79194f0-69e2-4629-b31c-4adc72e75e32\"}\n[2026-05-11 11:46:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d7252595-d0db-48fc-b018-b6227114d9be\",\"trace_id\":\"a79194f0-69e2-4629-b31c-4adc72e75e32\"}\n[2026-05-11 11:46:36] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":306,\"provider\":\"hubspot\",\"refreshToken\":\"6fa6aa8cc641d131231acc3470f5c03cb3b07b2e580fb18f8acb3b1dbb72549b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"d7252595-d0db-48fc-b018-b6227114d9be\",\"trace_id\":\"a79194f0-69e2-4629-b31c-4adc72e75e32\"}\n[2026-05-11 11:46:36] local.ERROR: Failed to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"d7252595-d0db-48fc-b018-b6227114d9be\",\"trace_id\":\"a79194f0-69e2-4629-b31c-4adc72e75e32\"}\n[2026-05-11 11:46:36] local.INFO: Trying to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\"} {\"correlation_id\":\"d7252595-d0db-48fc-b018-b6227114d9be\",\"trace_id\":\"a79194f0-69e2-4629-b31c-4adc72e75e32\"}\n[2026-05-11 11:46:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d7252595-d0db-48fc-b018-b6227114d9be\",\"trace_id\":\"a79194f0-69e2-4629-b31c-4adc72e75e32\"}\n[2026-05-11 11:46:36] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1372,\"provider\":\"hubspot\",\"refreshToken\":\"9aa73948c761da29dce46c177cf9aee1fde483a44169ca38723f9f0597d7a8c4\",\"state\":\"full-refresh\"} {\"correlation_id\":\"d7252595-d0db-48fc-b018-b6227114d9be\",\"trace_id\":\"a79194f0-69e2-4629-b31c-4adc72e75e32\"}\n[2026-05-11 11:46:37] local.ERROR: Failed to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"d7252595-d0db-48fc-b018-b6227114d9be\",\"trace_id\":\"a79194f0-69e2-4629-b31c-4adc72e75e32\"}\n[2026-05-11 11:46:37] local.NOTICE: Repairing HubSpot tokens end {\"total\":3,\"fixed\":0,\"failed\":3} {\"correlation_id\":\"d7252595-d0db-48fc-b018-b6227114d9be\",\"trace_id\":\"a79194f0-69e2-4629-b31c-4adc72e75e32\"}\n[2026-05-11 11:47:08] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"63c9aa75-5054-47c9-b90b-5153ad65c835\",\"trace_id\":\"1a57fc61-b204-4ea2-9338-b7e464153d01\"}\n[2026-05-11 11:47:08] local.INFO: [HubSpot Journal Command] Starting polling service {\"correlation_id\":\"55d77d79-bb43-40a9-940d-81d127d94c0f\",\"trace_id\":\"bcdaa1b1-0af2-4588-8b9d-058c36d0a02e\"}\n[2026-05-11 11:47:08] local.INFO: [HubSpot Journal Polling] Service starting {\"memory_limit\":\"256M\",\"max_execution_time\":\"0\",\"initial_memory_mb\":60.0} {\"correlation_id\":\"55d77d79-bb43-40a9-940d-81d127d94c0f\",\"trace_id\":\"bcdaa1b1-0af2-4588-8b9d-058c36d0a02e\"}\n[2026-05-11 11:47:08] local.INFO: [HubSpot Journal Polling] Acquired polling lock {\"expires_at\":\"2026-05-11T11:49:08.763532Z\"} {\"correlation_id\":\"55d77d79-bb43-40a9-940d-81d127d94c0f\",\"trace_id\":\"bcdaa1b1-0af2-4588-8b9d-058c36d0a02e\"}\n[2026-05-11 11:47:08] local.INFO: [HubSpot Journal Auth] Requesting new client credentials token {\"correlation_id\":\"55d77d79-bb43-40a9-940d-81d127d94c0f\",\"trace_id\":\"bcdaa1b1-0af2-4588-8b9d-058c36d0a02e\"}\n[2026-05-11 11:47:10] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"63c9aa75-5054-47c9-b90b-5153ad65c835\",\"trace_id\":\"1a57fc61-b204-4ea2-9338-b7e464153d01\"}\n[2026-05-11 11:47:11] local.INFO: [HubSpot Journal Auth] Successfully obtained new access token {\"expires_in\":1800,\"cached_for\":1500} {\"correlation_id\":\"55d77d79-bb43-40a9-940d-81d127d94c0f\",\"trace_id\":\"bcdaa1b1-0af2-4588-8b9d-058c36d0a02e\"}\n[2026-05-11 11:47:11] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"55d77d79-bb43-40a9-940d-81d127d94c0f\",\"trace_id\":\"bcdaa1b1-0af2-4588-8b9d-058c36d0a02e\"}\n[2026-05-11 11:47:16] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"55d77d79-bb43-40a9-940d-81d127d94c0f\",\"trace_id\":\"bcdaa1b1-0af2-4588-8b9d-058c36d0a02e\"}\n[2026-05-11 11:47:20] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"7a451157-281c-400a-871f-0a244fc3a0fc\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:20] local.INFO: Dispatching activity sync job {\"import_id\":812713,\"provider\":\"twilio-flex\",\"team\":\"jiminny\"} {\"correlation_id\":\"7a451157-281c-400a-871f-0a244fc3a0fc\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:20] local.INFO: Dispatching activity sync job {\"import_id\":812714,\"provider\":\"xant\",\"team\":\"jiminny\"} {\"correlation_id\":\"7a451157-281c-400a-871f-0a244fc3a0fc\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:20] local.INFO: Dispatching activity sync job {\"import_id\":812715,\"provider\":\"apollo\",\"team\":\"jiminny\"} {\"correlation_id\":\"7a451157-281c-400a-871f-0a244fc3a0fc\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:20] local.INFO: Dispatching activity sync job {\"import_id\":812716,\"provider\":\"groove\",\"team\":\"jiminny\"} {\"correlation_id\":\"7a451157-281c-400a-871f-0a244fc3a0fc\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:20] local.INFO: Dispatching activity sync job {\"import_id\":812717,\"provider\":\"twilio-video\",\"team\":\"jiminny\"} {\"correlation_id\":\"7a451157-281c-400a-871f-0a244fc3a0fc\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:20] local.INFO: Dispatching activity sync job {\"import_id\":812718,\"provider\":\"hubspot\",\"team\":\"hubspot\"} {\"correlation_id\":\"7a451157-281c-400a-871f-0a244fc3a0fc\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:20] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"7a451157-281c-400a-871f-0a244fc3a0fc\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:22] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"55d77d79-bb43-40a9-940d-81d127d94c0f\",\"trace_id\":\"bcdaa1b1-0af2-4588-8b9d-058c36d0a02e\"}\n[2026-05-11 11:47:23] local.WARNING: [Salesforce] Account not connected for user {\"userId\":\"cdf8b554-d951-4758-bc2b-c1b85d1cd0b9\",\"account\":null} {\"correlation_id\":\"8f6a7583-48c6-4fad-8aa2-396bec4d1ac9\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:23] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"salesforce\",\"crm_owner\":3,\"team_id\":1} {\"correlation_id\":\"8f6a7583-48c6-4fad-8aa2-396bec4d1ac9\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:23] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"salesforce\",\"team_id\":1} {\"correlation_id\":\"8f6a7583-48c6-4fad-8aa2-396bec4d1ac9\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:23] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"salesforce\",\"team_id\":1} {\"correlation_id\":\"8f6a7583-48c6-4fad-8aa2-396bec4d1ac9\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:23] local.ALERT: [SyncActivity] Failed {\"import_id\":812713,\"provider\":\"twilio-flex\",\"provider_id\":317,\"team\":\"jiminny\",\"team_id\":1,\"reason\":\"Social account for Salesforce cannot be found. Please login to Jiminny to connect.\",\"file\":\"/home/jiminny/app/Services/Crm/BaseService.php\",\"line\":646} {\"correlation_id\":\"8f6a7583-48c6-4fad-8aa2-396bec4d1ac9\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:23] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"8701651a-9c9f-43f7-ab16-43fdabb4fe9a\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:23] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"8701651a-9c9f-43f7-ab16-43fdabb4fe9a\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:23] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8701651a-9c9f-43f7-ab16-43fdabb4fe9a\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:25] local.ALERT: [SyncActivity] Failed {\"import_id\":812714,\"provider\":\"xant\",\"provider_id\":161,\"team\":\"jiminny\",\"team_id\":1,\"reason\":\"Activity Provider account not connected.\",\"file\":\"/home/jiminny/app/Services/Activity/ActivityProviderService.php\",\"line\":174} {\"correlation_id\":\"8701651a-9c9f-43f7-ab16-43fdabb4fe9a\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:25] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"fae9a9af-cde4-4223-9c3e-af29f4a77e21\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:25] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"fae9a9af-cde4-4223-9c3e-af29f4a77e21\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:25] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"fae9a9af-cde4-4223-9c3e-af29f4a77e21\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:26] local.ALERT: [SyncActivity] Failed {\"import_id\":812715,\"provider\":\"apollo\",\"provider_id\":441,\"team\":\"jiminny\",\"team_id\":1,\"reason\":\"Activity Provider account not connected.\",\"file\":\"/home/jiminny/app/Services/Activity/ActivityProviderService.php\",\"line\":174} {\"correlation_id\":\"fae9a9af-cde4-4223-9c3e-af29f4a77e21\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:26] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"051769e8-9372-4626-af41-b97aa2087436\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:26] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"051769e8-9372-4626-af41-b97aa2087436\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:26] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"051769e8-9372-4626-af41-b97aa2087436\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:26] local.ALERT: [SyncActivity] Failed {\"import_id\":812716,\"provider\":\"groove\",\"provider_id\":228,\"team\":\"jiminny\",\"team_id\":1,\"reason\":\"Activity Provider account not connected.\",\"file\":\"/home/jiminny/app/Services/Activity/ActivityProviderService.php\",\"line\":174} {\"correlation_id\":\"051769e8-9372-4626-af41-b97aa2087436\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"d90955fe-5897-42e4-903b-9b0aba6554a4\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"d90955fe-5897-42e4-903b-9b0aba6554a4\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d90955fe-5897-42e4-903b-9b0aba6554a4\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:27] local.ALERT: [SyncActivity] Failed {\"import_id\":812717,\"provider\":\"twilio-video\",\"provider_id\":243,\"team\":\"jiminny\",\"team_id\":1,\"reason\":\"Activity Provider account not connected.\",\"file\":\"/home/jiminny/app/Services/Activity/ActivityProviderService.php\",\"line\":174} {\"correlation_id\":\"d90955fe-5897-42e4-903b-9b0aba6554a4\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2cb89553-59d3-4a35-9941-478a398bee15\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2cb89553-59d3-4a35-9941-478a398bee15\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2cb89553-59d3-4a35-9941-478a398bee15\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":89,\"team_id\":2} {\"correlation_id\":\"2cb89553-59d3-4a35-9941-478a398bee15\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":408,\"provider\":\"hubspot\"} {\"correlation_id\":\"2cb89553-59d3-4a35-9941-478a398bee15\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":408,\"provider\":\"hubspot\"} {\"correlation_id\":\"2cb89553-59d3-4a35-9941-478a398bee15\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2cb89553-59d3-4a35-9941-478a398bee15\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:27] local.INFO: [SyncActivity] Start {\"import_id\":812718,\"provider\":\"hubspot\",\"provider_id\":31,\"team\":\"hubspot\",\"team_id\":2} {\"correlation_id\":\"2cb89553-59d3-4a35-9941-478a398bee15\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:27] local.INFO: [HubSpot] Search calls for period {\"from\":\"2026-05-11 11:29:00\",\"to\":\"2026-05-11 11:45:00\"} {\"correlation_id\":\"2cb89553-59d3-4a35-9941-478a398bee15\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:28] local.INFO: [SyncActivity] End {\"import_id\":812718,\"provider\":\"hubspot\",\"provider_id\":31,\"team\":\"hubspot\",\"team_id\":2} {\"correlation_id\":\"2cb89553-59d3-4a35-9941-478a398bee15\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:28] local.INFO: [SyncActivity] Memory usage {\"import_id\":812718,\"provider\":\"hubspot\",\"provider_id\":31,\"team\":\"hubspot\",\"team_id\":2,\"memory_usage\":27215288,\"memory_real_usage\":65011712,\"pid\":74086} {\"correlation_id\":\"2cb89553-59d3-4a35-9941-478a398bee15\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:30] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"3e054b8f-07c0-4071-8abb-21684b2bde94\",\"trace_id\":\"8ffdf755-0bf8-44fb-9a3f-6b0ae0f6bd19\"}\n[2026-05-11 11:47:30] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"3e054b8f-07c0-4071-8abb-21684b2bde94\",\"trace_id\":\"8ffdf755-0bf8-44fb-9a3f-6b0ae0f6bd19\"}\n[2026-05-11 11:47:35] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"nudges:send\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"33022db2-def5-4ad3-8403-5d77b37398b6\",\"trace_id\":\"b87f95f5-1a4f-4aa1-9f97-38e0018a8dd0\"}\n[2026-05-11 11:47:35] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"nudges:send\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"33022db2-def5-4ad3-8403-5d77b37398b6\",\"trace_id\":\"b87f95f5-1a4f-4aa1-9f97-38e0018a8dd0\"}\n[2026-05-11 11:47:37] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"55d77d79-bb43-40a9-940d-81d127d94c0f\",\"trace_id\":\"bcdaa1b1-0af2-4588-8b9d-058c36d0a02e\"}\n[2026-05-11 11:47:44] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"jiminny:playlists:normalize-sort\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"033e2297-cd6a-4dae-8867-50537224ae07\",\"trace_id\":\"7b904123-009f-4561-a9eb-ab994d7dcc1b\"}\n[2026-05-11 11:47:44] local.INFO: [Jiminny\\Component\\Playlist\\Command\\NormalizeSortCommand::handle] starting. {\"playlists\":[]} {\"correlation_id\":\"033e2297-cd6a-4dae-8867-50537224ae07\",\"trace_id\":\"7b904123-009f-4561-a9eb-ab994d7dcc1b\"}\n[2026-05-11 11:47:44] local.INFO: [Jiminny\\Component\\Playlist\\Command\\NormalizeSortCommand::handle] finished. {\"normalizedPlaylists\":[],\"deletedPlaylists\":[]} {\"correlation_id\":\"033e2297-cd6a-4dae-8867-50537224ae07\",\"trace_id\":\"7b904123-009f-4561-a9eb-ab994d7dcc1b\"}\n[2026-05-11 11:47:44] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"jiminny:playlists:normalize-sort\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"033e2297-cd6a-4dae-8867-50537224ae07\",\"trace_id\":\"7b904123-009f-4561-a9eb-ab994d7dcc1b\"}\n[2026-05-11 11:48:07] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"55d77d79-bb43-40a9-940d-81d127d94c0f\",\"trace_id\":\"bcdaa1b1-0af2-4588-8b9d-058c36d0a02e\"}\n[2026-05-11 11:48:07] local.WARNING: [HubSpot Journal Polling] Maximum empty results reached, stopping {\"empty_results\":5,\"max_empty_results\":5} {\"correlation_id\":\"55d77d79-bb43-40a9-940d-81d127d94c0f\",\"trace_id\":\"bcdaa1b1-0af2-4588-8b9d-058c36d0a02e\"}\n[2026-05-11 11:48:07] local.WARNING: [HubSpot Journal Polling] Maximum empty results reached, stopping {\"empty_results\":5,\"max_empty_results\":5} {\"correlation_id\":\"55d77d79-bb43-40a9-940d-81d127d94c0f\",\"trace_id\":\"bcdaa1b1-0af2-4588-8b9d-058c36d0a02e\"}\n[2026-05-11 11:48:07] local.INFO: [HubSpot Journal Polling] Service ending {\"runtime_seconds\":59,\"total_cycles\":5,\"files_downloaded\":0,\"empty_files\":0,\"other_portal_skipped\":0,\"total_events\":0,\"events_per_file\":0,\"avg_api_ms\":688.7,\"avg_download_ms\":0.0,\"avg_transform_ms\":0.0,\"avg_process_ms\":0.0,\"peak_memory_mb\":99.73} {\"correlation_id\":\"55d77d79-bb43-40a9-940d-81d127d94c0f\",\"trace_id\":\"bcdaa1b1-0af2-4588-8b9d-058c36d0a02e\"}\n[2026-05-11 11:48:07] local.INFO: [HubSpot Journal Polling] Saved offset to database on cleanup {\"offset\":\"019e15a9-9ea0-7da7-87bc-82592e3ccf0d\"} {\"correlation_id\":\"55d77d79-bb43-40a9-940d-81d127d94c0f\",\"trace_id\":\"bcdaa1b1-0af2-4588-8b9d-058c36d0a02e\"}\n[2026-05-11 11:48:07] local.INFO: [HubSpot Journal Polling] Released polling lock {\"correlation_id\":\"55d77d79-bb43-40a9-940d-81d127d94c0f\",\"trace_id\":\"bcdaa1b1-0af2-4588-8b9d-058c36d0a02e\"}\n[2026-05-11 11:48:27] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a1dfeed7-9d48-4036-a76d-200217298586\",\"trace_id\":\"ea05e5ac-118c-41d6-a8a9-bd374af8202d\"}\n[2026-05-11 11:48:28] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"a1dfeed7-9d48-4036-a76d-200217298586\",\"trace_id\":\"ea05e5ac-118c-41d6-a8a9-bd374af8202d\"}\n[2026-05-11 11:48:28] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a1dfeed7-9d48-4036-a76d-200217298586\",\"trace_id\":\"ea05e5ac-118c-41d6-a8a9-bd374af8202d\"}\n[2026-05-11 11:48:36] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a53fb4ea-1be1-40fb-9c37-a7b259bf1454\",\"trace_id\":\"7479d30f-36c7-40e1-8d87-af8f104f2437\"}\n[2026-05-11 11:48:36] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a53fb4ea-1be1-40fb-9c37-a7b259bf1454\",\"trace_id\":\"7479d30f-36c7-40e1-8d87-af8f104f2437\"}\n[2026-05-11 11:48:45] local.NOTICE: Monitoring start {\"correlation_id\":\"93519b60-0442-45c2-b99a-56b071f58cf2\",\"trace_id\":\"44a33d1f-5133-46df-b737-f9eefbaf7c88\"}\n[2026-05-11 11:48:45] local.NOTICE: Monitoring end {\"correlation_id\":\"93519b60-0442-45c2-b99a-56b071f58cf2\",\"trace_id\":\"44a33d1f-5133-46df-b737-f9eefbaf7c88\"}\n[2026-05-11 11:48:50] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"300727a0-a73d-4de4-a9d7-819ab867f991\",\"trace_id\":\"2252d3c0-1d34-4763-9128-58c12b77fa53\"}\n[2026-05-11 11:48:50] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"300727a0-a73d-4de4-a9d7-819ab867f991\",\"trace_id\":\"2252d3c0-1d34-4763-9128-58c12b77fa53\"}\n[2026-05-11 11:48:57] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"72d684df-1194-4e2d-a4c3-b3a9dad1eb1a\",\"trace_id\":\"2b8f69a9-d506-483a-8ea5-baa2a8a01c55\"}\n[2026-05-11 11:48:57] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"72d684df-1194-4e2d-a4c3-b3a9dad1eb1a\",\"trace_id\":\"2b8f69a9-d506-483a-8ea5-baa2a8a01c55\"}\n[2026-05-11 11:48:57] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"72d684df-1194-4e2d-a4c3-b3a9dad1eb1a\",\"trace_id\":\"2b8f69a9-d506-483a-8ea5-baa2a8a01c55\"}\n[2026-05-11 11:48:57] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"72d684df-1194-4e2d-a4c3-b3a9dad1eb1a\",\"trace_id\":\"2b8f69a9-d506-483a-8ea5-baa2a8a01c55\"}\n[2026-05-11 11:49:05] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"f11b5a06-1a7e-43bf-b3ae-96c96293ef40\",\"trace_id\":\"5cd59384-c100-4485-9874-f8807e7e3df4\"}\n[2026-05-11 11:49:05] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 11:47:00, 2026-05-11 11:49:00] {\"correlation_id\":\"f11b5a06-1a7e-43bf-b3ae-96c96293ef40\",\"trace_id\":\"5cd59384-c100-4485-9874-f8807e7e3df4\"}\n[2026-05-11 11:49:05] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 11:47:00, 2026-05-11 11:49:00] {\"correlation_id\":\"f11b5a06-1a7e-43bf-b3ae-96c96293ef40\",\"trace_id\":\"5cd59384-c100-4485-9874-f8807e7e3df4\"}\n[2026-05-11 11:49:05] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"f11b5a06-1a7e-43bf-b3ae-96c96293ef40\",\"trace_id\":\"5cd59384-c100-4485-9874-f8807e7e3df4\"}\n[2026-05-11 11:49:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"eb074790-b132-477a-b86f-58a83a3522e8\",\"trace_id\":\"53da29a1-501b-4940-ad77-35578829fe8b\"}\n[2026-05-11 11:49:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"eb074790-b132-477a-b86f-58a83a3522e8\",\"trace_id\":\"53da29a1-501b-4940-ad77-35578829fe8b\"}\n[2026-05-11 11:50:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"948b1a87-f11c-4810-856d-88f7ecbc9f62\",\"trace_id\":\"726b7391-0b3b-4874-a900-342de171d282\"}\n[2026-05-11 11:50:12] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"948b1a87-f11c-4810-856d-88f7ecbc9f62\",\"trace_id\":\"726b7391-0b3b-4874-a900-342de171d282\"}\n[2026-05-11 11:50:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"948b1a87-f11c-4810-856d-88f7ecbc9f62\",\"trace_id\":\"726b7391-0b3b-4874-a900-342de171d282\"}\n[2026-05-11 11:50:17] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"1c1ffbf8-a63d-4355-86a4-9ebaf0fb9888\",\"trace_id\":\"893f6a4b-3f1c-4305-b32c-b8841586a2e8\"}\n[2026-05-11 11:50:17] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"1c1ffbf8-a63d-4355-86a4-9ebaf0fb9888\",\"trace_id\":\"893f6a4b-3f1c-4305-b32c-b8841586a2e8\"}\n[2026-05-11 11:50:21] local.NOTICE: Monitoring start {\"correlation_id\":\"d68167e4-72d5-4891-98b2-62563f9d5c56\",\"trace_id\":\"34397c79-70c4-4231-9c85-99520d20fbd9\"}\n[2026-05-11 11:50:21] local.NOTICE: Monitoring end {\"correlation_id\":\"d68167e4-72d5-4891-98b2-62563f9d5c56\",\"trace_id\":\"34397c79-70c4-4231-9c85-99520d20fbd9\"}\n[2026-05-11 11:50:28] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"c82850cb-0f52-43fd-a003-663a3a84ebfc\",\"trace_id\":\"73ca810d-08e4-40c8-b66c-0d5f75d2370f\"}\n[2026-05-11 11:50:28] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"c82850cb-0f52-43fd-a003-663a3a84ebfc\",\"trace_id\":\"73ca810d-08e4-40c8-b66c-0d5f75d2370f\"}\n[2026-05-11 11:50:36] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"0a157432-1be8-4d23-8d59-c0162ce2d34c\",\"trace_id\":\"437bc905-f34e-4409-8ffb-0b0606fe297a\"}\n[2026-05-11 11:50:36] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"0a157432-1be8-4d23-8d59-c0162ce2d34c\",\"trace_id\":\"437bc905-f34e-4409-8ffb-0b0606fe297a\"}\n[2026-05-11 11:50:36] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"0a157432-1be8-4d23-8d59-c0162ce2d34c\",\"trace_id\":\"437bc905-f34e-4409-8ffb-0b0606fe297a\"}\n[2026-05-11 11:50:36] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"0a157432-1be8-4d23-8d59-c0162ce2d34c\",\"trace_id\":\"437bc905-f34e-4409-8ffb-0b0606fe297a\"}\n[2026-05-11 11:50:45] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"64058b5e-eddf-4aa5-87c1-f739b83fa9a2\",\"trace_id\":\"31af6a92-5010-48f1-8064-a00ce23c0137\"}\n[2026-05-11 11:50:45] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 11:48:00, 2026-05-11 11:50:00] {\"correlation_id\":\"64058b5e-eddf-4aa5-87c1-f739b83fa9a2\",\"trace_id\":\"31af6a92-5010-48f1-8064-a00ce23c0137\"}\n[2026-05-11 11:50:45] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 11:48:00, 2026-05-11 11:50:00] {\"correlation_id\":\"64058b5e-eddf-4aa5-87c1-f739b83fa9a2\",\"trace_id\":\"31af6a92-5010-48f1-8064-a00ce23c0137\"}\n[2026-05-11 11:50:45] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"64058b5e-eddf-4aa5-87c1-f739b83fa9a2\",\"trace_id\":\"31af6a92-5010-48f1-8064-a00ce23c0137\"}\n[2026-05-11 11:50:53] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"99b2e202-0a70-4675-892a-4dde6d68e1a4\",\"trace_id\":\"049ee7b4-462b-4ced-bda3-6364e78364e4\"}\n[2026-05-11 11:50:53] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"99b2e202-0a70-4675-892a-4dde6d68e1a4\",\"trace_id\":\"049ee7b4-462b-4ced-bda3-6364e78364e4\"}\n[2026-05-11 11:51:00] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"431e4cfd-4f74-407f-831b-f4c991315d07\",\"trace_id\":\"c4bd1cb5-916e-4e7a-a398-99a20270bf50\"}\n[2026-05-11 11:51:01] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"431e4cfd-4f74-407f-831b-f4c991315d07\",\"trace_id\":\"c4bd1cb5-916e-4e7a-a398-99a20270bf50\"}\n[2026-05-11 11:51:06] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"f998d202-c63e-405a-acc5-6860b64e7338\",\"trace_id\":\"37b6a9e9-6ce9-4656-a648-4da8fe55e995\"}\n[2026-05-11 11:51:06] local.INFO: Running pre-meeting notification command {\"correlation_id\":\"f998d202-c63e-405a-acc5-6860b64e7338\",\"trace_id\":\"37b6a9e9-6ce9-4656-a648-4da8fe55e995\"}\n[2026-05-11 11:51:06] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"f998d202-c63e-405a-acc5-6860b64e7338\",\"trace_id\":\"37b6a9e9-6ce9-4656-a648-4da8fe55e995\"}\n[2026-05-11 11:51:11] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"6123d3aa-f7ef-4864-9612-004c9ba3bb8d\",\"trace_id\":\"3762ceb6-9587-40a9-a6e5-a675c8c77901\"}\n[2026-05-11 11:51:11] local.INFO: Running conference:monitor:start command for activities in (2026-05-11 11:41:00, 2026-05-11 11:46:00] {\"correlation_id\":\"6123d3aa-f7ef-4864-9612-004c9ba3bb8d\",\"trace_id\":\"3762ceb6-9587-40a9-a6e5-a675c8c77901\"}\n[2026-05-11 11:51:11] local.INFO: [conference:monitor:start] No activities found in (2026-05-11 11:41:00, 2026-05-11 11:46:00] {\"correlation_id\":\"6123d3aa-f7ef-4864-9612-004c9ba3bb8d\",\"trace_id\":\"3762ceb6-9587-40a9-a6e5-a675c8c77901\"}\n[2026-05-11 11:51:11] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"6123d3aa-f7ef-4864-9612-004c9ba3bb8d\",\"trace_id\":\"3762ceb6-9587-40a9-a6e5-a675c8c77901\"}\n[2026-05-11 11:51:19] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"be92874d-e8cd-4919-a534-3f5431755d19\",\"trace_id\":\"80813f0f-16c1-48d7-b8b1-d166005d73e4\"}\n[2026-05-11 11:51:19] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesEnded {\"from\":\"11:46\",\"to\":\"11:51\"} {\"correlation_id\":\"be92874d-e8cd-4919-a534-3f5431755d19\",\"trace_id\":\"80813f0f-16c1-48d7-b8b1-d166005d73e4\"}\n[2026-05-11 11:51:20] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesWithUnfinishedSession {\"from\":\"01:41\",\"to\":\"01:46\"} {\"correlation_id\":\"be92874d-e8cd-4919-a534-3f5431755d19\",\"trace_id\":\"80813f0f-16c1-48d7-b8b1-d166005d73e4\"}\n[2026-05-11 11:51:20] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"be92874d-e8cd-4919-a534-3f5431755d19\",\"trace_id\":\"80813f0f-16c1-48d7-b8b1-d166005d73e4\"}\n[2026-05-11 11:51:23] local.NOTICE: Repairing HubSpot tokens start {\"correlation_id\":\"2b3e8d0a-a7b4-4d95-93e4-9e08f74e4937\",\"trace_id\":\"bd3e7ebd-d397-41cc-b2a0-703b4cf963eb\"}\n[2026-05-11 11:51:23] local.INFO: Trying to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\"} {\"correlation_id\":\"2b3e8d0a-a7b4-4d95-93e4-9e08f74e4937\",\"trace_id\":\"bd3e7ebd-d397-41cc-b2a0-703b4cf963eb\"}\n[2026-05-11 11:51:23] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2b3e8d0a-a7b4-4d95-93e4-9e08f74e4937\",\"trace_id\":\"bd3e7ebd-d397-41cc-b2a0-703b4cf963eb\"}\n[2026-05-11 11:51:23] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":59,\"provider\":\"hubspot\",\"refreshToken\":\"97b78f6e2cc49965c00c2492b602b02708b1392551e6b3f113fbaa48992af90b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"2b3e8d0a-a7b4-4d95-93e4-9e08f74e4937\",\"trace_id\":\"bd3e7ebd-d397-41cc-b2a0-703b4cf963eb\"}\n[2026-05-11 11:51:24] local.ERROR: Failed to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"2b3e8d0a-a7b4-4d95-93e4-9e08f74e4937\",\"trace_id\":\"bd3e7ebd-d397-41cc-b2a0-703b4cf963eb\"}\n[2026-05-11 11:51:24] local.INFO: Trying to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\"} {\"correlation_id\":\"2b3e8d0a-a7b4-4d95-93e4-9e08f74e4937\",\"trace_id\":\"bd3e7ebd-d397-41cc-b2a0-703b4cf963eb\"}\n[2026-05-11 11:51:24] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2b3e8d0a-a7b4-4d95-93e4-9e08f74e4937\",\"trace_id\":\"bd3e7ebd-d397-41cc-b2a0-703b4cf963eb\"}\n[2026-05-11 11:51:24] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":306,\"provider\":\"hubspot\",\"refreshToken\":\"6fa6aa8cc641d131231acc3470f5c03cb3b07b2e580fb18f8acb3b1dbb72549b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"2b3e8d0a-a7b4-4d95-93e4-9e08f74e4937\",\"trace_id\":\"bd3e7ebd-d397-41cc-b2a0-703b4cf963eb\"}\n[2026-05-11 11:51:24] local.ERROR: Failed to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"2b3e8d0a-a7b4-4d95-93e4-9e08f74e4937\",\"trace_id\":\"bd3e7ebd-d397-41cc-b2a0-703b4cf963eb\"}\n[2026-05-11 11:51:24] local.INFO: Trying to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\"} {\"correlation_id\":\"2b3e8d0a-a7b4-4d95-93e4-9e08f74e4937\",\"trace_id\":\"bd3e7ebd-d397-41cc-b2a0-703b4cf963eb\"}\n[2026-05-11 11:51:24] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2b3e8d0a-a7b4-4d95-93e4-9e08f74e4937\",\"trace_id\":\"bd3e7ebd-d397-41cc-b2a0-703b4cf963eb\"}\n[2026-05-11 11:51:24] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1372,\"provider\":\"hubspot\",\"refreshToken\":\"9aa73948c761da29dce46c177cf9aee1fde483a44169ca38723f9f0597d7a8c4\",\"state\":\"full-refresh\"} {\"correlation_id\":\"2b3e8d0a-a7b4-4d95-93e4-9e08f74e4937\",\"trace_id\":\"bd3e7ebd-d397-41cc-b2a0-703b4cf963eb\"}\n[2026-05-11 11:51:25] local.ERROR: Failed to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"2b3e8d0a-a7b4-4d95-93e4-9e08f74e4937\",\"trace_id\":\"bd3e7ebd-d397-41cc-b2a0-703b4cf963eb\"}\n[2026-05-11 11:51:25] local.NOTICE: Repairing HubSpot tokens end {\"total\":3,\"fixed\":0,\"failed\":3} {\"correlation_id\":\"2b3e8d0a-a7b4-4d95-93e4-9e08f74e4937\",\"trace_id\":\"bd3e7ebd-d397-41cc-b2a0-703b4cf963eb\"}\n[2026-05-11 11:51:38] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"d35eda20-ab1d-4412-a5f1-870191e525e0\",\"trace_id\":\"55e96dc7-35b2-41c5-9a6a-2f2a57b7ec40\"}\n[2026-05-11 11:51:38] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"jiminny:transcription:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"eb8a511e-068c-45af-b635-ac8825209435\",\"trace_id\":\"f8b214b0-22a9-438c-b4dd-292b2f7d2f6f\"}\n[2026-05-11 11:51:38] local.INFO: [HubSpot Journal Command] Starting polling service {\"correlation_id\":\"a75ee2d8-c0bd-4a6c-bcf6-1d22861c4e5b\",\"trace_id\":\"c7feca3b-ca5e-4d0a-ae3e-862b35f1f9c7\"}\n[2026-05-11 11:51:38] local.INFO: [HubSpot Journal Polling] Service starting {\"memory_limit\":\"256M\",\"max_execution_time\":\"0\",\"initial_memory_mb\":60.0} {\"correlation_id\":\"a75ee2d8-c0bd-4a6c-bcf6-1d22861c4e5b\",\"trace_id\":\"c7feca3b-ca5e-4d0a-ae3e-862b35f1f9c7\"}\n[2026-05-11 11:51:38] local.INFO: [HubSpot Journal Polling] Acquired polling lock {\"expires_at\":\"2026-05-11T11:53:38.779331Z\"} {\"correlation_id\":\"a75ee2d8-c0bd-4a6c-bcf6-1d22861c4e5b\",\"trace_id\":\"c7feca3b-ca5e-4d0a-ae3e-862b35f1f9c7\"}\n[2026-05-11 11:51:39] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"jiminny:transcription:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"eb8a511e-068c-45af-b635-ac8825209435\",\"trace_id\":\"f8b214b0-22a9-438c-b4dd-292b2f7d2f6f\"}\n[2026-05-11 11:51:39] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"d35eda20-ab1d-4412-a5f1-870191e525e0\",\"trace_id\":\"55e96dc7-35b2-41c5-9a6a-2f2a57b7ec40\"}\n[2026-05-11 11:51:39] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"a75ee2d8-c0bd-4a6c-bcf6-1d22861c4e5b\",\"trace_id\":\"c7feca3b-ca5e-4d0a-ae3e-862b35f1f9c7\"}\n[2026-05-11 11:51:44] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"a75ee2d8-c0bd-4a6c-bcf6-1d22861c4e5b\",\"trace_id\":\"c7feca3b-ca5e-4d0a-ae3e-862b35f1f9c7\"}\n[2026-05-11 11:51:50] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"a75ee2d8-c0bd-4a6c-bcf6-1d22861c4e5b\",\"trace_id\":\"c7feca3b-ca5e-4d0a-ae3e-862b35f1f9c7\"}\n[2026-05-11 11:51:52] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:reset-governor\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"473b59f1-3db0-46a9-b1eb-4f231b9b4683\",\"trace_id\":\"8f56faf2-0cc2-4634-a1a5-fa1aa09f09ae\"}\n[2026-05-11 11:51:53] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:reset-governor\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"473b59f1-3db0-46a9-b1eb-4f231b9b4683\",\"trace_id\":\"8f56faf2-0cc2-4634-a1a5-fa1aa09f09ae\"}\n[2026-05-11 11:51:58] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"b067fcea-7b12-47e2-96b7-debd8c85854b\",\"trace_id\":\"8736db6b-7fb2-4229-86ca-d5f66b016c94\"}\n[2026-05-11 11:51:58] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"b067fcea-7b12-47e2-96b7-debd8c85854b\",\"trace_id\":\"8736db6b-7fb2-4229-86ca-d5f66b016c94\"}\n[2026-05-11 11:52:05] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"a75ee2d8-c0bd-4a6c-bcf6-1d22861c4e5b\",\"trace_id\":\"c7feca3b-ca5e-4d0a-ae3e-862b35f1f9c7\"}\n[2026-05-11 11:52:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"ccc7883a-47a5-4451-86a9-ae6ab6012158\",\"trace_id\":\"a1397d4c-59cf-4fc6-9d64-30d03438dbc3\"}\n[2026-05-11 11:52:15] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"ccc7883a-47a5-4451-86a9-ae6ab6012158\",\"trace_id\":\"a1397d4c-59cf-4fc6-9d64-30d03438dbc3\"}\n[2026-05-11 11:52:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"ccc7883a-47a5-4451-86a9-ae6ab6012158\",\"trace_id\":\"a1397d4c-59cf-4fc6-9d64-30d03438dbc3\"}\n[2026-05-11 11:52:29] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"3a5002c8-53b1-4eef-9bf0-fffd89a452bc\",\"trace_id\":\"c9caa5c7-fb4d-4f62-ad23-9159676d207f\"}\n[2026-05-11 11:52:29] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"3a5002c8-53b1-4eef-9bf0-fffd89a452bc\",\"trace_id\":\"c9caa5c7-fb4d-4f62-ad23-9159676d207f\"}\n[2026-05-11 11:52:35] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"a75ee2d8-c0bd-4a6c-bcf6-1d22861c4e5b\",\"trace_id\":\"c7feca3b-ca5e-4d0a-ae3e-862b35f1f9c7\"}\n[2026-05-11 11:52:35] local.WARNING: [HubSpot Journal Polling] Maximum empty results reached, stopping {\"empty_results\":5,\"max_empty_results\":5} {\"correlation_id\":\"a75ee2d8-c0bd-4a6c-bcf6-1d22861c4e5b\",\"trace_id\":\"c7feca3b-ca5e-4d0a-ae3e-862b35f1f9c7\"}\n[2026-05-11 11:52:35] local.WARNING: [HubSpot Journal Polling] Maximum empty results reached, stopping {\"empty_results\":5,\"max_empty_results\":5} {\"correlation_id\":\"a75ee2d8-c0bd-4a6c-bcf6-1d22861c4e5b\",\"trace_id\":\"c7feca3b-ca5e-4d0a-ae3e-862b35f1f9c7\"}\n[2026-05-11 11:52:36] local.INFO: [HubSpot Journal Polling] Service ending {\"runtime_seconds\":58,\"total_cycles\":5,\"files_downloaded\":0,\"empty_files\":0,\"other_portal_skipped\":0,\"total_events\":0,\"events_per_file\":0,\"avg_api_ms\":284.0,\"avg_download_ms\":0.0,\"avg_transform_ms\":0.0,\"avg_process_ms\":0.0,\"peak_memory_mb\":99.73} {\"correlation_id\":\"a75ee2d8-c0bd-4a6c-bcf6-1d22861c4e5b\",\"trace_id\":\"c7feca3b-ca5e-4d0a-ae3e-862b35f1f9c7\"}\n[2026-05-11 11:52:36] local.INFO: [HubSpot Journal Polling] Saved offset to database on cleanup {\"offset\":\"019e15a9-9ea0-7da7-87bc-82592e3ccf0d\"} {\"correlation_id\":\"a75ee2d8-c0bd-4a6c-bcf6-1d22861c4e5b\",\"trace_id\":\"c7feca3b-ca5e-4d0a-ae3e-862b35f1f9c7\"}\n[2026-05-11 11:52:36] local.INFO: [HubSpot Journal Polling] Released polling lock {\"correlation_id\":\"a75ee2d8-c0bd-4a6c-bcf6-1d22861c4e5b\",\"trace_id\":\"c7feca3b-ca5e-4d0a-ae3e-862b35f1f9c7\"}\n[2026-05-11 11:52:40] local.NOTICE: Monitoring start {\"correlation_id\":\"41f4032c-b800-4605-8e4f-cc2b2a236dd8\",\"trace_id\":\"5eead9ab-785a-45b5-b164-792552ed7d5e\"}\n[2026-05-11 11:52:40] local.NOTICE: Monitoring end {\"correlation_id\":\"41f4032c-b800-4605-8e4f-cc2b2a236dd8\",\"trace_id\":\"5eead9ab-785a-45b5-b164-792552ed7d5e\"}\n[2026-05-11 11:52:51] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"919137f6-4bd2-4b7f-9543-7dbb51d37225\",\"trace_id\":\"63a03498-5bfe-44f7-bfd6-39f5fe9cb446\"}\n[2026-05-11 11:52:51] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"919137f6-4bd2-4b7f-9543-7dbb51d37225\",\"trace_id\":\"63a03498-5bfe-44f7-bfd6-39f5fe9cb446\"}\n[2026-05-11 11:52:56] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"80abb28b-1ae5-4ddf-b3a0-29dd7b518b3d\",\"trace_id\":\"8f380427-1917-4899-9f48-5278a351b6bc\"}\n[2026-05-11 11:52:56] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"80abb28b-1ae5-4ddf-b3a0-29dd7b518b3d\",\"trace_id\":\"8f380427-1917-4899-9f48-5278a351b6bc\"}\n[2026-05-11 11:52:56] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"80abb28b-1ae5-4ddf-b3a0-29dd7b518b3d\",\"trace_id\":\"8f380427-1917-4899-9f48-5278a351b6bc\"}\n[2026-05-11 11:52:56] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"80abb28b-1ae5-4ddf-b3a0-29dd7b518b3d\",\"trace_id\":\"8f380427-1917-4899-9f48-5278a351b6bc\"}\n[2026-05-11 11:53:01] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"0551462f-4c73-42cc-aef2-4148444e9968\",\"trace_id\":\"f51275fa-b671-4b4b-8804-186bc54d1c8b\"}\n[2026-05-11 11:53:01] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 11:51:00, 2026-05-11 11:53:00] {\"correlation_id\":\"0551462f-4c73-42cc-aef2-4148444e9968\",\"trace_id\":\"f51275fa-b671-4b4b-8804-186bc54d1c8b\"}\n[2026-05-11 11:53:01] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 11:51:00, 2026-05-11 11:53:00] {\"correlation_id\":\"0551462f-4c73-42cc-aef2-4148444e9968\",\"trace_id\":\"f51275fa-b671-4b4b-8804-186bc54d1c8b\"}\n[2026-05-11 11:53:01] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"0551462f-4c73-42cc-aef2-4148444e9968\",\"trace_id\":\"f51275fa-b671-4b4b-8804-186bc54d1c8b\"}\n[2026-05-11 11:53:10] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"9da60bcb-f79b-4649-b92a-d99ca12f84f0\",\"trace_id\":\"748948b9-ac41-4a57-bd03-1d5e2c618890\"}\n[2026-05-11 11:53:10] local.INFO: [EmailSchedule] STARTING batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"9da60bcb-f79b-4649-b92a-d99ca12f84f0\",\"trace_id\":\"748948b9-ac41-4a57-bd03-1d5e2c618890\"}\n[2026-05-11 11:53:10] local.INFO: [EmailSchedule] FINISHED batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"9da60bcb-f79b-4649-b92a-d99ca12f84f0\",\"trace_id\":\"748948b9-ac41-4a57-bd03-1d5e2c618890\"}\n[2026-05-11 11:53:10] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"9da60bcb-f79b-4649-b92a-d99ca12f84f0\",\"trace_id\":\"748948b9-ac41-4a57-bd03-1d5e2c618890\"}\n[2026-05-11 11:53:12] local.INFO: [Jiminny\\Jobs\\Mailbox\\CreateBatches] processed 2 inboxes and created 0 batches {\"userId\":null,\"batchSize\":30,\"maxBatches\":1000} {\"correlation_id\":\"1f16ecff-92c2-46ac-9f10-80231fcc8d49\",\"trace_id\":\"748948b9-ac41-4a57-bd03-1d5e2c618890\"}\n[2026-05-11 11:53:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"372e28c3-dc3b-43cf-955b-5fae52524648\",\"trace_id\":\"35c6bc36-3f59-4b8e-8ba6-30a6455a0115\"}\n[2026-05-11 11:53:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"372e28c3-dc3b-43cf-955b-5fae52524648\",\"trace_id\":\"35c6bc36-3f59-4b8e-8ba6-30a6455a0115\"}\n[2026-05-11 11:54:09] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a04ad212-85fa-40a8-95c6-f908e7ad2b5a\",\"trace_id\":\"055e7151-279c-4557-913a-fec6454c8d25\"}\n[2026-05-11 11:54:09] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"a04ad212-85fa-40a8-95c6-f908e7ad2b5a\",\"trace_id\":\"055e7151-279c-4557-913a-fec6454c8d25\"}\n[2026-05-11 11:54:09] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a04ad212-85fa-40a8-95c6-f908e7ad2b5a\",\"trace_id\":\"055e7151-279c-4557-913a-fec6454c8d25\"}\n[2026-05-11 11:54:14] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"74a6757b-1136-490a-b1fd-ad8809453847\",\"trace_id\":\"58060cde-a95a-4cc1-bd60-18ffcb3ec911\"}\n[2026-05-11 11:54:14] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"74a6757b-1136-490a-b1fd-ad8809453847\",\"trace_id\":\"58060cde-a95a-4cc1-bd60-18ffcb3ec911\"}\n[2026-05-11 11:54:17] local.NOTICE: Monitoring start {\"correlation_id\":\"aa3f450c-3713-4244-a75a-b99412ebf8a1\",\"trace_id\":\"7a5ba32d-498d-4c7e-97a0-0446c1207147\"}\n[2026-05-11 11:54:17] local.NOTICE: Monitoring end {\"correlation_id\":\"aa3f450c-3713-4244-a75a-b99412ebf8a1\",\"trace_id\":\"7a5ba32d-498d-4c7e-97a0-0446c1207147\"}\n[2026-05-11 11:54:27] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"7006cf20-a853-42e7-b446-f41a7553e59c\",\"trace_id\":\"a7255ec0-f5e4-43c5-b553-3e451503e9fc\"}\n[2026-05-11 11:54:27] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"7006cf20-a853-42e7-b446-f41a7553e59c\",\"trace_id\":\"a7255ec0-f5e4-43c5-b553-3e451503e9fc\"}\n[2026-05-11 11:54:37] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"65bf742a-ee36-4468-84b6-9f0ae8ca1ff0\",\"trace_id\":\"437f8439-cbaa-4c2b-8530-c3f7bd465f5f\"}\n[2026-05-11 11:54:37] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"65bf742a-ee36-4468-84b6-9f0ae8ca1ff0\",\"trace_id\":\"437f8439-cbaa-4c2b-8530-c3f7bd465f5f\"}\n[2026-05-11 11:54:37] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"65bf742a-ee36-4468-84b6-9f0ae8ca1ff0\",\"trace_id\":\"437f8439-cbaa-4c2b-8530-c3f7bd465f5f\"}\n[2026-05-11 11:54:37] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"65bf742a-ee36-4468-84b6-9f0ae8ca1ff0\",\"trace_id\":\"437f8439-cbaa-4c2b-8530-c3f7bd465f5f\"}\n[2026-05-11 11:54:43] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"0542c01b-860d-44be-a510-390ccaae53c0\",\"trace_id\":\"fcda0b7b-e07a-4968-8455-9128c1a76c71\"}\n[2026-05-11 11:54:43] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 11:52:00, 2026-05-11 11:54:00] {\"correlation_id\":\"0542c01b-860d-44be-a510-390ccaae53c0\",\"trace_id\":\"fcda0b7b-e07a-4968-8455-9128c1a76c71\"}\n[2026-05-11 11:54:43] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 11:52:00, 2026-05-11 11:54:00] {\"correlation_id\":\"0542c01b-860d-44be-a510-390ccaae53c0\",\"trace_id\":\"fcda0b7b-e07a-4968-8455-9128c1a76c71\"}\n[2026-05-11 11:54:43] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"0542c01b-860d-44be-a510-390ccaae53c0\",\"trace_id\":\"fcda0b7b-e07a-4968-8455-9128c1a76c71\"}\n[2026-05-11 11:54:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:aircall:check-and-renew\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"5b87a7f5-f19a-4462-bcc2-ead15cf51c91\",\"trace_id\":\"668da8d9-e001-4b9d-ba52-fd4c35dbb12f\"}\n[2026-05-11 11:54:49] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1496,\"provider\":\"aircall\"} {\"correlation_id\":\"5b87a7f5-f19a-4462-bcc2-ead15cf51c91\",\"trace_id\":\"668da8d9-e001-4b9d-ba52-fd4c35dbb12f\"}\n[2026-05-11 11:54:49] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1496,\"provider\":\"aircall\"} {\"correlation_id\":\"5b87a7f5-f19a-4462-bcc2-ead15cf51c91\",\"trace_id\":\"668da8d9-e001-4b9d-ba52-fd4c35dbb12f\"}\n[2026-05-11 11:54:49] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"5b87a7f5-f19a-4462-bcc2-ead15cf51c91\",\"trace_id\":\"668da8d9-e001-4b9d-ba52-fd4c35dbb12f\"}\n[2026-05-11 11:54:50] local.ERROR: [Aircall] Re-activating webhooks failed {\"team_id\":1,\"reason\":\"{\\\"message\\\":\\\"Forbidden\\\"}\"} {\"correlation_id\":\"5b87a7f5-f19a-4462-bcc2-ead15cf51c91\",\"trace_id\":\"668da8d9-e001-4b9d-ba52-fd4c35dbb12f\"}\n[2026-05-11 11:54:50] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:aircall:check-and-renew\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"5b87a7f5-f19a-4462-bcc2-ead15cf51c91\",\"trace_id\":\"668da8d9-e001-4b9d-ba52-fd4c35dbb12f\"}\n[2026-05-11 11:55:00] local.INFO: [RetryFailedDownloads] Starting {\"options\":{\"from\":null,\"to\":null,\"help\":false,\"silent\":false,\"quiet\":false,\"verbose\":false,\"version\":false,\"ansi\":null,\"no-interaction\":false,\"env\":null}} {\"correlation_id\":\"0686e366-cdc8-491c-aed7-62c0de9ab173\",\"trace_id\":\"abd378bf-f11b-4d85-9ce2-61a7440daf0a\"}\n[2026-05-11 11:56:09] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"5b653383-846c-49e8-9ccf-2d5eacbf9952\",\"trace_id\":\"c3550546-1e58-4ca7-8796-1e0125f39e82\"}\n[2026-05-11 11:56:09] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"5b653383-846c-49e8-9ccf-2d5eacbf9952\",\"trace_id\":\"c3550546-1e58-4ca7-8796-1e0125f39e82\"}\n[2026-05-11 11:56:09] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"5b653383-846c-49e8-9ccf-2d5eacbf9952\",\"trace_id\":\"c3550546-1e58-4ca7-8796-1e0125f39e82\"}\n[2026-05-11 11:56:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"2f166d72-fbae-48eb-b27e-0287769d662c\",\"trace_id\":\"770bc4fe-999d-4602-b909-b6617892800b\"}\n[2026-05-11 11:56:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"2f166d72-fbae-48eb-b27e-0287769d662c\",\"trace_id\":\"770bc4fe-999d-4602-b909-b6617892800b\"}\n[2026-05-11 11:56:15] local.NOTICE: Monitoring start {\"correlation_id\":\"5753ad28-7d1b-4cfc-9b05-46eee7c4fa5a\",\"trace_id\":\"69b37dcd-0265-4dbd-8741-d63ce1bda1d1\"}\n[2026-05-11 11:56:15] local.NOTICE: Monitoring end {\"correlation_id\":\"5753ad28-7d1b-4cfc-9b05-46eee7c4fa5a\",\"trace_id\":\"69b37dcd-0265-4dbd-8741-d63ce1bda1d1\"}\n[2026-05-11 11:56:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"1beb4554-6ea0-48dd-8fdb-40508aea8667\",\"trace_id\":\"259709ec-e8eb-44ef-ad15-e5bf15e18bdb\"}\n[2026-05-11 11:56:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"1beb4554-6ea0-48dd-8fdb-40508aea8667\",\"trace_id\":\"259709ec-e8eb-44ef-ad15-e5bf15e18bdb\"}\n[2026-05-11 11:56:26] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"930c88ad-edf5-4502-b37e-89d10cbb7ba3\",\"trace_id\":\"e6d21b9f-a6c4-4839-9bbb-927847a41030\"}\n[2026-05-11 11:56:26] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"930c88ad-edf5-4502-b37e-89d10cbb7ba3\",\"trace_id\":\"e6d21b9f-a6c4-4839-9bbb-927847a41030\"}\n[2026-05-11 11:56:26] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"930c88ad-edf5-4502-b37e-89d10cbb7ba3\",\"trace_id\":\"e6d21b9f-a6c4-4839-9bbb-927847a41030\"}\n[2026-05-11 11:56:26] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"930c88ad-edf5-4502-b37e-89d10cbb7ba3\",\"trace_id\":\"e6d21b9f-a6c4-4839-9bbb-927847a41030\"}\n[2026-05-11 11:56:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"4d20277f-2f58-497f-bfc6-c6416e9cc762\",\"trace_id\":\"503013b4-56c3-4311-afd2-eebe508cfae6\"}\n[2026-05-11 11:56:31] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 11:54:00, 2026-05-11 11:56:00] {\"correlation_id\":\"4d20277f-2f58-497f-bfc6-c6416e9cc762\",\"trace_id\":\"503013b4-56c3-4311-afd2-eebe508cfae6\"}\n[2026-05-11 11:56:31] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 11:54:00, 2026-05-11 11:56:00] {\"correlation_id\":\"4d20277f-2f58-497f-bfc6-c6416e9cc762\",\"trace_id\":\"503013b4-56c3-4311-afd2-eebe508cfae6\"}\n[2026-05-11 11:56:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"4d20277f-2f58-497f-bfc6-c6416e9cc762\",\"trace_id\":\"503013b4-56c3-4311-afd2-eebe508cfae6\"}\n[2026-05-11 11:56:43] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:sync-hubspot-objects\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"2182f167-944c-4976-9801-8df548dd8b85\",\"trace_id\":\"d37e14ee-1171-42f2-baf8-8c5fbe1be82d\"}\n[2026-05-11 11:56:43] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:sync-hubspot-objects\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"2182f167-944c-4976-9801-8df548dd8b85\",\"trace_id\":\"d37e14ee-1171-42f2-baf8-8c5fbe1be82d\"}\n[2026-05-11 11:56:44] local.INFO: [SyncHubspotObjects] Starting sync {\"team\":\"abae74b8-bfa8-4383-9a7f-89f4bf2bdbb4\",\"usage\":23388864,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"4bc5d10a-34ba-495c-8648-2ffbb89e3dac\",\"trace_id\":\"d37e14ee-1171-42f2-baf8-8c5fbe1be82d\"}\n[2026-05-11 11:56:44] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4bc5d10a-34ba-495c-8648-2ffbb89e3dac\",\"trace_id\":\"d37e14ee-1171-42f2-baf8-8c5fbe1be82d\"}\n[2026-05-11 11:56:44] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4bc5d10a-34ba-495c-8648-2ffbb89e3dac\",\"trace_id\":\"d37e14ee-1171-42f2-baf8-8c5fbe1be82d\"}\n[2026-05-11 11:56:44] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4bc5d10a-34ba-495c-8648-2ffbb89e3dac\",\"trace_id\":\"d37e14ee-1171-42f2-baf8-8c5fbe1be82d\"}\n[2026-05-11 11:56:44] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1499,\"provider\":\"hubspot\",\"refreshToken\":\"96f94c623a404e02ebdbf07f1b75707bb6cdbf848cbf45d418baf608c41a8d86\",\"state\":\"connected\"} {\"correlation_id\":\"4bc5d10a-34ba-495c-8648-2ffbb89e3dac\",\"trace_id\":\"d37e14ee-1171-42f2-baf8-8c5fbe1be82d\"}\n[2026-05-11 11:56:45] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"4bc5d10a-34ba-495c-8648-2ffbb89e3dac\",\"trace_id\":\"d37e14ee-1171-42f2-baf8-8c5fbe1be82d\"}\n[2026-05-11 11:56:45] local.INFO: [SocialAccountObserver] Access token was modified, encrypting {\"correlation_id\":\"4bc5d10a-34ba-495c-8648-2ffbb89e3dac\",\"trace_id\":\"d37e14ee-1171-42f2-baf8-8c5fbe1be82d\"}\n[2026-05-11 11:56:46] local.INFO: [SocialAccountService] Token refreshed {\"socialAccountId\":1499,\"provider\":\"hubspot\",\"state\":\"connected\"} {\"correlation_id\":\"4bc5d10a-34ba-495c-8648-2ffbb89e3dac\",\"trace_id\":\"d37e14ee-1171-42f2-baf8-8c5fbe1be82d\"}\n[2026-05-11 11:56:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4bc5d10a-34ba-495c-8648-2ffbb89e3dac\",\"trace_id\":\"d37e14ee-1171-42f2-baf8-8c5fbe1be82d\"}\n[2026-05-11 11:56:46] local.INFO: [HubSpot] Syncing opportunities using strategy: lastModified {\"team\":2} {\"correlation_id\":\"4bc5d10a-34ba-495c-8648-2ffbb89e3dac\",\"trace_id\":\"d37e14ee-1171-42f2-baf8-8c5fbe1be82d\"}\n[2026-05-11 11:56:46] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.35,\"average_seconds_per_request\":0.35} {\"correlation_id\":\"4bc5d10a-34ba-495c-8648-2ffbb89e3dac\",\"trace_id\":\"d37e14ee-1171-42f2-baf8-8c5fbe1be82d\"}\n[2026-05-11 11:56:46] local.INFO: [HubSpot] Synced opportunities {\"team\":2,\"strategies\":\"lastModified\",\"sync_count\":0,\"total\":0,\"last_synced_id\":null,\"duration_ms\":373.48} {\"correlation_id\":\"4bc5d10a-34ba-495c-8648-2ffbb89e3dac\",\"trace_id\":\"d37e14ee-1171-42f2-baf8-8c5fbe1be82d\"}\n[2026-05-11 11:56:47] local.INFO: [SyncHubspotObjects] Sync finished {\"team\":\"abae74b8-bfa8-4383-9a7f-89f4bf2bdbb4\",\"provider\":\"hubspot\",\"status\":\"completed\",\"duration_ms\":2612.71,\"usage\":23729856,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"4bc5d10a-34ba-495c-8648-2ffbb89e3dac\",\"trace_id\":\"d37e14ee-1171-42f2-baf8-8c5fbe1be82d\"}\n[2026-05-11 11:56:47] local.INFO: [SyncHubspotObjects] Starting sync {\"team\":\"b2b115eb-93ce-4d1b-929c-173757df8fba\",\"usage\":23770424,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"625d9e06-edae-40fc-b0e7-2acc36ebbc92\",\"trace_id\":\"d37e14ee-1171-42f2-baf8-8c5fbe1be82d\"}\n[2026-05-11 11:56:47] local.WARNING: [HubSpot] Account not connected for user {\"userId\":\"33e34a7a-1c02-4f04-87ac-22c3a385e6e3\",\"account\":{\"Jiminny\\\\Models\\\\SocialAccount\":{\"id\":306,\"sociable_id\":109,\"provider_user_id\":\"11348452\",\"expires\":1701077403,\"refresh_token_expires\":null,\"provider\":\"hubspot\",\"state\":\"full-refresh\",\"auth_scope\":null,\"retry_after\":null,\"created_at\":\"2020-09-01 16:59:04\",\"updated_at\":\"2023-11-27 09:30:03\"}}} {\"correlation_id\":\"625d9e06-edae-40fc-b0e7-2acc36ebbc92\",\"trace_id\":\"d37e14ee-1171-42f2-baf8-8c5fbe1be82d\"}\n[2026-05-11 11:56:47] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"hubspot\",\"crm_owner\":109,\"team_id\":29} {\"correlation_id\":\"625d9e06-edae-40fc-b0e7-2acc36ebbc92\",\"trace_id\":\"d37e14ee-1171-42f2-baf8-8c5fbe1be82d\"}\n[2026-05-11 11:56:47] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":29} {\"correlation_id\":\"625d9e06-edae-40fc-b0e7-2acc36ebbc92\",\"trace_id\":\"d37e14ee-1171-42f2-baf8-8c5fbe1be82d\"}\n[2026-05-11 11:56:47] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":29} {\"correlation_id\":\"625d9e06-edae-40fc-b0e7-2acc36ebbc92\",\"trace_id\":\"d37e14ee-1171-42f2-baf8-8c5fbe1be82d\"}\n[2026-05-11 11:56:47] local.INFO: [SyncHubspotObjects] Sync finished {\"team\":\"b2b115eb-93ce-4d1b-929c-173757df8fba\",\"provider\":\"hubspot\",\"status\":\"disconnected\",\"duration_ms\":78.69,\"usage\":23770720,\"real_usage\":62914560,\"pid\":74083,\"reason\":\"Your HubSpot account has become disconnected. Please login to Jiminny to reconnect.\"} {\"correlation_id\":\"625d9e06-edae-40fc-b0e7-2acc36ebbc92\",\"trace_id\":\"d37e14ee-1171-42f2-baf8-8c5fbe1be82d\"}\n[2026-05-11 11:56:47] local.INFO: [SyncHubspotObjects] Starting sync {\"team\":\"b2d49a54-b645-4637-a7ae-a86cfce6e8e4\",\"usage\":23728224,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"12a5c71f-9483-447e-b21e-626fc744f233\",\"trace_id\":\"d37e14ee-1171-42f2-baf8-8c5fbe1be82d\"}\n[2026-05-11 11:56:47] local.WARNING: [HubSpot] Account not connected for user {\"userId\":\"2ac0447f-3c8c-4ce0-baeb-b63ddb76fa9b\",\"account\":null} {\"correlation_id\":\"12a5c71f-9483-447e-b21e-626fc744f233\",\"trace_id\":\"d37e14ee-1171-42f2-baf8-8c5fbe1be82d\"}\n[2026-05-11 11:56:47] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"hubspot\",\"crm_owner\":130,\"team_id\":42} {\"correlation_id\":\"12a5c71f-9483-447e-b21e-626fc744f233\",\"trace_id\":\"d37e14ee-1171-42f2-baf8-8c5fbe1be82d\"}\n[2026-05-11 11:56:47] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":42} {\"correlation_id\":\"12a5c71f-9483-447e-b21e-626fc744f233\",\"trace_id\":\"d37e14ee-1171-42f2-baf8-8c5fbe1be82d\"}\n[2026-05-11 11:56:47] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":42} {\"correlation_id\":\"12a5c71f-9483-447e-b21e-626fc744f233\",\"trace_id\":\"d37e14ee-1171-42f2-baf8-8c5fbe1be82d\"}\n[2026-05-11 11:56:47] local.INFO: [SyncHubspotObjects] Sync finished {\"team\":\"b2d49a54-b645-4637-a7ae-a86cfce6e8e4\",\"provider\":\"hubspot\",\"status\":\"disconnected\",\"duration_ms\":50.69,\"usage\":23747928,\"real_usage\":62914560,\"pid\":74083,\"reason\":\"Social account for HubSpot cannot be found. Please login to Jiminny to connect.\"} {\"correlation_id\":\"12a5c71f-9483-447e-b21e-626fc744f233\",\"trace_id\":\"d37e14ee-1171-42f2-baf8-8c5fbe1be82d\"}\n[2026-05-11 11:56:47] local.INFO: [SyncHubspotObjects] Starting sync {\"team\":\"c6b9d6b0-b48d-4832-a68c-a57d60651888\",\"usage\":23708608,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"7fe1d215-cc89-4f5f-a8cf-5c8d69f142fa\",\"trace_id\":\"d37e14ee-1171-42f2-baf8-8c5fbe1be82d\"}\n[2026-05-11 11:56:47] local.WARNING: [HubSpot] Account not connected for user {\"userId\":\"71e3aac5-fb66-47c5-a236-2d051ae3e319\",\"account\":null} {\"correlation_id\":\"7fe1d215-cc89-4f5f-a8cf-5c8d69f142fa\",\"trace_id\":\"d37e14ee-1171-42f2-baf8-8c5fbe1be82d\"}\n[2026-05-11 11:56:47] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"hubspot\",\"crm_owner\":256,\"team_id\":49} {\"correlation_id\":\"7fe1d215-cc89-4f5f-a8cf-5c8d69f142fa\",\"trace_id\":\"d37e14ee-1171-42f2-baf8-8c5fbe1be82d\"}\n[2026-05-11 11:56:47] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":49} {\"correlation_id\":\"7fe1d215-cc89-4f5f-a8cf-5c8d69f142fa\",\"trace_id\":\"d37e14ee-1171-42f2-baf8-8c5fbe1be82d\"}\n[2026-05-11 11:56:47] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":49} {\"correlation_id\":\"7fe1d215-cc89-4f5f-a8cf-5c8d69f142fa\",\"trace_id\":\"d37e14ee-1171-42f2-baf8-8c5fbe1be82d\"}\n[2026-05-11 11:56:47] local.INFO: [SyncHubspotObjects] Sync finished {\"team\":\"c6b9d6b0-b48d-4832-a68c-a57d60651888\",\"provider\":\"hubspot\",\"status\":\"disconnected\",\"duration_ms\":43.34,\"usage\":23744344,\"real_usage\":62914560,\"pid\":74083,\"reason\":\"Social account for HubSpot cannot be found. Please login to Jiminny to connect.\"} {\"correlation_id\":\"7fe1d215-cc89-4f5f-a8cf-5c8d69f142fa\",\"trace_id\":\"d37e14ee-1171-42f2-baf8-8c5fbe1be82d\"}\n[2026-05-11 11:56:52] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:notify-not-logged\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"6eaca20d-14ef-48f9-8af6-9f44a1bdf35b\",\"trace_id\":\"b19e8762-5f37-4f5c-858f-bf486e12bce8\"}\n[2026-05-11 11:56:52] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:notify-not-logged\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"6eaca20d-14ef-48f9-8af6-9f44a1bdf35b\",\"trace_id\":\"b19e8762-5f37-4f5c-858f-bf486e12bce8\"}\n[2026-05-11 11:57:06] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"bda8f0bc-556a-4d28-a8aa-81395fe53859\",\"trace_id\":\"05ad21f5-7896-4958-9a0e-090360adc00d\"}\n[2026-05-11 11:57:06] local.INFO: [EmailSchedule] STARTING Inbox Sync {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"bda8f0bc-556a-4d28-a8aa-81395fe53859\",\"trace_id\":\"05ad21f5-7896-4958-9a0e-090360adc00d\"}\n[2026-05-11 11:57:07] local.INFO: [EmailSchedule] FINISHED Inbox Sync {\"host\":\"docker_lamp_1\",\"events\":2} {\"correlation_id\":\"bda8f0bc-556a-4d28-a8aa-81395fe53859\",\"trace_id\":\"05ad21f5-7896-4958-9a0e-090360adc00d\"}\n[2026-05-11 11:57:07] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"bda8f0bc-556a-4d28-a8aa-81395fe53859\",\"trace_id\":\"05ad21f5-7896-4958-9a0e-090360adc00d\"}\n[2026-05-11 11:57:09] local.INFO: [Sync Mailbox] Sync start {\"inbox_id\":59} {\"correlation_id\":\"9ca07234-69a8-45e3-b302-b94798ef2ef4\",\"trace_id\":\"05ad21f5-7896-4958-9a0e-090360adc00d\"}\n[2026-05-11 11:57:09] local.INFO: [Inbox service] Skipping METADATA SYNC for inbox 59 due to unauthorized access to the mailbox {\"correlation_id\":\"9ca07234-69a8-45e3-b302-b94798ef2ef4\",\"trace_id\":\"05ad21f5-7896-4958-9a0e-090360adc00d\"}\n[2026-05-11 11:57:09] local.INFO: [Sync Mailbox] Sync complete {\"inbox_id\":59} {\"correlation_id\":\"9ca07234-69a8-45e3-b302-b94798ef2ef4\",\"trace_id\":\"05ad21f5-7896-4958-9a0e-090360adc00d\"}\n[2026-05-11 11:57:09] local.INFO: [Sync Mailbox] Sync start {\"inbox_id\":212} {\"correlation_id\":\"bbdb7dd9-1141-4e3a-9fdf-577b027755e6\",\"trace_id\":\"05ad21f5-7896-4958-9a0e-090360adc00d\"}\n[2026-05-11 11:57:09] local.INFO: [Inbox service] Skipping METADATA SYNC for inbox 212 due to unauthorized access to the mailbox {\"correlation_id\":\"bbdb7dd9-1141-4e3a-9fdf-577b027755e6\",\"trace_id\":\"05ad21f5-7896-4958-9a0e-090360adc00d\"}\n[2026-05-11 11:57:09] local.INFO: [Sync Mailbox] Sync complete {\"inbox_id\":212} {\"correlation_id\":\"bbdb7dd9-1141-4e3a-9fdf-577b027755e6\",\"trace_id\":\"05ad21f5-7896-4958-9a0e-090360adc00d\"}\n[2026-05-11 11:58:07] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"c06e8ab1-c6e0-4886-9311-8a8c38e5f4d4\",\"trace_id\":\"8c89a150-31c9-434b-bf1f-9f601d4d01ff\"}\n[2026-05-11 11:58:07] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"c06e8ab1-c6e0-4886-9311-8a8c38e5f4d4\",\"trace_id\":\"8c89a150-31c9-434b-bf1f-9f601d4d01ff\"}\n[2026-05-11 11:58:07] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"c06e8ab1-c6e0-4886-9311-8a8c38e5f4d4\",\"trace_id\":\"8c89a150-31c9-434b-bf1f-9f601d4d01ff\"}\n[2026-05-11 11:58:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"e92217b4-38e6-4ecd-b711-93dc229de4a9\",\"trace_id\":\"1c224464-03b0-46be-b4d8-6a507406e82e\"}\n[2026-05-11 11:58:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"e92217b4-38e6-4ecd-b711-93dc229de4a9\",\"trace_id\":\"1c224464-03b0-46be-b4d8-6a507406e82e\"}\n[2026-05-11 11:58:22] local.NOTICE: Monitoring start {\"correlation_id\":\"16b628fc-3633-4340-a883-797b5a349ab2\",\"trace_id\":\"fcb270cd-ef19-4703-98c4-b0811abd4f58\"}\n[2026-05-11 11:58:22] local.NOTICE: Monitoring end {\"correlation_id\":\"16b628fc-3633-4340-a883-797b5a349ab2\",\"trace_id\":\"fcb270cd-ef19-4703-98c4-b0811abd4f58\"}\n[2026-05-11 11:58:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"d69edd16-d773-4915-b3a5-973155e15291\",\"trace_id\":\"ce870c27-1bc8-492f-92ef-df4e0eb6bb97\"}\n[2026-05-11 11:58:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"d69edd16-d773-4915-b3a5-973155e15291\",\"trace_id\":\"ce870c27-1bc8-492f-92ef-df4e0eb6bb97\"}\n[2026-05-11 11:58:36] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"024593d6-27c6-40d6-b6f2-52cbe5779c62\",\"trace_id\":\"c9706f1d-67cf-4045-a5a6-4737be7ee635\"}\n[2026-05-11 11:58:37] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"024593d6-27c6-40d6-b6f2-52cbe5779c62\",\"trace_id\":\"c9706f1d-67cf-4045-a5a6-4737be7ee635\"}\n[2026-05-11 11:58:37] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"024593d6-27c6-40d6-b6f2-52cbe5779c62\",\"trace_id\":\"c9706f1d-67cf-4045-a5a6-4737be7ee635\"}\n[2026-05-11 11:58:37] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"024593d6-27c6-40d6-b6f2-52cbe5779c62\",\"trace_id\":\"c9706f1d-67cf-4045-a5a6-4737be7ee635\"}\n[2026-05-11 11:58:51] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"681a970b-a2a3-4764-a8a0-61c148a4a63c\",\"trace_id\":\"7fd62869-3148-43b5-bb62-8a73a39690eb\"}\n[2026-05-11 11:58:51] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 11:56:00, 2026-05-11 11:58:00] {\"correlation_id\":\"681a970b-a2a3-4764-a8a0-61c148a4a63c\",\"trace_id\":\"7fd62869-3148-43b5-bb62-8a73a39690eb\"}\n[2026-05-11 11:58:51] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 11:56:00, 2026-05-11 11:58:00] {\"correlation_id\":\"681a970b-a2a3-4764-a8a0-61c148a4a63c\",\"trace_id\":\"7fd62869-3148-43b5-bb62-8a73a39690eb\"}\n[2026-05-11 11:58:51] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"681a970b-a2a3-4764-a8a0-61c148a4a63c\",\"trace_id\":\"7fd62869-3148-43b5-bb62-8a73a39690eb\"}\n[2026-05-11 11:59:14] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"dfe0db36-4a84-49f4-aaea-fca8e5f52886\",\"trace_id\":\"ea0b1144-1737-4e90-a784-da1b0acb4b37\"}\n[2026-05-11 11:59:14] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"calendar:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:14] local.NOTICE: Calendar sync start {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:14] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"dfe0db36-4a84-49f4-aaea-fca8e5f52886\",\"trace_id\":\"ea0b1144-1737-4e90-a784-da1b0acb4b37\"}\n[2026-05-11 11:59:15] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1393,\"provider\":\"google\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:15] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1393,\"provider\":\"google\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:15] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:15] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1393,\"provider\":\"google\",\"refreshToken\":\"5aa7e2d96b53201cd16fca5d2e4ef3ad03320971fc064781d18aee3ae7b99fbf\",\"state\":\"full-refresh\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:15] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1393,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Account has been deleted\"}} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:15] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:15] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1393,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:15] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1387,\"provider\":\"google\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:15] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1387,\"provider\":\"google\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:15] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:15] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1387,\"provider\":\"google\",\"refreshToken\":\"8157ac6de94842937194009e9c50e459253600f799dacf6a40755ffdbeb5bba6\",\"state\":\"full-refresh\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:16] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1387,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Account has been deleted\"}} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:16] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:16] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1387,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:16] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1348,\"provider\":\"google\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:16] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1348,\"provider\":\"google\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:16] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:16] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1348,\"provider\":\"google\",\"refreshToken\":\"9e7d13d3032d0cb1b79d8e95aef01383e8e91eb52ff8ee960c8a0b6b95cd8c73\",\"state\":\"full-refresh\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:16] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1348,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:16] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:16] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1348,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:16] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1361,\"provider\":\"google\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:16] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1361,\"provider\":\"google\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:16] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:16] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1361,\"provider\":\"google\",\"refreshToken\":\"6c843da199c2b9907445329304fcc4ec5057a4ee748d8299641764395c08e1fd\",\"state\":\"full-refresh\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:16] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1361,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Account has been deleted\"}} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:16] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:16] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1361,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:16] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1310,\"provider\":\"google\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:16] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1310,\"provider\":\"google\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:16] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:16] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1310,\"provider\":\"google\",\"refreshToken\":\"e34818922c2830a660813a63f6169a4a9a992ae2cccd7dc8dd7796cfdb470ef1\",\"state\":\"full-refresh\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:16] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1310,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:16] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:16] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1310,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:16] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1333,\"provider\":\"google\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:16] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1333,\"provider\":\"google\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:16] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:16] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1333,\"provider\":\"google\",\"refreshToken\":\"6c902986546d8e8da1dc539b046cdc1d458f519acc972e5b5f1d6a1a295165e0\",\"state\":\"full-refresh\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:17] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1333,\"provider\":\"google\",\"responseBody\":{\"error\":\"unauthorized_client\",\"error_description\":\"Unauthorized\"}} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:17] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:17] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1333,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:17] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1368,\"provider\":\"google\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:17] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1368,\"provider\":\"google\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:17] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:17] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1368,\"provider\":\"google\",\"refreshToken\":\"d2f128898ff8543bd16b69cfae37896ab85119b0f5ed2b431d739593bb600333\",\"state\":\"full-refresh\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:17] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1368,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:17] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:17] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1368,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:17] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1365,\"provider\":\"google\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:17] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1365,\"provider\":\"google\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:17] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:17] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1365,\"provider\":\"google\",\"refreshToken\":\"7676e4a9afcd082b413248ab5ec6e487021fec6a9bdf315860a59cefad9caad8\",\"state\":\"full-refresh\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:17] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1365,\"provider\":\"google\",\"responseBody\":{\"error\":\"unauthorized_client\",\"error_description\":\"Unauthorized\"}} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:17] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:17] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1365,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:17] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1364,\"provider\":\"google\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:17] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1364,\"provider\":\"google\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:17] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:17] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1364,\"provider\":\"google\",\"refreshToken\":\"dd5882ebce76e645292ce33ae74238abbb77c0a4ecc6a2bfe723cad82e72ba8e\",\"state\":\"full-refresh\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:18] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1364,\"provider\":\"google\",\"responseBody\":{\"error\":\"unauthorized_client\",\"error_description\":\"Unauthorized\"}} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:18] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:18] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1364,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:18] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1370,\"provider\":\"office\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:18] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1370,\"provider\":\"office\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:18] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:18] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1370,\"provider\":\"office\",\"refreshToken\":\"b7ee8035306d0043cea6e00e7c4fe14f745e44074a1194db62a31cdf8b70af3e\",\"state\":\"full-refresh\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:18] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1370,\"provider\":\"office\",\"responseBody\":\"{\\\"error\\\":\\\"invalid_client\\\",\\\"error_description\\\":\\\"AADSTS7000215: Invalid client secret provided. Ensure the secret being sent in the request is the client secret value, not the client secret ID, for a secret added to app 'bbcbb2ef-6200-4fae-82bd-d81f5dd738da'. Trace ID: 4c2bb697-406d-40cc-86ee-e5e0d3190200 Correlation ID: 59fa5567-af47-471c-ade4-32427bc3696d Timestamp: 2026-05-11 11:59:18Z\\\",\\\"error_codes\\\":[7000215],\\\"timestamp\\\":\\\"2026-05-11 11:59:18Z\\\",\\\"trace_id\\\":\\\"4c2bb697-406d-40cc-86ee-e5e0d3190200\\\",\\\"correlation_id\\\":\\\"59fa5567-af47-471c-ade4-32427bc3696d\\\",\\\"error_uri\\\":\\\"https://login.microsoftonline.com/error?code=7000215\\\"}\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:18] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:18] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1370,\"provider\":\"office\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:18] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1202,\"provider\":\"office\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:18] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1202,\"provider\":\"office\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:18] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:18] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1202,\"provider\":\"office\",\"refreshToken\":\"b458799ccc29b21a6e2eb5260fdb63e49ccba21bf942a3973fb63799bd7f0afe\",\"state\":\"full-refresh\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:19] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1202,\"provider\":\"office\",\"responseBody\":\"{\\\"error\\\":\\\"invalid_client\\\",\\\"error_description\\\":\\\"AADSTS7000215: Invalid client secret provided. Ensure the secret being sent in the request is the client secret value, not the client secret ID, for a secret added to app 'bbcbb2ef-6200-4fae-82bd-d81f5dd738da'. Trace ID: cdef5555-9c61-4f37-9329-636c2fac2000 Correlation ID: 665a5fe7-5773-46b1-b0c5-355b56f63238 Timestamp: 2026-05-11 11:59:19Z\\\",\\\"error_codes\\\":[7000215],\\\"timestamp\\\":\\\"2026-05-11 11:59:19Z\\\",\\\"trace_id\\\":\\\"cdef5555-9c61-4f37-9329-636c2fac2000\\\",\\\"correlation_id\\\":\\\"665a5fe7-5773-46b1-b0c5-355b56f63238\\\",\\\"error_uri\\\":\\\"https://login.microsoftonline.com/error?code=7000215\\\"}\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:19] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:19] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1202,\"provider\":\"office\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:19] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:19] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:19] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:19] local.INFO: Calendar sync job dispatched {\"calendar_id\":501} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:19] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1300,\"provider\":\"google\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:19] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1300,\"provider\":\"google\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:19] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:19] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1300,\"provider\":\"google\",\"refreshToken\":\"4b811db0725fd9602a95943519a7da935e2a5065da7d9ebfcb170752e3e1ddb8\",\"state\":\"full-refresh\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:19] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1300,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Account has been deleted\"}} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:19] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:19] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1300,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:19] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1409,\"provider\":\"google\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:19] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1409,\"provider\":\"google\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:19] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:19] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1409,\"provider\":\"google\",\"refreshToken\":\"e2a3f2d06894894eed1ee87d9db1ace77d4d42ee6e1288a8940ad2c10333b0c4\",\"state\":\"full-refresh\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:20] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1409,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:20] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:20] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1409,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1352,\"provider\":\"google\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:20] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1352,\"provider\":\"google\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:20] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1352,\"provider\":\"google\",\"refreshToken\":\"dd4b16b00fdc1216da6b717c02338c073636e29162826b2de6db3f064fc029eb\",\"state\":\"full-refresh\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:20] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1352,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Token has been expired or revoked.\"}} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:20] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:20] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1352,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1296,\"provider\":\"office\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:20] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1296,\"provider\":\"office\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:20] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1296,\"provider\":\"office\",\"refreshToken\":\"011ae723c9d800c674e0b4be76f49fc046dac7d501b66c59ef0d9549cfa56ae5\",\"state\":\"full-refresh\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"72554f2b-390c-41ec-90d1-a47821355d8d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:20] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"72554f2b-390c-41ec-90d1-a47821355d8d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"72554f2b-390c-41ec-90d1-a47821355d8d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:20] local.INFO: [Calendar] Processing sync {\"calendarId\":\"a33076c1-8d97-431a-99f0-85c9524e118b\",\"from\":null,\"to\":null,\"delta\":\"CIiFh8TP44kDEIiFh8TP44kDGAUgkZvkzgIokZvkzgI=\",\"last_sync\":\"2024-12-09 07:12:53\",\"dateMode\":\"daily\"} {\"correlation_id\":\"72554f2b-390c-41ec-90d1-a47821355d8d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:20] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"integration-app\",\"crm_owner\":1695,\"team_id\":3143} {\"correlation_id\":\"72554f2b-390c-41ec-90d1-a47821355d8d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"72554f2b-390c-41ec-90d1-a47821355d8d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:20] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"72554f2b-390c-41ec-90d1-a47821355d8d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"72554f2b-390c-41ec-90d1-a47821355d8d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:20] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1296,\"provider\":\"office\",\"responseBody\":\"{\\\"error\\\":\\\"invalid_client\\\",\\\"error_description\\\":\\\"AADSTS7000215: Invalid client secret provided. Ensure the secret being sent in the request is the client secret value, not the client secret ID, for a secret added to app 'bbcbb2ef-6200-4fae-82bd-d81f5dd738da'. Trace ID: 3eb29fa5-b102-4a40-ac03-2d533e321e00 Correlation ID: c777a41f-c760-4f54-9bef-de2c41baf41c Timestamp: 2026-05-11 11:59:20Z\\\",\\\"error_codes\\\":[7000215],\\\"timestamp\\\":\\\"2026-05-11 11:59:20Z\\\",\\\"trace_id\\\":\\\"3eb29fa5-b102-4a40-ac03-2d533e321e00\\\",\\\"correlation_id\\\":\\\"c777a41f-c760-4f54-9bef-de2c41baf41c\\\",\\\"error_uri\\\":\\\"https://login.microsoftonline.com/error?code=7000215\\\"}\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:20] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:20] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1296,\"provider\":\"office\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":391,\"provider\":\"office\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:20] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":391,\"provider\":\"office\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:20] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":391,\"provider\":\"office\",\"refreshToken\":\"00045eebae0f39b34887c6d53f92ae78064f7145e1f4b67754aebd03cfb2d881\",\"state\":\"full-refresh\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:21] local.INFO: [Google Calendar] Failed to watch channel for calendar {\"calendarId\":\"a33076c1-8d97-431a-99f0-85c9524e118b\",\"code\":400,\"reason\":\"{\n \\\"error\\\": {\n \\\"errors\\\": [\n {\n \\\"domain\\\": \\\"global\\\",\n \\\"reason\\\": \\\"push.webhookUrlNotHttps\\\",\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n ],\n \\\"code\\\": 400,\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n}\"} {\"correlation_id\":\"72554f2b-390c-41ec-90d1-a47821355d8d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:21] local.WARNING: [Calendar] Sync failed {\"calendarId\":\"a33076c1-8d97-431a-99f0-85c9524e118b\",\"code\":400,\"reason\":\"{\n \\\"error\\\": {\n \\\"errors\\\": [\n {\n \\\"domain\\\": \\\"global\\\",\n \\\"reason\\\": \\\"push.webhookUrlNotHttps\\\",\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n ],\n \\\"code\\\": 400,\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n}\"} {\"correlation_id\":\"72554f2b-390c-41ec-90d1-a47821355d8d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:21] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":391,\"provider\":\"office\",\"responseBody\":\"{\\\"error\\\":\\\"invalid_client\\\",\\\"error_description\\\":\\\"AADSTS7000215: Invalid client secret provided. Ensure the secret being sent in the request is the client secret value, not the client secret ID, for a secret added to app 'bbcbb2ef-6200-4fae-82bd-d81f5dd738da'. Trace ID: 8dc49cab-e0e8-49a6-b0ec-4dec88342600 Correlation ID: c4c4610b-b8ec-41e3-956f-c37115f2cc02 Timestamp: 2026-05-11 11:59:21Z\\\",\\\"error_codes\\\":[7000215],\\\"timestamp\\\":\\\"2026-05-11 11:59:21Z\\\",\\\"trace_id\\\":\\\"8dc49cab-e0e8-49a6-b0ec-4dec88342600\\\",\\\"correlation_id\\\":\\\"c4c4610b-b8ec-41e3-956f-c37115f2cc02\\\",\\\"error_uri\\\":\\\"https://login.microsoftonline.com/error?code=7000215\\\"}\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:21] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:21] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":391,\"provider\":\"office\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:21] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1271,\"provider\":\"office\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:21] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1271,\"provider\":\"office\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:21] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:21] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1271,\"provider\":\"office\",\"refreshToken\":\"118cde2c06993147b07ccaec4cbcd5026a819dea6c71081166a492933e392afb\",\"state\":\"full-refresh\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:21] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1271,\"provider\":\"office\",\"responseBody\":\"{\\\"error\\\":\\\"invalid_client\\\",\\\"error_description\\\":\\\"AADSTS7000215: Invalid client secret provided. Ensure the secret being sent in the request is the client secret value, not the client secret ID, for a secret added to app 'bbcbb2ef-6200-4fae-82bd-d81f5dd738da'. Trace ID: 9e93c930-8d89-4e10-bb33-f0a79e232300 Correlation ID: d196fba1-ae81-40c2-8be0-f9198045bf60 Timestamp: 2026-05-11 11:59:21Z\\\",\\\"error_codes\\\":[7000215],\\\"timestamp\\\":\\\"2026-05-11 11:59:21Z\\\",\\\"trace_id\\\":\\\"9e93c930-8d89-4e10-bb33-f0a79e232300\\\",\\\"correlation_id\\\":\\\"d196fba1-ae81-40c2-8be0-f9198045bf60\\\",\\\"error_uri\\\":\\\"https://login.microsoftonline.com/error?code=7000215\\\"}\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:21] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:21] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1271,\"provider\":\"office\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:21] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1351,\"provider\":\"google\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:21] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1351,\"provider\":\"google\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:21] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:21] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1351,\"provider\":\"google\",\"refreshToken\":\"4271d15b9e60a606439caddc68337f783e472c85b03dacff14d1b6dfded9051c\",\"state\":\"full-refresh\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:22] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1351,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:22] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:22] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1351,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:22] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1366,\"provider\":\"google\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:22] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1366,\"provider\":\"google\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:22] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:22] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1366,\"provider\":\"google\",\"refreshToken\":\"ae21385059b2eebfd43f68aecd56eccd702a1aabb6598f1f7ab594ed8af491b4\",\"state\":\"full-refresh\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:22] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1366,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:22] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:22] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1366,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:22] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:22] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:22] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:22] local.INFO: Calendar sync job dispatched {\"calendar_id\":378} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:22] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1421,\"provider\":\"office\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:22] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1421,\"provider\":\"office\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:22] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:22] local.INFO: Calendar sync job dispatched {\"calendar_id\":504} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:22] local.NOTICE: Calendar sync end {\"retrieved_calendars\":31,\"processed_calendars\":3} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:22] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"calendar:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":62.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:23] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"27d1c642-b0b5-4456-9b7c-7d8f6241ccac\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:23] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"27d1c642-b0b5-4456-9b7c-7d8f6241ccac\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:23] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"27d1c642-b0b5-4456-9b7c-7d8f6241ccac\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:23] local.INFO: [Calendar] Processing sync {\"calendarId\":\"2676cb6d-f86c-427e-bf78-591e388e3c1e\",\"from\":null,\"to\":null,\"delta\":\"CJ_x49O3jpIDEJ_x49O3jpIDGAUgw67KlwMow67KlwM=\",\"last_sync\":\"2026-01-19 07:48:40\",\"dateMode\":\"daily\"} {\"correlation_id\":\"27d1c642-b0b5-4456-9b7c-7d8f6241ccac\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:23] local.WARNING: [Pipedrive] Account not connected for user {\"userId\":\"e6538737-e7b4-455f-a37a-3e79b665a220\",\"account\":{\"Jiminny\\\\Models\\\\SocialAccount\":{\"id\":1116,\"sociable_id\":241,\"provider_user_id\":\"19555731\",\"expires\":1775683749,\"refresh_token_expires\":null,\"provider\":\"pipedrive\",\"state\":\"full-refresh\",\"auth_scope\":\"base,deals:full,activities:full,contacts:full,search:read\",\"retry_after\":null,\"created_at\":\"2023-09-08 09:44:29\",\"updated_at\":\"2026-04-08 22:58:34\"}}} {\"correlation_id\":\"27d1c642-b0b5-4456-9b7c-7d8f6241ccac\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:23] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"pipedrive\",\"crm_owner\":241,\"team_id\":19} {\"correlation_id\":\"27d1c642-b0b5-4456-9b7c-7d8f6241ccac\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:23] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"pipedrive\",\"team_id\":19} {\"correlation_id\":\"27d1c642-b0b5-4456-9b7c-7d8f6241ccac\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:23] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"pipedrive\",\"team_id\":19} {\"correlation_id\":\"27d1c642-b0b5-4456-9b7c-7d8f6241ccac\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:23] local.WARNING: [Calendar] CRM disconnected for user so events will not be matched {\"provider\":\"pipedrive\",\"user_id\":241,\"message\":\"Your Pipedrive account has become disconnected. Please login to Jiminny to reconnect.\"} {\"correlation_id\":\"27d1c642-b0b5-4456-9b7c-7d8f6241ccac\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:23] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"27d1c642-b0b5-4456-9b7c-7d8f6241ccac\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:23] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"27d1c642-b0b5-4456-9b7c-7d8f6241ccac\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:23] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"27d1c642-b0b5-4456-9b7c-7d8f6241ccac\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:23] local.INFO: [Google Calendar] Failed to watch channel for calendar {\"calendarId\":\"2676cb6d-f86c-427e-bf78-591e388e3c1e\",\"code\":400,\"reason\":\"{\n \\\"error\\\": {\n \\\"errors\\\": [\n {\n \\\"domain\\\": \\\"global\\\",\n \\\"reason\\\": \\\"push.webhookUrlNotHttps\\\",\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n ],\n \\\"code\\\": 400,\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n}\"} {\"correlation_id\":\"27d1c642-b0b5-4456-9b7c-7d8f6241ccac\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:23] local.WARNING: [Calendar] Sync failed {\"calendarId\":\"2676cb6d-f86c-427e-bf78-591e388e3c1e\",\"code\":400,\"reason\":\"{\n \\\"error\\\": {\n \\\"errors\\\": [\n {\n \\\"domain\\\": \\\"global\\\",\n \\\"reason\\\": \\\"push.webhookUrlNotHttps\\\",\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n ],\n \\\"code\\\": 400,\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n}\"} {\"correlation_id\":\"27d1c642-b0b5-4456-9b7c-7d8f6241ccac\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:23] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1421,\"provider\":\"office\"} {\"correlation_id\":\"43ff8e45-ea67-4944-93ae-3234fb3f62d8\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:23] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1421,\"provider\":\"office\"} {\"correlation_id\":\"43ff8e45-ea67-4944-93ae-3234fb3f62d8\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:23] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"43ff8e45-ea67-4944-93ae-3234fb3f62d8\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:23] local.INFO: [Calendar] Processing sync {\"calendarId\":\"9e8b1a2c-1a8f-42bd-b161-810fc0baf540\",\"from\":null,\"to\":null,\"delta\":\"R0usmcdvmMuZCBYV0hguCLlvcOB4kXlhlC7KgH1SnZwTrZ3faZv1fXPQqJhxe_L9AxWWlb-wASsjGiiWlhsBUg9MFb3ZdlAYerVV_ZirRPbsKWCxEXhybD90arJmok_M4ecGFUQ9_BIGu-c6RAnJy2TRKZ7gPTsJi_8TGceGAuqimlhm4G4mjDLvYVVwImjjU7M3xJvUzL47dLOGNTJCww.k1TST0VEYCgbFOkwa3ysYMi100FtVfkzfqlXLnV6gPg\",\"last_sync\":\"2026-05-11 06:13:36\",\"dateMode\":\"daily\"} {\"correlation_id\":\"43ff8e45-ea67-4944-93ae-3234fb3f62d8\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:23] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"43ff8e45-ea67-4944-93ae-3234fb3f62d8\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:23] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"43ff8e45-ea67-4944-93ae-3234fb3f62d8\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:23] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"43ff8e45-ea67-4944-93ae-3234fb3f62d8\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:23] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":89,\"team_id\":2} {\"correlation_id\":\"43ff8e45-ea67-4944-93ae-3234fb3f62d8\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:23] local.INFO: [MS Office Calendar] Skipping delta sync for daily mode {\"calendarId\":\"9e8b1a2c-1a8f-42bd-b161-810fc0baf540\"} {\"correlation_id\":\"43ff8e45-ea67-4944-93ae-3234fb3f62d8\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 12:00:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"16764cf4-b2f9-4ea6-b8a7-07857da37383\",\"trace_id\":\"d9e5f444-633d-45ab-b487-571cee7de329\"}\n[2026-05-11 12:00:18] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"16764cf4-b2f9-4ea6-b8a7-07857da37383\",\"trace_id\":\"d9e5f444-633d-45ab-b487-571cee7de329\"}\n[2026-05-11 12:00:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"16764cf4-b2f9-4ea6-b8a7-07857da37383\",\"trace_id\":\"d9e5f444-633d-45ab-b487-571cee7de329\"}\n[2026-05-11 12:00:22] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"43f339b1-32c0-42ae-9aac-9268dea7d69c\",\"trace_id\":\"6400214f-9fc1-487d-b16d-27b678738800\"}\n[2026-05-11 12:00:22] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"43f339b1-32c0-42ae-9aac-9268dea7d69c\",\"trace_id\":\"6400214f-9fc1-487d-b16d-27b678738800\"}\n[2026-05-11 12:00:27] local.NOTICE: Monitoring start {\"correlation_id\":\"cc967e7a-75d5-4bc9-8265-4495f751e999\",\"trace_id\":\"ec8bd9fe-5311-4307-8aff-ad8fa7e7ca75\"}\n[2026-05-11 12:00:27] local.NOTICE: Monitoring end {\"correlation_id\":\"cc967e7a-75d5-4bc9-8265-4495f751e999\",\"trace_id\":\"ec8bd9fe-5311-4307-8aff-ad8fa7e7ca75\"}\n[2026-05-11 12:00:32] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"83c202cc-53cc-4a51-acb0-f88fe85b06bb\",\"trace_id\":\"fcf16c02-0fa4-4310-99d5-e155100773b9\"}\n[2026-05-11 12:00:32] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"83c202cc-53cc-4a51-acb0-f88fe85b06bb\",\"trace_id\":\"fcf16c02-0fa4-4310-99d5-e155100773b9\"}\n[2026-05-11 12:00:38] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"b98923e0-1664-4349-a8c6-80dc188f9a20\",\"trace_id\":\"aa4b783b-8ff4-475e-9407-4559a3152798\"}\n[2026-05-11 12:00:38] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"b98923e0-1664-4349-a8c6-80dc188f9a20\",\"trace_id\":\"aa4b783b-8ff4-475e-9407-4559a3152798\"}\n[2026-05-11 12:00:38] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"b98923e0-1664-4349-a8c6-80dc188f9a20\",\"trace_id\":\"aa4b783b-8ff4-475e-9407-4559a3152798\"}\n[2026-05-11 12:00:38] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"b98923e0-1664-4349-a8c6-80dc188f9a20\",\"trace_id\":\"aa4b783b-8ff4-475e-9407-4559a3152798\"}\n[2026-05-11 12:00:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"c67986e6-b263-426c-a847-483103e2780c\",\"trace_id\":\"88b99f49-829d-47d1-b6f8-fcedc2df94c8\"}\n[2026-05-11 12:00:48] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 11:58:00, 2026-05-11 12:00:00] {\"correlation_id\":\"c67986e6-b263-426c-a847-483103e2780c\",\"trace_id\":\"88b99f49-829d-47d1-b6f8-fcedc2df94c8\"}\n[2026-05-11 12:00:48] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 11:58:00, 2026-05-11 12:00:00] {\"correlation_id\":\"c67986e6-b263-426c-a847-483103e2780c\",\"trace_id\":\"88b99f49-829d-47d1-b6f8-fcedc2df94c8\"}\n[2026-05-11 12:00:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"c67986e6-b263-426c-a847-483103e2780c\",\"trace_id\":\"88b99f49-829d-47d1-b6f8-fcedc2df94c8\"}\n[2026-05-11 12:00:56] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"69e8e70b-cb80-4948-9a99-d768c7fabb18\",\"trace_id\":\"49c9b704-6bb0-479c-97bd-6a5178b1af28\"}\n[2026-05-11 12:00:57] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"69e8e70b-cb80-4948-9a99-d768c7fabb18\",\"trace_id\":\"49c9b704-6bb0-479c-97bd-6a5178b1af28\"}\n[2026-05-11 12:01:08] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"508b85d3-8683-456d-ab3f-5cd1528db1b3\",\"trace_id\":\"ac8356b6-93bc-47f5-bebe-f2f4a666ab44\"}\n[2026-05-11 12:01:09] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"508b85d3-8683-456d-ab3f-5cd1528db1b3\",\"trace_id\":\"ac8356b6-93bc-47f5-bebe-f2f4a666ab44\"}\n[2026-05-11 12:01:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"3d1a378d-60e3-4927-8905-f8887e1d17f3\",\"trace_id\":\"944b7b8f-179d-4ba5-9a06-0fd3f175c075\"}\n[2026-05-11 12:01:16] local.INFO: Running pre-meeting notification command {\"correlation_id\":\"3d1a378d-60e3-4927-8905-f8887e1d17f3\",\"trace_id\":\"944b7b8f-179d-4ba5-9a06-0fd3f175c075\"}\n[2026-05-11 12:01:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"3d1a378d-60e3-4927-8905-f8887e1d17f3\",\"trace_id\":\"944b7b8f-179d-4ba5-9a06-0fd3f175c075\"}\n[2026-05-11 12:01:23] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"59b02f73-ae3f-4e46-9109-e80049515ff5\",\"trace_id\":\"5614ddaf-8e1e-4975-bab7-28cc5230ecce\"}\n[2026-05-11 12:01:23] local.INFO: Running conference:monitor:start command for activities in (2026-05-11 11:51:00, 2026-05-11 11:56:00] {\"correlation_id\":\"59b02f73-ae3f-4e46-9109-e80049515ff5\",\"trace_id\":\"5614ddaf-8e1e-4975-bab7-28cc5230ecce\"}\n[2026-05-11 12:01:23] local.INFO: [conference:monitor:start] No activities found in (2026-05-11 11:51:00, 2026-05-11 11:56:00] {\"correlation_id\":\"59b02f73-ae3f-4e46-9109-e80049515ff5\",\"trace_id\":\"5614ddaf-8e1e-4975-bab7-28cc5230ecce\"}\n[2026-05-11 12:01:23] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"59b02f73-ae3f-4e46-9109-e80049515ff5\",\"trace_id\":\"5614ddaf-8e1e-4975-bab7-28cc5230ecce\"}\n[2026-05-11 12:01:32] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"ccd17019-afa7-4e62-8f7e-56f74b18e2ed\",\"trace_id\":\"491d0999-cf10-4f33-bd48-ca0374754ce5\"}\n[2026-05-11 12:01:32] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesEnded {\"from\":\"11:56\",\"to\":\"12:01\"} {\"correlation_id\":\"ccd17019-afa7-4e62-8f7e-56f74b18e2ed\",\"trace_id\":\"491d0999-cf10-4f33-bd48-ca0374754ce5\"}\n[2026-05-11 12:01:33] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesWithUnfinishedSession {\"from\":\"01:51\",\"to\":\"01:56\"} {\"correlation_id\":\"ccd17019-afa7-4e62-8f7e-56f74b18e2ed\",\"trace_id\":\"491d0999-cf10-4f33-bd48-ca0374754ce5\"}\n[2026-05-11 12:01:33] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"ccd17019-afa7-4e62-8f7e-56f74b18e2ed\",\"trace_id\":\"491d0999-cf10-4f33-bd48-ca0374754ce5\"}\n[2026-05-11 12:01:39] local.NOTICE: Repairing HubSpot tokens start {\"correlation_id\":\"151e8889-735a-4331-9efa-440a1c9f11b2\",\"trace_id\":\"062d8887-fc2e-448f-9f14-555bfbeabeda\"}\n[2026-05-11 12:01:40] local.INFO: Trying to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\"} {\"correlation_id\":\"151e8889-735a-4331-9efa-440a1c9f11b2\",\"trace_id\":\"062d8887-fc2e-448f-9f14-555bfbeabeda\"}\n[2026-05-11 12:01:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"151e8889-735a-4331-9efa-440a1c9f11b2\",\"trace_id\":\"062d8887-fc2e-448f-9f14-555bfbeabeda\"}\n[2026-05-11 12:01:40] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":59,\"provider\":\"hubspot\",\"refreshToken\":\"97b78f6e2cc49965c00c2492b602b02708b1392551e6b3f113fbaa48992af90b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"151e8889-735a-4331-9efa-440a1c9f11b2\",\"trace_id\":\"062d8887-fc2e-448f-9f14-555bfbeabeda\"}\n[2026-05-11 12:01:40] local.ERROR: Failed to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"151e8889-735a-4331-9efa-440a1c9f11b2\",\"trace_id\":\"062d8887-fc2e-448f-9f14-555bfbeabeda\"}\n[2026-05-11 12:01:40] local.INFO: Trying to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\"} {\"correlation_id\":\"151e8889-735a-4331-9efa-440a1c9f11b2\",\"trace_id\":\"062d8887-fc2e-448f-9f14-555bfbeabeda\"}\n[2026-05-11 12:01:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"151e8889-735a-4331-9efa-440a1c9f11b2\",\"trace_id\":\"062d8887-fc2e-448f-9f14-555bfbeabeda\"}\n[2026-05-11 12:01:40] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":306,\"provider\":\"hubspot\",\"refreshToken\":\"6fa6aa8cc641d131231acc3470f5c03cb3b07b2e580fb18f8acb3b1dbb72549b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"151e8889-735a-4331-9efa-440a1c9f11b2\",\"trace_id\":\"062d8887-fc2e-448f-9f14-555bfbeabeda\"}\n[2026-05-11 12:01:41] local.ERROR: Failed to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"151e8889-735a-4331-9efa-440a1c9f11b2\",\"trace_id\":\"062d8887-fc2e-448f-9f14-555bfbeabeda\"}\n[2026-05-11 12:01:41] local.INFO: Trying to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\"} {\"correlation_id\":\"151e8889-735a-4331-9efa-440a1c9f11b2\",\"trace_id\":\"062d8887-fc2e-448f-9f14-555bfbeabeda\"}\n[2026-05-11 12:01:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"151e8889-735a-4331-9efa-440a1c9f11b2\",\"trace_id\":\"062d8887-fc2e-448f-9f14-555bfbeabeda\"}\n[2026-05-11 12:01:41] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1372,\"provider\":\"hubspot\",\"refreshToken\":\"9aa73948c761da29dce46c177cf9aee1fde483a44169ca38723f9f0597d7a8c4\",\"state\":\"full-refresh\"} {\"correlation_id\":\"151e8889-735a-4331-9efa-440a1c9f11b2\",\"trace_id\":\"062d8887-fc2e-448f-9f14-555bfbeabeda\"}\n[2026-05-11 12:01:41] local.ERROR: Failed to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"151e8889-735a-4331-9efa-440a1c9f11b2\",\"trace_id\":\"062d8887-fc2e-448f-9f14-555bfbeabeda\"}\n[2026-05-11 12:01:41] local.NOTICE: Repairing HubSpot tokens end {\"total\":3,\"fixed\":0,\"failed\":3} {\"correlation_id\":\"151e8889-735a-4331-9efa-440a1c9f11b2\",\"trace_id\":\"062d8887-fc2e-448f-9f14-555bfbeabeda\"}\n[2026-05-11 12:02:01] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"4633f3e5-fa89-4b9f-af74-85e20c5575a4\",\"trace_id\":\"26218fe6-75fb-4591-adb1-5291ac0e574f\"}\n[2026-05-11 12:02:01] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"jiminny:transcription:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"6b664950-d65b-427a-bfaa-97590c083f36\",\"trace_id\":\"aa7aa5f3-c4c9-4a35-bc44-c4a3c55a8d5c\"}\n[2026-05-11 12:02:01] local.INFO: [HubSpot Journal Command] Starting polling service {\"correlation_id\":\"cabbf04d-6060-440b-9dd4-cabc547f7ee8\",\"trace_id\":\"cb94e764-8868-41c8-9a3b-1d00d7e9292a\"}\n[2026-05-11 12:02:01] local.INFO: [HubSpot Journal Polling] Service starting {\"memory_limit\":\"256M\",\"max_execution_time\":\"0\",\"initial_memory_mb\":60.0} {\"correlation_id\":\"cabbf04d-6060-440b-9dd4-cabc547f7ee8\",\"trace_id\":\"cb94e764-8868-41c8-9a3b-1d00d7e9292a\"}\n[2026-05-11 12:02:01] local.INFO: [HubSpot Journal Polling] Acquired polling lock {\"expires_at\":\"2026-05-11T12:04:01.310141Z\"} {\"correlation_id\":\"cabbf04d-6060-440b-9dd4-cabc547f7ee8\",\"trace_id\":\"cb94e764-8868-41c8-9a3b-1d00d7e9292a\"}\n[2026-05-11 12:02:01] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"jiminny:transcription:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"6b664950-d65b-427a-bfaa-97590c083f36\",\"trace_id\":\"aa7aa5f3-c4c9-4a35-bc44-c4a3c55a8d5c\"}\n[2026-05-11 12:02:01] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"4633f3e5-fa89-4b9f-af74-85e20c5575a4\",\"trace_id\":\"26218fe6-75fb-4591-adb1-5291ac0e574f\"}\n[2026-05-11 12:02:02] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"cabbf04d-6060-440b-9dd4-cabc547f7ee8\",\"trace_id\":\"cb94e764-8868-41c8-9a3b-1d00d7e9292a\"}\n[2026-05-11 12:02:07] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"cabbf04d-6060-440b-9dd4-cabc547f7ee8\",\"trace_id\":\"cb94e764-8868-41c8-9a3b-1d00d7e9292a\"}\n[2026-05-11 12:02:10] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:reset-governor\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"c8b56854-4e30-4556-9b46-f560b0f45211\",\"trace_id\":\"3a6784eb-469c-443d-81c1-bc70ed4e0646\"}\n[2026-05-11 12:02:10] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:reset-governor\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"c8b56854-4e30-4556-9b46-f560b0f45211\",\"trace_id\":\"3a6784eb-469c-443d-81c1-bc70ed4e0646\"}\n[2026-05-11 12:02:12] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"cabbf04d-6060-440b-9dd4-cabc547f7ee8\",\"trace_id\":\"cb94e764-8868-41c8-9a3b-1d00d7e9292a\"}\n[2026-05-11 12:02:25] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"6dea41d7-ee3e-4e7f-a97a-60b6016a09bc\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:25] local.INFO: Dispatching activity sync job {\"import_id\":812719,\"provider\":\"twilio-flex\",\"team\":\"jiminny\"} {\"correlation_id\":\"6dea41d7-ee3e-4e7f-a97a-60b6016a09bc\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:25] local.INFO: Dispatching activity sync job {\"import_id\":812720,\"provider\":\"xant\",\"team\":\"jiminny\"} {\"correlation_id\":\"6dea41d7-ee3e-4e7f-a97a-60b6016a09bc\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:25] local.INFO: Dispatching activity sync job {\"import_id\":812721,\"provider\":\"apollo\",\"team\":\"jiminny\"} {\"correlation_id\":\"6dea41d7-ee3e-4e7f-a97a-60b6016a09bc\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:25] local.INFO: Dispatching activity sync job {\"import_id\":812722,\"provider\":\"groove\",\"team\":\"jiminny\"} {\"correlation_id\":\"6dea41d7-ee3e-4e7f-a97a-60b6016a09bc\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:25] local.INFO: Dispatching activity sync job {\"import_id\":812723,\"provider\":\"twilio-video\",\"team\":\"jiminny\"} {\"correlation_id\":\"6dea41d7-ee3e-4e7f-a97a-60b6016a09bc\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:25] local.INFO: Dispatching activity sync job {\"import_id\":812724,\"provider\":\"hubspot\",\"team\":\"hubspot\"} {\"correlation_id\":\"6dea41d7-ee3e-4e7f-a97a-60b6016a09bc\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:25] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"6dea41d7-ee3e-4e7f-a97a-60b6016a09bc\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:27] local.WARNING: [Salesforce] Account not connected for user {\"userId\":\"cdf8b554-d951-4758-bc2b-c1b85d1cd0b9\",\"account\":null} {\"correlation_id\":\"00ff4d65-3fa5-493c-b0e6-5a0a585055d2\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:27] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"salesforce\",\"crm_owner\":3,\"team_id\":1} {\"correlation_id\":\"00ff4d65-3fa5-493c-b0e6-5a0a585055d2\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:27] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"salesforce\",\"team_id\":1} {\"correlation_id\":\"00ff4d65-3fa5-493c-b0e6-5a0a585055d2\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:27] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"salesforce\",\"team_id\":1} {\"correlation_id\":\"00ff4d65-3fa5-493c-b0e6-5a0a585055d2\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:27] local.ALERT: [SyncActivity] Failed {\"import_id\":812719,\"provider\":\"twilio-flex\",\"provider_id\":317,\"team\":\"jiminny\",\"team_id\":1,\"reason\":\"Social account for Salesforce cannot be found. Please login to Jiminny to connect.\",\"file\":\"/home/jiminny/app/Services/Crm/BaseService.php\",\"line\":646} {\"correlation_id\":\"00ff4d65-3fa5-493c-b0e6-5a0a585055d2\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"7d015a53-1758-4ad0-8885-9ec40f6ee1e5\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"7d015a53-1758-4ad0-8885-9ec40f6ee1e5\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7d015a53-1758-4ad0-8885-9ec40f6ee1e5\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:28] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"cabbf04d-6060-440b-9dd4-cabc547f7ee8\",\"trace_id\":\"cb94e764-8868-41c8-9a3b-1d00d7e9292a\"}\n[2026-05-11 12:02:28] local.ALERT: [SyncActivity] Failed {\"import_id\":812720,\"provider\":\"xant\",\"provider_id\":161,\"team\":\"jiminny\",\"team_id\":1,\"reason\":\"Activity Provider account not connected.\",\"file\":\"/home/jiminny/app/Services/Activity/ActivityProviderService.php\",\"line\":174} {\"correlation_id\":\"7d015a53-1758-4ad0-8885-9ec40f6ee1e5\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:28] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"c47d3748-a9fc-4ff6-91c2-5756ac61d83c\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:28] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"c47d3748-a9fc-4ff6-91c2-5756ac61d83c\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:28] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"c47d3748-a9fc-4ff6-91c2-5756ac61d83c\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:29] local.ALERT: [SyncActivity] Failed {\"import_id\":812721,\"provider\":\"apollo\",\"provider_id\":441,\"team\":\"jiminny\",\"team_id\":1,\"reason\":\"Activity Provider account not connected.\",\"file\":\"/home/jiminny/app/Services/Activity/ActivityProviderService.php\",\"line\":174} {\"correlation_id\":\"c47d3748-a9fc-4ff6-91c2-5756ac61d83c\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"af70dfd5-1584-4eb5-a88d-13ac6ed503ac\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"af70dfd5-1584-4eb5-a88d-13ac6ed503ac\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"af70dfd5-1584-4eb5-a88d-13ac6ed503ac\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:30] local.ALERT: [SyncActivity] Failed {\"import_id\":812722,\"provider\":\"groove\",\"provider_id\":228,\"team\":\"jiminny\",\"team_id\":1,\"reason\":\"Activity Provider account not connected.\",\"file\":\"/home/jiminny/app/Services/Activity/ActivityProviderService.php\",\"line\":174} {\"correlation_id\":\"af70dfd5-1584-4eb5-a88d-13ac6ed503ac\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"51b192af-e79f-4e2b-ad98-feaebcf20c48\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"51b192af-e79f-4e2b-ad98-feaebcf20c48\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"51b192af-e79f-4e2b-ad98-feaebcf20c48\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:32] local.ALERT: [SyncActivity] Failed {\"import_id\":812723,\"provider\":\"twilio-video\",\"provider_id\":243,\"team\":\"jiminny\",\"team_id\":1,\"reason\":\"Activity Provider account not connected.\",\"file\":\"/home/jiminny/app/Services/Activity/ActivityProviderService.php\",\"line\":174} {\"correlation_id\":\"51b192af-e79f-4e2b-ad98-feaebcf20c48\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"85d11b4b-b935-429a-bc5a-4584707f151f\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"85d11b4b-b935-429a-bc5a-4584707f151f\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"85d11b4b-b935-429a-bc5a-4584707f151f\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":89,\"team_id\":2} {\"correlation_id\":\"85d11b4b-b935-429a-bc5a-4584707f151f\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":408,\"provider\":\"hubspot\"} {\"correlation_id\":\"85d11b4b-b935-429a-bc5a-4584707f151f\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:32] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":408,\"provider\":\"hubspot\"} {\"correlation_id\":\"85d11b4b-b935-429a-bc5a-4584707f151f\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"85d11b4b-b935-429a-bc5a-4584707f151f\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:32] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":408,\"provider\":\"hubspot\",\"refreshToken\":\"de4e47eb985578f4218833e763e31059e88b562e87e10749b3389be2328f0aa7\",\"state\":\"connected\"} {\"correlation_id\":\"85d11b4b-b935-429a-bc5a-4584707f151f\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:33] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"85d11b4b-b935-429a-bc5a-4584707f151f\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:33] local.INFO: [SocialAccountObserver] Access token was modified, encrypting {\"correlation_id\":\"85d11b4b-b935-429a-bc5a-4584707f151f\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:33] local.INFO: [SocialAccountService] Token refreshed {\"socialAccountId\":408,\"provider\":\"hubspot\",\"state\":\"connected\"} {\"correlation_id\":\"85d11b4b-b935-429a-bc5a-4584707f151f\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:33] local.INFO: [SyncActivity] Start {\"import_id\":812724,\"provider\":\"hubspot\",\"provider_id\":31,\"team\":\"hubspot\",\"team_id\":2} {\"correlation_id\":\"85d11b4b-b935-429a-bc5a-4584707f151f\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:34] local.INFO: [HubSpot] Search calls for period {\"from\":\"2026-05-11 11:44:00\",\"to\":\"2026-05-11 12:00:00\"} {\"correlation_id\":\"85d11b4b-b935-429a-bc5a-4584707f151f\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:34] local.INFO: [SyncActivity] End {\"import_id\":812724,\"provider\":\"hubspot\",\"provider_id\":31,\"team\":\"hubspot\",\"team_id\":2} {\"correlation_id\":\"85d11b4b-b935-429a-bc5a-4584707f151f\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:34] local.INFO: [SyncActivity] Memory usage {\"import_id\":812724,\"provider\":\"hubspot\",\"provider_id\":31,\"team\":\"hubspot\",\"team_id\":2,\"memory_usage\":28724792,\"memory_real_usage\":65011712,\"pid\":74086} {\"correlation_id\":\"85d11b4b-b935-429a-bc5a-4584707f151f\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:40] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:fail-stalled\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"1a4d5069-a7b3-4b3e-8d7f-c076e44351b3\",\"trace_id\":\"d6c6e772-8962-4940-877d-64950182e999\"}\n[2026-05-11 12:02:40] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:fail-stalled\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"1a4d5069-a7b3-4b3e-8d7f-c076e44351b3\",\"trace_id\":\"d6c6e772-8962-4940-877d-64950182e999\"}\n[2026-05-11 12:02:51] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"jiminny:transcription:retry-stuck\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"b6b032b5-4d0b-441a-a8b3-e4cc1ca06bd0\",\"trace_id\":\"27f07167-c0df-41b6-a65c-8209f1a593a7\"}\n[2026-05-11 12:02:51] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"jiminny:transcription:retry-stuck\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"b6b032b5-4d0b-441a-a8b3-e4cc1ca06bd0\",\"trace_id\":\"27f07167-c0df-41b6-a65c-8209f1a593a7\"}\n[2026-05-11 12:02:58] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"cabbf04d-6060-440b-9dd4-cabc547f7ee8\",\"trace_id\":\"cb94e764-8868-41c8-9a3b-1d00d7e9292a\"}\n[2026-05-11 12:02:58] local.WARNING: [HubSpot Journal Polling] Maximum empty results reached, stopping {\"empty_results\":5,\"max_empty_results\":5} {\"correlation_id\":\"cabbf04d-6060-440b-9dd4-cabc547f7ee8\",\"trace_id\":\"cb94e764-8868-41c8-9a3b-1d00d7e9292a\"}\n[2026-05-11 12:02:58] local.WARNING: [HubSpot Journal Polling] Maximum empty results reached, stopping {\"empty_results\":5,\"max_empty_results\":5} {\"correlation_id\":\"cabbf04d-6060-440b-9dd4-cabc547f7ee8\",\"trace_id\":\"cb94e764-8868-41c8-9a3b-1d00d7e9292a\"}\n[2026-05-11 12:02:58] local.INFO: [HubSpot Journal Polling] Service ending {\"runtime_seconds\":57,\"total_cycles\":5,\"files_downloaded\":0,\"empty_files\":0,\"other_portal_skipped\":0,\"total_events\":0,\"events_per_file\":0,\"avg_api_ms\":318.0,\"avg_download_ms\":0.0,\"avg_transform_ms\":0.0,\"avg_process_ms\":0.0,\"peak_memory_mb\":99.73} {\"correlation_id\":\"cabbf04d-6060-440b-9dd4-cabc547f7ee8\",\"trace_id\":\"cb94e764-8868-41c8-9a3b-1d00d7e9292a\"}\n[2026-05-11 12:02:58] local.INFO: [HubSpot Journal Polling] Saved offset to database on cleanup {\"offset\":\"019e15a9-9ea0-7da7-87bc-82592e3ccf0d\"} {\"correlation_id\":\"cabbf04d-6060-440b-9dd4-cabc547f7ee8\",\"trace_id\":\"cb94e764-8868-41c8-9a3b-1d00d7e9292a\"}\n[2026-05-11 12:02:58] local.INFO: [HubSpot Journal Polling] Released polling lock {\"correlation_id\":\"cabbf04d-6060-440b-9dd4-cabc547f7ee8\",\"trace_id\":\"cb94e764-8868-41c8-9a3b-1d00d7e9292a\"}\n[2026-05-11 12:03:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"9a5b22ae-4849-4cb5-84a1-de89e04cd5b8\",\"trace_id\":\"8447064c-43dc-422d-894e-a54ffbbf7181\"}\n[2026-05-11 12:03:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"9a5b22ae-4849-4cb5-84a1-de89e04cd5b8\",\"trace_id\":\"8447064c-43dc-422d-894e-a54ffbbf7181\"}\n[2026-05-11 12:03:23] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"64980aec-2896-42fb-bcb9-02034393441c\",\"trace_id\":\"5350fe7e-a328-46e9-8205-8293d02f206c\"}\n[2026-05-11 12:03:23] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"64980aec-2896-42fb-bcb9-02034393441c\",\"trace_id\":\"5350fe7e-a328-46e9-8205-8293d02f206c\"}\n[2026-05-11 12:03:26] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"4a8727b3-dd1a-4c4b-9b62-033f1040e6a5\",\"trace_id\":\"36c76caf-78a3-42a5-be8c-510bd9c6e036\"}\n[2026-05-11 12:03:27] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"4a8727b3-dd1a-4c4b-9b62-033f1040e6a5\",\"trace_id\":\"36c76caf-78a3-42a5-be8c-510bd9c6e036\"}\n[2026-05-11 12:03:30] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"6bd83c32-112d-4211-94e0-33cf12b0491c\",\"trace_id\":\"566fa6e6-4ce9-405d-8ca5-36dae51c8385\"}\n[2026-05-11 12:03:30] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"6bd83c32-112d-4211-94e0-33cf12b0491c\",\"trace_id\":\"566fa6e6-4ce9-405d-8ca5-36dae51c8385\"}\n[2026-05-11 12:03:40] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a7dfd1ad-f565-4ea4-a7b3-6ad8ad72cb82\",\"trace_id\":\"b028c50a-c9f4-43c2-90b1-e32ad7d85610\"}\n[2026-05-11 12:03:40] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a7dfd1ad-f565-4ea4-a7b3-6ad8ad72cb82\",\"trace_id\":\"b028c50a-c9f4-43c2-90b1-e32ad7d85610\"}\n[2026-05-11 12:03:49] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"990087d4-ae3a-4724-ba67-901c58aab41f\",\"trace_id\":\"bdf3c73c-0948-4490-91b7-953c76289e13\"}\n[2026-05-11 12:03:50] local.INFO: Dispatching activity sync job {\"import_id\":812725,\"provider\":\"hubspot\",\"team\":\"hubspot\"} {\"correlation_id\":\"990087d4-ae3a-4724-ba67-901c58aab41f\",\"trace_id\":\"bdf3c73c-0948-4490-91b7-953c76289e13\"}\n[2026-05-11 12:03:50] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"990087d4-ae3a-4724-ba67-901c58aab41f\",\"trace_id\":\"bdf3c73c-0948-4490-91b7-953c76289e13\"}\n[2026-05-11 12:03:51] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4e0b1920-6943-4fd0-832d-2f878ad84821\",\"trace_id\":\"bdf3c73c-0948-4490-91b7-953c76289e13\"}\n[2026-05-11 12:03:51] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4e0b1920-6943-4fd0-832d-2f878ad84821\",\"trace_id\":\"bdf3c73c-0948-4490-91b7-953c76289e13\"}\n[2026-05-11 12:03:51] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4e0b1920-6943-4fd0-832d-2f878ad84821\",\"trace_id\":\"bdf3c73c-0948-4490-91b7-953c76289e13\"}\n[2026-05-11 12:03:51] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":89,\"team_id\":2} {\"correlation_id\":\"4e0b1920-6943-4fd0-832d-2f878ad84821\",\"trace_id\":\"bdf3c73c-0948-4490-91b7-953c76289e13\"}\n[2026-05-11 12:03:51] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":408,\"provider\":\"hubspot\"} {\"correlation_id\":\"4e0b1920-6943-4fd0-832d-2f878ad84821\",\"trace_id\":\"bdf3c73c-0948-4490-91b7-953c76289e13\"}\n[2026-05-11 12:03:51] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":408,\"provider\":\"hubspot\"} {\"correlation_id\":\"4e0b1920-6943-4fd0-832d-2f878ad84821\",\"trace_id\":\"bdf3c73c-0948-4490-91b7-953c76289e13\"}\n[2026-05-11 12:03:51] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4e0b1920-6943-4fd0-832d-2f878ad84821\",\"trace_id\":\"bdf3c73c-0948-4490-91b7-953c76289e13\"}\n[2026-05-11 12:03:51] local.INFO: [SyncActivity] Start {\"import_id\":812725,\"provider\":\"hubspot\",\"provider_id\":31,\"team\":\"hubspot\",\"team_id\":2} {\"correlation_id\":\"4e0b1920-6943-4fd0-832d-2f878ad84821\",\"trace_id\":\"bdf3c73c-0948-4490-91b7-953c76289e13\"}\n[2026-05-11 12:03:51] local.INFO: [HubSpot] Search calls for period {\"from\":\"2026-05-11 11:00:00\",\"to\":\"2026-05-11 12:00:00\"} {\"correlation_id\":\"4e0b1920-6943-4fd0-832d-2f878ad84821\",\"trace_id\":\"bdf3c73c-0948-4490-91b7-953c76289e13\"}\n[2026-05-11 12:03:51] local.INFO: [SyncActivity] End {\"import_id\":812725,\"provider\":\"hubspot\",\"provider_id\":31,\"team\":\"hubspot\",\"team_id\":2} {\"correlation_id\":\"4e0b1920-6943-4fd0-832d-2f878ad84821\",\"trace_id\":\"bdf3c73c-0948-4490-91b7-953c76289e13\"}\n[2026-05-11 12:03:51] local.INFO: [SyncActivity] Memory usage {\"import_id\":812725,\"provider\":\"hubspot\",\"provider_id\":31,\"team\":\"hubspot\",\"team_id\":2,\"memory_usage\":28883304,\"memory_real_usage\":65011712,\"pid\":74086} {\"correlation_id\":\"4e0b1920-6943-4fd0-832d-2f878ad84821\",\"trace_id\":\"bdf3c73c-0948-4490-91b7-953c76289e13\"}\n[2026-05-11 12:03:58] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"e1b9c81d-937c-4057-88dd-842fdbb3118f\",\"trace_id\":\"b45cc768-e8ce-4277-9d31-37cf858c8706\"}\n[2026-05-11 12:03:59] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"e1b9c81d-937c-4057-88dd-842fdbb3118f\",\"trace_id\":\"b45cc768-e8ce-4277-9d31-37cf858c8706\"}\n[2026-05-11 12:04:07] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"nudges:send\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"09ce46fe-edd8-441f-ab67-82736c438274\",\"trace_id\":\"d49cdd65-6530-44c0-adaa-92661a4d3a2a\"}\n[2026-05-11 12:04:08] local.INFO: [Jiminny\\Component\\Nudge\\Command\\NudgesSendCommand::iterate] Processing user nudges. {\"id\":1845,\"uuid\":\"5486011b-8a99-4711-a7ad-c31d433f7c05\",\"email\":\"carter.leila@example.com\",\"timezone\":{\"DateTimeZone\":{\"timezone_type\":3,\"timezone\":\"Pacific/Tarawa\"}}} {\"correlation_id\":\"09ce46fe-edd8-441f-ab67-82736c438274\",\"trace_id\":\"d49cdd65-6530-44c0-adaa-92661a4d3a2a\"}\n[2026-05-11 12:04:08] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"nudges:send\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"09ce46fe-edd8-441f-ab67-82736c438274\",\"trace_id\":\"d49cdd65-6530-44c0-adaa-92661a4d3a2a\"}\n[2026-05-11 12:04:08] local.INFO: [Jiminny\\Component\\Nudge\\Job\\ProcessUserNudgesJob::handle] Start dispatching Jiminny\\Component\\Nudge\\Job\\ProcessNudgeSearchJob {\"user_id\":1845,\"user_uuid\":\"5486011b-8a99-4711-a7ad-c31d433f7c05\",\"email\":\"carter.leila@example.com\"} {\"correlation_id\":\"b3746f54-9a21-41f1-a545-fff64f47a45d\",\"trace_id\":\"d49cdd65-6530-44c0-adaa-92661a4d3a2a\"}\n[2026-05-11 12:04:09] local.INFO: [Jiminny\\Component\\Nudge\\Job\\ProcessUserNudgesJob::handle] End dispatching Jiminny\\Component\\Nudge\\Job\\ProcessNudgeSearchJob. {\"user_id\":1845,\"user_uuid\":\"5486011b-8a99-4711-a7ad-c31d433f7c05\",\"email\":\"carter.leila@example.com\"} {\"correlation_id\":\"b3746f54-9a21-41f1-a545-fff64f47a45d\",\"trace_id\":\"d49cdd65-6530-44c0-adaa-92661a4d3a2a\"}\n[2026-05-11 12:04:13] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"jiminny:playlists:normalize-sort\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"1eb61e71-41c9-48f1-bd67-637a1ba5f503\",\"trace_id\":\"0db0cf8d-b37a-4008-b1ac-c1cdeaf41594\"}\n[2026-05-11 12:04:13] local.INFO: [Jiminny\\Component\\Playlist\\Command\\NormalizeSortCommand::handle] starting. {\"playlists\":[]} {\"correlation_id\":\"1eb61e71-41c9-48f1-bd67-637a1ba5f503\",\"trace_id\":\"0db0cf8d-b37a-4008-b1ac-c1cdeaf41594\"}\n[2026-05-11 12:04:13] local.INFO: [Jiminny\\Component\\Playlist\\Command\\NormalizeSortCommand::handle] finished. {\"normalizedPlaylists\":[],\"deletedPlaylists\":[]} {\"correlation_id\":\"1eb61e71-41c9-48f1-bd67-637a1ba5f503\",\"trace_id\":\"0db0cf8d-b37a-4008-b1ac-c1cdeaf41594\"}\n[2026-05-11 12:04:13] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"jiminny:playlists:normalize-sort\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"1eb61e71-41c9-48f1-bd67-637a1ba5f503\",\"trace_id\":\"0db0cf8d-b37a-4008-b1ac-c1cdeaf41594\"}\n[2026-05-11 12:05:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"eff18911-c17a-4bba-a97f-7cf16da8b350\",\"trace_id\":\"96ec2dbb-57ad-4fc8-9171-82c50cfd6b6b\"}\n[2026-05-11 12:05:12] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"eff18911-c17a-4bba-a97f-7cf16da8b350\",\"trace_id\":\"96ec2dbb-57ad-4fc8-9171-82c50cfd6b6b\"}\n[2026-05-11 12:05:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"eff18911-c17a-4bba-a97f-7cf16da8b350\",\"trace_id\":\"96ec2dbb-57ad-4fc8-9171-82c50cfd6b6b\"}\n[2026-05-11 12:05:21] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"04df40b6-3fa6-4748-a21e-d6b4e03d49e3\",\"trace_id\":\"b2caed43-1ac0-4346-98ac-b1d8373bad9e\"}\n[2026-05-11 12:05:21] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"04df40b6-3fa6-4748-a21e-d6b4e03d49e3\",\"trace_id\":\"b2caed43-1ac0-4346-98ac-b1d8373bad9e\"}\n[2026-05-11 12:05:33] local.NOTICE: Monitoring start {\"correlation_id\":\"82274a99-1da1-46bd-81b4-672c345c65b4\",\"trace_id\":\"22eb2bfc-4c6c-4a13-8044-f6f22c2ab31c\"}\n[2026-05-11 12:05:33] local.NOTICE: Monitoring end {\"correlation_id\":\"82274a99-1da1-46bd-81b4-672c345c65b4\",\"trace_id\":\"22eb2bfc-4c6c-4a13-8044-f6f22c2ab31c\"}\n[2026-05-11 12:05:43] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"535019c1-c234-4a08-a81d-035757d004ed\",\"trace_id\":\"1d1b219b-fee2-47e2-8d79-7e44968935e0\"}\n[2026-05-11 12:05:44] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"535019c1-c234-4a08-a81d-035757d004ed\",\"trace_id\":\"1d1b219b-fee2-47e2-8d79-7e44968935e0\"}\n[2026-05-11 12:05:54] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"fc6999a4-cb9b-4ac2-b72d-14f128961266\",\"trace_id\":\"c58f0405-d34a-4516-952f-d553c07bd5e3\"}\n[2026-05-11 12:05:54] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"fc6999a4-cb9b-4ac2-b72d-14f128961266\",\"trace_id\":\"c58f0405-d34a-4516-952f-d553c07bd5e3\"}\n[2026-05-11 12:05:55] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"fc6999a4-cb9b-4ac2-b72d-14f128961266\",\"trace_id\":\"c58f0405-d34a-4516-952f-d553c07bd5e3\"}\n[2026-05-11 12:05:55] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"fc6999a4-cb9b-4ac2-b72d-14f128961266\",\"trace_id\":\"c58f0405-d34a-4516-952f-d553c07bd5e3\"}\n[2026-05-11 12:06:06] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"8af611ee-0aff-4743-ac38-fba683437367\",\"trace_id\":\"c9e3adbe-e3ab-4df2-9faf-26c552c4bbf2\"}\n[2026-05-11 12:06:06] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"8af611ee-0aff-4743-ac38-fba683437367\",\"trace_id\":\"c9e3adbe-e3ab-4df2-9faf-26c552c4bbf2\"}\n[2026-05-11 12:06:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"c510da3d-c908-453c-8060-817821948925\",\"trace_id\":\"6fe7b865-d9f5-4a7c-b338-d25cfb454e33\"}\n[2026-05-11 12:06:22] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"c510da3d-c908-453c-8060-817821948925\",\"trace_id\":\"6fe7b865-d9f5-4a7c-b338-d25cfb454e33\"}\n[2026-05-11 12:06:27] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"4cbfb372-6d55-41a1-8b5c-60080241a64e\",\"trace_id\":\"8a369363-0208-451e-aa5f-bfdfb51eac9f\"}\n[2026-05-11 12:06:27] local.INFO: Running pre-meeting notification command {\"correlation_id\":\"4cbfb372-6d55-41a1-8b5c-60080241a64e\",\"trace_id\":\"8a369363-0208-451e-aa5f-bfdfb51eac9f\"}\n[2026-05-11 12:06:27] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"4cbfb372-6d55-41a1-8b5c-60080241a64e\",\"trace_id\":\"8a369363-0208-451e-aa5f-bfdfb51eac9f\"}\n[2026-05-11 12:06:34] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"c1b4ec81-d995-457b-8662-ecfbebb3ba75\",\"trace_id\":\"92afc10e-8b2d-4cff-b5ed-c6c3bd2889a2\"}\n[2026-05-11 12:06:34] local.INFO: Running conference:monitor:start command for activities in (2026-05-11 11:56:00, 2026-05-11 12:01:00] {\"correlation_id\":\"c1b4ec81-d995-457b-8662-ecfbebb3ba75\",\"trace_id\":\"92afc10e-8b2d-4cff-b5ed-c6c3bd2889a2\"}\n[2026-05-11 12:06:34] local.INFO: [conference:monitor:start] No activities found in (2026-05-11 11:56:00, 2026-05-11 12:01:00] {\"correlation_id\":\"c1b4ec81-d995-457b-8662-ecfbebb3ba75\",\"trace_id\":\"92afc10e-8b2d-4cff-b5ed-c6c3bd2889a2\"}\n[2026-05-11 12:06:34] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"c1b4ec81-d995-457b-8662-ecfbebb3ba75\",\"trace_id\":\"92afc10e-8b2d-4cff-b5ed-c6c3bd2889a2\"}\n[2026-05-11 12:06:44] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"c88b0977-fbc8-415b-8b6b-1bda91cd2b52\",\"trace_id\":\"2de00b9b-5685-4cec-95e5-0b400a8e7f6c\"}\n[2026-05-11 12:06:44] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesEnded {\"from\":\"12:01\",\"to\":\"12:06\"} {\"correlation_id\":\"c88b0977-fbc8-415b-8b6b-1bda91cd2b52\",\"trace_id\":\"2de00b9b-5685-4cec-95e5-0b400a8e7f6c\"}\n[2026-05-11 12:06:44] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesWithUnfinishedSession {\"from\":\"01:56\",\"to\":\"02:01\"} {\"correlation_id\":\"c88b0977-fbc8-415b-8b6b-1bda91cd2b52\",\"trace_id\":\"2de00b9b-5685-4cec-95e5-0b400a8e7f6c\"}\n[2026-05-11 12:06:44] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"c88b0977-fbc8-415b-8b6b-1bda91cd2b52\",\"trace_id\":\"2de00b9b-5685-4cec-95e5-0b400a8e7f6c\"}\n[2026-05-11 12:06:48] local.NOTICE: Repairing HubSpot tokens start {\"correlation_id\":\"c74a5560-7396-421f-a52f-dd3ff49f3c41\",\"trace_id\":\"640c35d8-2323-4b13-998e-260c6e91361c\"}\n[2026-05-11 12:06:48] local.INFO: Trying to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\"} {\"correlation_id\":\"c74a5560-7396-421f-a52f-dd3ff49f3c41\",\"trace_id\":\"640c35d8-2323-4b13-998e-260c6e91361c\"}\n[2026-05-11 12:06:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"c74a5560-7396-421f-a52f-dd3ff49f3c41\",\"trace_id\":\"640c35d8-2323-4b13-998e-260c6e91361c\"}\n[2026-05-11 12:06:48] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":59,\"provider\":\"hubspot\",\"refreshToken\":\"97b78f6e2cc49965c00c2492b602b02708b1392551e6b3f113fbaa48992af90b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"c74a5560-7396-421f-a52f-dd3ff49f3c41\",\"trace_id\":\"640c35d8-2323-4b13-998e-260c6e91361c\"}\n[2026-05-11 12:06:49] local.ERROR: Failed to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"c74a5560-7396-421f-a52f-dd3ff49f3c41\",\"trace_id\":\"640c35d8-2323-4b13-998e-260c6e91361c\"}\n[2026-05-11 12:06:49] local.INFO: Trying to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\"} {\"correlation_id\":\"c74a5560-7396-421f-a52f-dd3ff49f3c41\",\"trace_id\":\"640c35d8-2323-4b13-998e-260c6e91361c\"}\n[2026-05-11 12:06:49] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"c74a5560-7396-421f-a52f-dd3ff49f3c41\",\"trace_id\":\"640c35d8-2323-4b13-998e-260c6e91361c\"}\n[2026-05-11 12:06:49] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":306,\"provider\":\"hubspot\",\"refreshToken\":\"6fa6aa8cc641d131231acc3470f5c03cb3b07b2e580fb18f8acb3b1dbb72549b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"c74a5560-7396-421f-a52f-dd3ff49f3c41\",\"trace_id\":\"640c35d8-2323-4b13-998e-260c6e91361c\"}\n[2026-05-11 12:06:49] local.ERROR: Failed to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"c74a5560-7396-421f-a52f-dd3ff49f3c41\",\"trace_id\":\"640c35d8-2323-4b13-998e-260c6e91361c\"}\n[2026-05-11 12:06:49] local.INFO: Trying to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\"} {\"correlation_id\":\"c74a5560-7396-421f-a52f-dd3ff49f3c41\",\"trace_id\":\"640c35d8-2323-4b13-998e-260c6e91361c\"}\n[2026-05-11 12:06:49] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"c74a5560-7396-421f-a52f-dd3ff49f3c41\",\"trace_id\":\"640c35d8-2323-4b13-998e-260c6e91361c\"}\n[2026-05-11 12:06:49] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1372,\"provider\":\"hubspot\",\"refreshToken\":\"9aa73948c761da29dce46c177cf9aee1fde483a44169ca38723f9f0597d7a8c4\",\"state\":\"full-refresh\"} {\"correlation_id\":\"c74a5560-7396-421f-a52f-dd3ff49f3c41\",\"trace_id\":\"640c35d8-2323-4b13-998e-260c6e91361c\"}\n[2026-05-11 12:06:49] local.ERROR: Failed to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"c74a5560-7396-421f-a52f-dd3ff49f3c41\",\"trace_id\":\"640c35d8-2323-4b13-998e-260c6e91361c\"}\n[2026-05-11 12:06:49] local.NOTICE: Repairing HubSpot tokens end {\"total\":3,\"fixed\":0,\"failed\":3} {\"correlation_id\":\"c74a5560-7396-421f-a52f-dd3ff49f3c41\",\"trace_id\":\"640c35d8-2323-4b13-998e-260c6e91361c\"}\n[2026-05-11 12:07:07] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"65229f31-e7c6-49db-8e10-3c2473d907f6\",\"trace_id\":\"e091aa06-3bdc-43f6-8e0a-faa009ea6d1f\"}\n[2026-05-11 12:07:07] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"bb1a0aaf-fb11-4615-94f7-b4f379d99c3e\",\"trace_id\":\"f76bd232-88c3-4422-b056-8e4be3f65c95\"}\n[2026-05-11 12:07:07] local.INFO: [HubSpot Journal Command] Starting polling service {\"correlation_id\":\"7bb2749c-da32-424f-9850-c953b2bdd464\",\"trace_id\":\"e391239c-c4ac-4c0e-8474-13a6df5fcc9b\"}\n[2026-05-11 12:07:07] local.INFO: [HubSpot Journal Polling] Service starting {\"memory_limit\":\"256M\",\"max_execution_time\":\"0\",\"initial_memory_mb\":60.0} {\"correlation_id\":\"7bb2749c-da32-424f-9850-c953b2bdd464\",\"trace_id\":\"e391239c-c4ac-4c0e-8474-13a6df5fcc9b\"}\n[2026-05-11 12:07:07] local.INFO: [HubSpot Journal Polling] Acquired polling lock {\"expires_at\":\"2026-05-11T12:09:07.585541Z\"} {\"correlation_id\":\"7bb2749c-da32-424f-9850-c953b2bdd464\",\"trace_id\":\"e391239c-c4ac-4c0e-8474-13a6df5fcc9b\"}\n[2026-05-11 12:07:07] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"bb1a0aaf-fb11-4615-94f7-b4f379d99c3e\",\"trace_id\":\"f76bd232-88c3-4422-b056-8e4be3f65c95\"}\n[2026-05-11 12:07:07] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"65229f31-e7c6-49db-8e10-3c2473d907f6\",\"trace_id\":\"e091aa06-3bdc-43f6-8e0a-faa009ea6d1f\"}\n[2026-05-11 12:07:07] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"7bb2749c-da32-424f-9850-c953b2bdd464\",\"trace_id\":\"e391239c-c4ac-4c0e-8474-13a6df5fcc9b\"}\n[2026-05-11 12:07:13] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"7bb2749c-da32-424f-9850-c953b2bdd464\",\"trace_id\":\"e391239c-c4ac-4c0e-8474-13a6df5fcc9b\"}\n[2026-05-11 12:07:18] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"7bb2749c-da32-424f-9850-c953b2bdd464\",\"trace_id\":\"e391239c-c4ac-4c0e-8474-13a6df5fcc9b\"}\n[2026-05-11 12:07:33] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"7bb2749c-da32-424f-9850-c953b2bdd464\",\"trace_id\":\"e391239c-c4ac-4c0e-8474-13a6df5fcc9b\"}\n[2026-05-11 12:08:03] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"7bb2749c-da32-424f-9850-c953b2bdd464\",\"trace_id\":\"e391239c-c4ac-4c0e-8474-13a6df5fcc9b\"}\n[2026-05-11 12:08:03] local.WARNING: [HubSpot Journal Polling] Maximum empty results reached, stopping {\"empty_results\":5,\"max_empty_results\":5} {\"correlation_id\":\"7bb2749c-da32-424f-9850-c953b2bdd464\",\"trace_id\":\"e391239c-c4ac-4c0e-8474-13a6df5fcc9b\"}\n[2026-05-11 12:08:03] local.WARNING: [HubSpot Journal Polling] Maximum empty results reached, stopping {\"empty_results\":5,\"max_empty_results\":5} {\"correlation_id\":\"7bb2749c-da32-424f-9850-c953b2bdd464\",\"trace_id\":\"e391239c-c4ac-4c0e-8474-13a6df5fcc9b\"}\n[2026-05-11 12:08:03] local.INFO: [HubSpot Journal Polling] Service ending {\"runtime_seconds\":56,\"total_cycles\":5,\"files_downloaded\":0,\"empty_files\":0,\"other_portal_skipped\":0,\"total_events\":0,\"events_per_file\":0,\"avg_api_ms\":211.5,\"avg_download_ms\":0.0,\"avg_transform_ms\":0.0,\"avg_process_ms\":0.0,\"peak_memory_mb\":99.73} {\"correlation_id\":\"7bb2749c-da32-424f-9850-c953b2bdd464\",\"trace_id\":\"e391239c-c4ac-4c0e-8474-13a6df5fcc9b\"}\n[2026-05-11 12:08:04] local.INFO: [HubSpot Journal Polling] Saved offset to database on cleanup {\"offset\":\"019e15a9-9ea0-7da7-87bc-82592e3ccf0d\"} {\"correlation_id\":\"7bb2749c-da32-424f-9850-c953b2bdd464\",\"trace_id\":\"e391239c-c4ac-4c0e-8474-13a6df5fcc9b\"}\n[2026-05-11 12:08:04] local.INFO: [HubSpot Journal Polling] Released polling lock {\"correlation_id\":\"7bb2749c-da32-424f-9850-c953b2bdd464\",\"trace_id\":\"e391239c-c4ac-4c0e-8474-13a6df5fcc9b\"}\n[2026-05-11 12:08:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"e373212e-5d4b-4991-8f5d-eb8b9f5cff2a\",\"trace_id\":\"01e853a8-729a-4b1c-9ee9-e5336a8b1712\"}\n[2026-05-11 12:08:16] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"e373212e-5d4b-4991-8f5d-eb8b9f5cff2a\",\"trace_id\":\"01e853a8-729a-4b1c-9ee9-e5336a8b1712\"}\n[2026-05-11 12:08:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"e373212e-5d4b-4991-8f5d-eb8b9f5cff2a\",\"trace_id\":\"01e853a8-729a-4b1c-9ee9-e5336a8b1712\"}\n[2026-05-11 12:08:26] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"5f5720b6-644d-4163-b814-287dbe01c92a\",\"trace_id\":\"852182e9-078f-475d-8dba-7d169e35ab4c\"}\n[2026-05-11 12:08:26] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"5f5720b6-644d-4163-b814-287dbe01c92a\",\"trace_id\":\"852182e9-078f-475d-8dba-7d169e35ab4c\"}\n[2026-05-11 12:08:33] local.NOTICE: Monitoring start {\"correlation_id\":\"4c0161c0-a8f7-4212-b593-ea274557c0cc\",\"trace_id\":\"3a8a4c1b-bab3-419c-9b06-cb7d570b57e2\"}\n[2026-05-11 12:08:34] local.NOTICE: Monitoring end {\"correlation_id\":\"4c0161c0-a8f7-4212-b593-ea274557c0cc\",\"trace_id\":\"3a8a4c1b-bab3-419c-9b06-cb7d570b57e2\"}\n[2026-05-11 12:08:40] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"09aa9c09-6c8e-4834-8981-9e7714e04d2a\",\"trace_id\":\"f06ba8f0-2eaa-404d-8ef7-f45e6028df66\"}\n[2026-05-11 12:08:40] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"09aa9c09-6c8e-4834-8981-9e7714e04d2a\",\"trace_id\":\"f06ba8f0-2eaa-404d-8ef7-f45e6028df66\"}\n[2026-05-11 12:08:51] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"20b3aa2e-017f-467e-ab72-6acf06e93255\",\"trace_id\":\"fdabe0c5-1e47-4af4-9d9e-31d39f953d06\"}\n[2026-05-11 12:08:51] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"20b3aa2e-017f-467e-ab72-6acf06e93255\",\"trace_id\":\"fdabe0c5-1e47-4af4-9d9e-31d39f953d06\"}\n[2026-05-11 12:08:51] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"20b3aa2e-017f-467e-ab72-6acf06e93255\",\"trace_id\":\"fdabe0c5-1e47-4af4-9d9e-31d39f953d06\"}\n[2026-05-11 12:08:51] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"20b3aa2e-017f-467e-ab72-6acf06e93255\",\"trace_id\":\"fdabe0c5-1e47-4af4-9d9e-31d39f953d06\"}\n[2026-05-11 12:09:05] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"137bea0c-5bfb-4b13-9f03-c7338703ae55\",\"trace_id\":\"c582158f-f3bd-43a1-ab83-c7c774737368\"}\n[2026-05-11 12:09:05] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 12:07:00, 2026-05-11 12:09:00] {\"correlation_id\":\"137bea0c-5bfb-4b13-9f03-c7338703ae55\",\"trace_id\":\"c582158f-f3bd-43a1-ab83-c7c774737368\"}\n[2026-05-11 12:09:05] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 12:07:00, 2026-05-11 12:09:00] {\"correlation_id\":\"137bea0c-5bfb-4b13-9f03-c7338703ae55\",\"trace_id\":\"c582158f-f3bd-43a1-ab83-c7c774737368\"}\n[2026-05-11 12:09:05] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"137bea0c-5bfb-4b13-9f03-c7338703ae55\",\"trace_id\":\"c582158f-f3bd-43a1-ab83-c7c774737368\"}\n[2026-05-11 12:09:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"540a3110-aaa8-4bdc-94db-2b38ea90bca0\",\"trace_id\":\"fa71ab3f-a184-4e23-a387-205bf215f087\"}\n[2026-05-11 12:09:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"540a3110-aaa8-4bdc-94db-2b38ea90bca0\",\"trace_id\":\"fa71ab3f-a184-4e23-a387-205bf215f087\"}\n[2026-05-11 12:10:08] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"c2ad4eaf-2a63-435f-a919-2955b5926937\",\"trace_id\":\"51f8e0b7-5d1c-4ac0-936e-6d03d4ee6cb7\"}\n[2026-05-11 12:10:09] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"c2ad4eaf-2a63-435f-a919-2955b5926937\",\"trace_id\":\"51f8e0b7-5d1c-4ac0-936e-6d03d4ee6cb7\"}\n[2026-05-11 12:10:09] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"c2ad4eaf-2a63-435f-a919-2955b5926937\",\"trace_id\":\"51f8e0b7-5d1c-4ac0-936e-6d03d4ee6cb7\"}\n[2026-05-11 12:10:19] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"02407a13-5fca-4054-8cf2-ea75d2861254\",\"trace_id\":\"e293aa8b-3853-4489-9f8c-61c7d0b555e5\"}\n[2026-05-11 12:10:19] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"02407a13-5fca-4054-8cf2-ea75d2861254\",\"trace_id\":\"e293aa8b-3853-4489-9f8c-61c7d0b555e5\"}\n[2026-05-11 12:10:31] local.NOTICE: Monitoring start {\"correlation_id\":\"5936b994-c849-4686-a679-531338c96513\",\"trace_id\":\"049073d9-1e62-4ca6-873c-39b21f1a97de\"}\n[2026-05-11 12:10:31] local.NOTICE: Monitoring end {\"correlation_id\":\"5936b994-c849-4686-a679-531338c96513\",\"trace_id\":\"049073d9-1e62-4ca6-873c-39b21f1a97de\"}\n[2026-05-11 12:10:36] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"ba8926f9-8c2a-4bb5-98e5-454445b7133e\",\"trace_id\":\"e55fa948-3518-4420-9735-2d3ba3f0cc35\"}\n[2026-05-11 12:10:37] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"ba8926f9-8c2a-4bb5-98e5-454445b7133e\",\"trace_id\":\"e55fa948-3518-4420-9735-2d3ba3f0cc35\"}\n[2026-05-11 12:10:44] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"c263d0c8-b089-404b-bab6-89efdc806169\",\"trace_id\":\"0551ff6b-4560-4a83-9cca-935e27602890\"}\n[2026-05-11 12:10:44] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"c263d0c8-b089-404b-bab6-89efdc806169\",\"trace_id\":\"0551ff6b-4560-4a83-9cca-935e27602890\"}\n[2026-05-11 12:10:44] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"c263d0c8-b089-404b-bab6-89efdc806169\",\"trace_id\":\"0551ff6b-4560-4a83-9cca-935e27602890\"}\n[2026-05-11 12:10:44] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"c263d0c8-b089-404b-bab6-89efdc806169\",\"trace_id\":\"0551ff6b-4560-4a83-9cca-935e27602890\"}\n[2026-05-11 12:10:50] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"ec106243-5821-4819-80fb-53edf60bb4db\",\"trace_id\":\"a0b3918b-5903-4bfc-9756-0394eb4ad6ac\"}\n[2026-05-11 12:10:50] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 12:08:00, 2026-05-11 12:10:00] {\"correlation_id\":\"ec106243-5821-4819-80fb-53edf60bb4db\",\"trace_id\":\"a0b3918b-5903-4bfc-9756-0394eb4ad6ac\"}\n[2026-05-11 12:10:50] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 12:08:00, 2026-05-11 12:10:00] {\"correlation_id\":\"ec106243-5821-4819-80fb-53edf60bb4db\",\"trace_id\":\"a0b3918b-5903-4bfc-9756-0394eb4ad6ac\"}\n[2026-05-11 12:10:50] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"ec106243-5821-4819-80fb-53edf60bb4db\",\"trace_id\":\"a0b3918b-5903-4bfc-9756-0394eb4ad6ac\"}\n[2026-05-11 12:10:54] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"6c55831c-ab94-4ee5-8d5f-b4dba4eea283\",\"trace_id\":\"0ef9db15-547e-45aa-b145-681052b0e038\"}\n[2026-05-11 12:10:54] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"6c55831c-ab94-4ee5-8d5f-b4dba4eea283\",\"trace_id\":\"0ef9db15-547e-45aa-b145-681052b0e038\"}\n[2026-05-11 12:11:06] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"4845d426-47cb-4aaa-a9f7-b60252955d67\",\"trace_id\":\"cb4e58ce-8b91-40e8-a826-ef4e08cdb713\"}\n[2026-05-11 12:11:06] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"4845d426-47cb-4aaa-a9f7-b60252955d67\",\"trace_id\":\"cb4e58ce-8b91-40e8-a826-ef4e08cdb713\"}\n[2026-05-11 12:11:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"c89d8e7b-ba20-440f-bee3-7023fcbe078c\",\"trace_id\":\"65c1ef93-379e-4e7c-bbea-c28bea906500\"}\n[2026-05-11 12:11:16] local.INFO: Running pre-meeting notification command {\"correlation_id\":\"c89d8e7b-ba20-440f-bee3-7023fcbe078c\",\"trace_id\":\"65c1ef93-379e-4e7c-bbea-c28bea906500\"}\n[2026-05-11 12:11:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"c89d8e7b-ba20-440f-bee3-7023fcbe078c\",\"trace_id\":\"65c1ef93-379e-4e7c-bbea-c28bea906500\"}\n[2026-05-11 12:11:22] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"90d0a36d-82fd-4da9-8f46-6e82a7e60f83\",\"trace_id\":\"2acfa347-b7f3-4738-b1f7-00a3a04ab7a4\"}\n[2026-05-11 12:11:22] local.INFO: Running conference:monitor:start command for activities in (2026-05-11 12:01:00, 2026-05-11 12:06:00] {\"correlation_id\":\"90d0a36d-82fd-4da9-8f46-6e82a7e60f83\",\"trace_id\":\"2acfa347-b7f3-4738-b1f7-00a3a04ab7a4\"}\n[2026-05-11 12:11:22] local.INFO: [conference:monitor:start] No activities found in (2026-05-11 12:01:00, 2026-05-11 12:06:00] {\"correlation_id\":\"90d0a36d-82fd-4da9-8f46-6e82a7e60f83\",\"trace_id\":\"2acfa347-b7f3-4738-b1f7-00a3a04ab7a4\"}\n[2026-05-11 12:11:22] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"90d0a36d-82fd-4da9-8f46-6e82a7e60f83\",\"trace_id\":\"2acfa347-b7f3-4738-b1f7-00a3a04ab7a4\"}\n[2026-05-11 12:11:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"41320f33-7f6d-4d2e-8d8d-9eba0f0eb50d\",\"trace_id\":\"67fa621d-0511-4cac-b5fb-a617f21d0df7\"}\n[2026-05-11 12:11:31] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesEnded {\"from\":\"12:06\",\"to\":\"12:11\"} {\"correlation_id\":\"41320f33-7f6d-4d2e-8d8d-9eba0f0eb50d\",\"trace_id\":\"67fa621d-0511-4cac-b5fb-a617f21d0df7\"}\n[2026-05-11 12:11:31] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesWithUnfinishedSession {\"from\":\"02:01\",\"to\":\"02:06\"} {\"correlation_id\":\"41320f33-7f6d-4d2e-8d8d-9eba0f0eb50d\",\"trace_id\":\"67fa621d-0511-4cac-b5fb-a617f21d0df7\"}\n[2026-05-11 12:11:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"41320f33-7f6d-4d2e-8d8d-9eba0f0eb50d\",\"trace_id\":\"67fa621d-0511-4cac-b5fb-a617f21d0df7\"}\n[2026-05-11 12:11:40] local.NOTICE: Repairing HubSpot tokens start {\"correlation_id\":\"93b00bf3-c8ee-465e-b76a-fb39e774f00e\",\"trace_id\":\"754ecb93-e74e-432a-a232-9ec45223e39d\"}\n[2026-05-11 12:11:40] local.INFO: Trying to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\"} {\"correlation_id\":\"93b00bf3-c8ee-465e-b76a-fb39e774f00e\",\"trace_id\":\"754ecb93-e74e-432a-a232-9ec45223e39d\"}\n[2026-05-11 12:11:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"93b00bf3-c8ee-465e-b76a-fb39e774f00e\",\"trace_id\":\"754ecb93-e74e-432a-a232-9ec45223e39d\"}\n[2026-05-11 12:11:40] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":59,\"provider\":\"hubspot\",\"refreshToken\":\"97b78f6e2cc49965c00c2492b602b02708b1392551e6b3f113fbaa48992af90b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"93b00bf3-c8ee-465e-b76a-fb39e774f00e\",\"trace_id\":\"754ecb93-e74e-432a-a232-9ec45223e39d\"}\n[2026-05-11 12:11:40] local.ERROR: Failed to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"93b00bf3-c8ee-465e-b76a-fb39e774f00e\",\"trace_id\":\"754ecb93-e74e-432a-a232-9ec45223e39d\"}\n[2026-05-11 12:11:40] local.INFO: Trying to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\"} {\"correlation_id\":\"93b00bf3-c8ee-465e-b76a-fb39e774f00e\",\"trace_id\":\"754ecb93-e74e-432a-a232-9ec45223e39d\"}\n[2026-05-11 12:11:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"93b00bf3-c8ee-465e-b76a-fb39e774f00e\",\"trace_id\":\"754ecb93-e74e-432a-a232-9ec45223e39d\"}\n[2026-05-11 12:11:40] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":306,\"provider\":\"hubspot\",\"refreshToken\":\"6fa6aa8cc641d131231acc3470f5c03cb3b07b2e580fb18f8acb3b1dbb72549b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"93b00bf3-c8ee-465e-b76a-fb39e774f00e\",\"trace_id\":\"754ecb93-e74e-432a-a232-9ec45223e39d\"}\n[2026-05-11 12:11:41] local.ERROR: Failed to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"93b00bf3-c8ee-465e-b76a-fb39e774f00e\",\"trace_id\":\"754ecb93-e74e-432a-a232-9ec45223e39d\"}\n[2026-05-11 12:11:41] local.INFO: Trying to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\"} {\"correlation_id\":\"93b00bf3-c8ee-465e-b76a-fb39e774f00e\",\"trace_id\":\"754ecb93-e74e-432a-a232-9ec45223e39d\"}\n[2026-05-11 12:11:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"93b00bf3-c8ee-465e-b76a-fb39e774f00e\",\"trace_id\":\"754ecb93-e74e-432a-a232-9ec45223e39d\"}\n[2026-05-11 12:11:41] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1372,\"provider\":\"hubspot\",\"refreshToken\":\"9aa73948c761da29dce46c177cf9aee1fde483a44169ca38723f9f0597d7a8c4\",\"state\":\"full-refresh\"} {\"correlation_id\":\"93b00bf3-c8ee-465e-b76a-fb39e774f00e\",\"trace_id\":\"754ecb93-e74e-432a-a232-9ec45223e39d\"}\n[2026-05-11 12:11:41] local.ERROR: Failed to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"93b00bf3-c8ee-465e-b76a-fb39e774f00e\",\"trace_id\":\"754ecb93-e74e-432a-a232-9ec45223e39d\"}\n[2026-05-11 12:11:41] local.NOTICE: Repairing HubSpot tokens end {\"total\":3,\"fixed\":0,\"failed\":3} {\"correlation_id\":\"93b00bf3-c8ee-465e-b76a-fb39e774f00e\",\"trace_id\":\"754ecb93-e74e-432a-a232-9ec45223e39d\"}\n[2026-05-11 12:11:55] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"jiminny:transcription:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"350cc154-ed9c-47d7-b2f7-2d43d78a72ac\",\"trace_id\":\"8791deab-702c-4a13-9ee5-c0ad8bd8f50c\"}\n[2026-05-11 12:11:55] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"c00dfe1b-972e-40fb-abaf-756e6b712939\",\"trace_id\":\"5b50862e-1a7c-49e4-9b32-1c2125788d17\"}\n[2026-05-11 12:11:55] local.INFO: [HubSpot Journal Command] Starting polling service {\"correlation_id\":\"871fa879-6628-4b78-b29f-778ee41729a9\",\"trace_id\":\"24655a87-eaaa-4cc1-810f-2480c9c1d55f\"}\n[2026-05-11 12:11:55] local.INFO: [HubSpot Journal Polling] Service starting {\"memory_limit\":\"256M\",\"max_execution_time\":\"0\",\"initial_memory_mb\":60.0} {\"correlation_id\":\"871fa879-6628-4b78-b29f-778ee41729a9\",\"trace_id\":\"24655a87-eaaa-4cc1-810f-2480c9c1d55f\"}\n[2026-05-11 12:11:55] local.INFO: [HubSpot Journal Polling] Acquired polling lock {\"expires_at\":\"2026-05-11T12:13:55.701427Z\"} {\"correlation_id\":\"871fa879-6628-4b78-b29f-778ee41729a9\",\"trace_id\":\"24655a87-eaaa-4cc1-810f-2480c9c1d55f\"}\n[2026-05-11 12:11:56] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"jiminny:transcription:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"350cc154-ed9c-47d7-b2f7-2d43d78a72ac\",\"trace_id\":\"8791deab-702c-4a13-9ee5-c0ad8bd8f50c\"}\n[2026-05-11 12:11:56] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"c00dfe1b-972e-40fb-abaf-756e6b712939\",\"trace_id\":\"5b50862e-1a7c-49e4-9b32-1c2125788d17\"}\n[2026-05-11 12:11:56] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"871fa879-6628-4b78-b29f-778ee41729a9\",\"trace_id\":\"24655a87-eaaa-4cc1-810f-2480c9c1d55f\"}\n[2026-05-11 12:12:02] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"871fa879-6628-4b78-b29f-778ee41729a9\",\"trace_id\":\"24655a87-eaaa-4cc1-810f-2480c9c1d55f\"}\n[2026-05-11 12:12:07] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"871fa879-6628-4b78-b29f-778ee41729a9\",\"trace_id\":\"24655a87-eaaa-4cc1-810f-2480c9c1d55f\"}\n[2026-05-11 12:12:10] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:reset-governor\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"df34a605-d107-465f-9da2-b61e3ff56f38\",\"trace_id\":\"6bcc3610-a7c1-4b9e-9bf4-f67d7511e5f9\"}\n[2026-05-11 12:12:10] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:reset-governor\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"df34a605-d107-465f-9da2-b61e3ff56f38\",\"trace_id\":\"6bcc3610-a7c1-4b9e-9bf4-f67d7511e5f9\"}\n[2026-05-11 12:12:22] local.INFO: [HubSpot Journal Auth] Requesting new client credentials token {\"correlation_id\":\"871fa879-6628-4b78-b29f-778ee41729a9\",\"trace_id\":\"24655a87-eaaa-4cc1-810f-2480c9c1d55f\"}\n[2026-05-11 12:12:23] local.INFO: [HubSpot Journal Auth] Successfully obtained new access token {\"expires_in\":1800,\"cached_for\":1500} {\"correlation_id\":\"871fa879-6628-4b78-b29f-778ee41729a9\",\"trace_id\":\"24655a87-eaaa-4cc1-810f-2480c9c1d55f\"}\n[2026-05-11 12:12:23] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"871fa879-6628-4b78-b29f-778ee41729a9\",\"trace_id\":\"24655a87-eaaa-4cc1-810f-2480c9c1d55f\"}\n[2026-05-11 12:12:24] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"8de8a972-0d7a-4a35-b7c0-6d5bc2b25746\",\"trace_id\":\"df8a8c1e-1571-4a50-bba2-07e34c7cbf2c\"}\n[2026-05-11 12:12:24] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"8de8a972-0d7a-4a35-b7c0-6d5bc2b25746\",\"trace_id\":\"df8a8c1e-1571-4a50-bba2-07e34c7cbf2c\"}\n[2026-05-11 12:12:53] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"871fa879-6628-4b78-b29f-778ee41729a9\",\"trace_id\":\"24655a87-eaaa-4cc1-810f-2480c9c1d55f\"}\n[2026-05-11 12:12:53] local.WARNING: [HubSpot Journal Polling] Maximum empty results reached, stopping {\"empty_results\":5,\"max_empty_results\":5} {\"correlation_id\":\"871fa879-6628-4b78-b29f-778ee41729a9\",\"trace_id\":\"24655a87-eaaa-4cc1-810f-2480c9c1d55f\"}\n[2026-05-11 12:12:53] local.WARNING: [HubSpot Journal Polling] Maximum empty results reached, stopping {\"empty_results\":5,\"max_empty_results\":5} {\"correlation_id\":\"871fa879-6628-4b78-b29f-778ee41729a9\",\"trace_id\":\"24655a87-eaaa-4cc1-810f-2480c9c1d55f\"}\n[2026-05-11 12:12:53] local.INFO: [HubSpot Journal Polling] Service ending {\"runtime_seconds\":58,\"total_cycles\":5,\"files_downloaded\":0,\"empty_files\":0,\"other_portal_skipped\":0,\"total_events\":0,\"events_per_file\":0,\"avg_api_ms\":474.2,\"avg_download_ms\":0.0,\"avg_transform_ms\":0.0,\"avg_process_ms\":0.0,\"peak_memory_mb\":99.73} {\"correlation_id\":\"871fa879-6628-4b78-b29f-778ee41729a9\",\"trace_id\":\"24655a87-eaaa-4cc1-810f-2480c9c1d55f\"}\n[2026-05-11 12:12:54] local.INFO: [HubSpot Journal Polling] Saved offset to database on cleanup {\"offset\":\"019e15a9-9ea0-7da7-87bc-82592e3ccf0d\"} {\"correlation_id\":\"871fa879-6628-4b78-b29f-778ee41729a9\",\"trace_id\":\"24655a87-eaaa-4cc1-810f-2480c9c1d55f\"}\n[2026-05-11 12:12:54] local.INFO: [HubSpot Journal Polling] Released polling lock {\"correlation_id\":\"871fa879-6628-4b78-b29f-778ee41729a9\",\"trace_id\":\"24655a87-eaaa-4cc1-810f-2480c9c1d55f\"}\n[2026-05-11 12:13:28] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"c35776f8-62c9-41ff-b6d4-a23750a1a889\",\"trace_id\":\"5c2537e6-9a1b-420f-8c9e-bb65fcd82302\"}\n[2026-05-11 12:13:28] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"c35776f8-62c9-41ff-b6d4-a23750a1a889\",\"trace_id\":\"5c2537e6-9a1b-420f-8c9e-bb65fcd82302\"}\n[2026-05-11 12:13:28] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"c35776f8-62c9-41ff-b6d4-a23750a1a889\",\"trace_id\":\"5c2537e6-9a1b-420f-8c9e-bb65fcd82302\"}\n[2026-05-11 12:13:38] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"319a5d19-1dc4-4013-ab90-f349b03395c2\",\"trace_id\":\"f9ac67b6-4131-43d1-ac74-5f26ee330b55\"}\n[2026-05-11 12:13:38] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"319a5d19-1dc4-4013-ab90-f349b03395c2\",\"trace_id\":\"f9ac67b6-4131-43d1-ac74-5f26ee330b55\"}\n[2026-05-11 12:13:45] local.NOTICE: Monitoring start {\"correlation_id\":\"4a33e003-3405-40cd-a89d-2b7cc6f78637\",\"trace_id\":\"70fb87ea-843d-4768-a3f5-7f986571d6b5\"}\n[2026-05-11 12:13:45] local.NOTICE: Monitoring end {\"correlation_id\":\"4a33e003-3405-40cd-a89d-2b7cc6f78637\",\"trace_id\":\"70fb87ea-843d-4768-a3f5-7f986571d6b5\"}\n[2026-05-11 12:14:01] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"ac82aa35-8897-40ba-a650-c663dadfd5b2\",\"trace_id\":\"2ffb91a9-1d0b-4a20-97d0-557952cb1ced\"}\n[2026-05-11 12:14:01] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"ac82aa35-8897-40ba-a650-c663dadfd5b2\",\"trace_id\":\"2ffb91a9-1d0b-4a20-97d0-557952cb1ced\"}\n[2026-05-11 12:14:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"fb99b43c-e8c2-4d74-ad60-653e57fca84c\",\"trace_id\":\"dac1a19a-1962-4e6f-be53-7b22a20784f8\"}\n[2026-05-11 12:14:12] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"fb99b43c-e8c2-4d74-ad60-653e57fca84c\",\"trace_id\":\"dac1a19a-1962-4e6f-be53-7b22a20784f8\"}\n[2026-05-11 12:14:12] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"fb99b43c-e8c2-4d74-ad60-653e57fca84c\",\"trace_id\":\"dac1a19a-1962-4e6f-be53-7b22a20784f8\"}\n[2026-05-11 12:14:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"fb99b43c-e8c2-4d74-ad60-653e57fca84c\",\"trace_id\":\"dac1a19a-1962-4e6f-be53-7b22a20784f8\"}\n[2026-05-11 12:14:22] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"d239566f-ccbf-4143-bb0f-e24eb6a77126\",\"trace_id\":\"af5f5156-3fdb-4cd1-ac6c-52881c44951d\"}\n[2026-05-11 12:14:22] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"calendar:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:22] local.NOTICE: Calendar sync start {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:22] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"d239566f-ccbf-4143-bb0f-e24eb6a77126\",\"trace_id\":\"af5f5156-3fdb-4cd1-ac6c-52881c44951d\"}\n[2026-05-11 12:14:23] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1393,\"provider\":\"google\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:23] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1393,\"provider\":\"google\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:23] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:23] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1393,\"provider\":\"google\",\"refreshToken\":\"5aa7e2d96b53201cd16fca5d2e4ef3ad03320971fc064781d18aee3ae7b99fbf\",\"state\":\"full-refresh\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:24] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1393,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Account has been deleted\"}} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:24] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:24] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1393,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:24] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1387,\"provider\":\"google\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:24] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1387,\"provider\":\"google\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:24] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:24] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1387,\"provider\":\"google\",\"refreshToken\":\"8157ac6de94842937194009e9c50e459253600f799dacf6a40755ffdbeb5bba6\",\"state\":\"full-refresh\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:24] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1387,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Account has been deleted\"}} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:24] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:24] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1387,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:24] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1348,\"provider\":\"google\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:24] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1348,\"provider\":\"google\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:24] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:24] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1348,\"provider\":\"google\",\"refreshToken\":\"9e7d13d3032d0cb1b79d8e95aef01383e8e91eb52ff8ee960c8a0b6b95cd8c73\",\"state\":\"full-refresh\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:25] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1348,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:25] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:25] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1348,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:25] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1361,\"provider\":\"google\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:25] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1361,\"provider\":\"google\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:25] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:25] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1361,\"provider\":\"google\",\"refreshToken\":\"6c843da199c2b9907445329304fcc4ec5057a4ee748d8299641764395c08e1fd\",\"state\":\"full-refresh\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:25] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1361,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Account has been deleted\"}} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:25] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:25] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1361,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:25] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1310,\"provider\":\"google\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:25] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1310,\"provider\":\"google\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:25] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:25] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1310,\"provider\":\"google\",\"refreshToken\":\"e34818922c2830a660813a63f6169a4a9a992ae2cccd7dc8dd7796cfdb470ef1\",\"state\":\"full-refresh\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:25] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1310,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:25] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:25] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1310,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:25] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1333,\"provider\":\"google\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:25] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1333,\"provider\":\"google\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:25] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:25] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1333,\"provider\":\"google\",\"refreshToken\":\"6c902986546d8e8da1dc539b046cdc1d458f519acc972e5b5f1d6a1a295165e0\",\"state\":\"full-refresh\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:26] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1333,\"provider\":\"google\",\"responseBody\":{\"error\":\"unauthorized_client\",\"error_description\":\"Unauthorized\"}} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:26] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:26] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1333,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:26] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1368,\"provider\":\"google\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:26] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1368,\"provider\":\"google\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:26] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:26] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1368,\"provider\":\"google\",\"refreshToken\":\"d2f128898ff8543bd16b69cfae37896ab85119b0f5ed2b431d739593bb600333\",\"state\":\"full-refresh\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:26] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1368,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:26] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:26] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1368,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:26] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1365,\"provider\":\"google\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:26] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1365,\"provider\":\"google\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:26] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:26] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1365,\"provider\":\"google\",\"refreshToken\":\"7676e4a9afcd082b413248ab5ec6e487021fec6a9bdf315860a59cefad9caad8\",\"state\":\"full-refresh\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:26] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1365,\"provider\":\"google\",\"responseBody\":{\"error\":\"unauthorized_client\",\"error_description\":\"Unauthorized\"}} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:26] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:26] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1365,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:26] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1364,\"provider\":\"google\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:26] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1364,\"provider\":\"google\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:26] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:26] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1364,\"provider\":\"google\",\"refreshToken\":\"dd5882ebce76e645292ce33ae74238abbb77c0a4ecc6a2bfe723cad82e72ba8e\",\"state\":\"full-refresh\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:26] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1364,\"provider\":\"google\",\"responseBody\":{\"error\":\"unauthorized_client\",\"error_description\":\"Unauthorized\"}} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:26] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:26] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1364,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1370,\"provider\":\"office\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:27] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1370,\"provider\":\"office\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:27] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1370,\"provider\":\"office\",\"refreshToken\":\"b7ee8035306d0043cea6e00e7c4fe14f745e44074a1194db62a31cdf8b70af3e\",\"state\":\"full-refresh\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:27] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1370,\"provider\":\"office\",\"responseBody\":\"{\\\"error\\\":\\\"invalid_client\\\",\\\"error_description\\\":\\\"AADSTS7000215: Invalid client secret provided. Ensure the secret being sent in the request is the client secret value, not the client secret ID, for a secret added to app 'bbcbb2ef-6200-4fae-82bd-d81f5dd738da'. Trace ID: 7401461f-0309-4080-ae0f-82ead7662000 Correlation ID: 8dd767f6-c91d-429a-8249-cd1a0c12ae8e Timestamp: 2026-05-11 12:14:27Z\\\",\\\"error_codes\\\":[7000215],\\\"timestamp\\\":\\\"2026-05-11 12:14:27Z\\\",\\\"trace_id\\\":\\\"7401461f-0309-4080-ae0f-82ead7662000\\\",\\\"correlation_id\\\":\\\"8dd767f6-c91d-429a-8249-cd1a0c12ae8e\\\",\\\"error_uri\\\":\\\"https://login.microsoftonline.com/error?code=7000215\\\"}\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:27] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:27] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1370,\"provider\":\"office\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1202,\"provider\":\"office\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:27] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1202,\"provider\":\"office\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:27] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1202,\"provider\":\"office\",\"refreshToken\":\"b458799ccc29b21a6e2eb5260fdb63e49ccba21bf942a3973fb63799bd7f0afe\",\"state\":\"full-refresh\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:28] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1202,\"provider\":\"office\",\"responseBody\":\"{\\\"error\\\":\\\"invalid_client\\\",\\\"error_description\\\":\\\"AADSTS7000215: Invalid client secret provided. Ensure the secret being sent in the request is the client secret value, not the client secret ID, for a secret added to app 'bbcbb2ef-6200-4fae-82bd-d81f5dd738da'. Trace ID: 4d47225a-8d39-486b-b214-3b9f93b30100 Correlation ID: 387f2f6b-a3e1-446a-ae99-10f5684ecd51 Timestamp: 2026-05-11 12:14:28Z\\\",\\\"error_codes\\\":[7000215],\\\"timestamp\\\":\\\"2026-05-11 12:14:28Z\\\",\\\"trace_id\\\":\\\"4d47225a-8d39-486b-b214-3b9f93b30100\\\",\\\"correlation_id\\\":\\\"387f2f6b-a3e1-446a-ae99-10f5684ecd51\\\",\\\"error_uri\\\":\\\"https://login.microsoftonline.com/error?code=7000215\\\"}\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:28] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:28] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1202,\"provider\":\"office\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:28] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:28] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:28] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:28] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1502,\"provider\":\"google\",\"refreshToken\":\"d417c92ebaa137295a04675f715d0511ae8acac9d779b102eac50d6300116d3e\",\"state\":\"connected\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:28] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:28] local.INFO: [SocialAccountObserver] Access token was modified, encrypting {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:28] local.INFO: [SocialAccountService] Token refreshed {\"socialAccountId\":1502,\"provider\":\"google\",\"state\":\"connected\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:28] local.INFO: Calendar sync job dispatched {\"calendar_id\":501} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:28] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1300,\"provider\":\"google\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:28] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1300,\"provider\":\"google\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:28] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:28] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1300,\"provider\":\"google\",\"refreshToken\":\"4b811db0725fd9602a95943519a7da935e2a5065da7d9ebfcb170752e3e1ddb8\",\"state\":\"full-refresh\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:29] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1300,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Account has been deleted\"}} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:29] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:29] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1300,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:29] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1409,\"provider\":\"google\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:29] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1409,\"provider\":\"google\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:29] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1409,\"provider\":\"google\",\"refreshToken\":\"e2a3f2d06894894eed1ee87d9db1ace77d4d42ee6e1288a8940ad2c10333b0c4\",\"state\":\"full-refresh\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:29] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"8fee47c6-d80c-4bbd-8e93-270099d267a5\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:29] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"8fee47c6-d80c-4bbd-8e93-270099d267a5\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8fee47c6-d80c-4bbd-8e93-270099d267a5\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:29] local.INFO: [Calendar] Processing sync {\"calendarId\":\"a33076c1-8d97-431a-99f0-85c9524e118b\",\"from\":null,\"to\":null,\"delta\":\"CIiFh8TP44kDEIiFh8TP44kDGAUgkZvkzgIokZvkzgI=\",\"last_sync\":\"2024-12-09 07:12:53\",\"dateMode\":\"daily\"} {\"correlation_id\":\"8fee47c6-d80c-4bbd-8e93-270099d267a5\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:29] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"integration-app\",\"crm_owner\":1695,\"team_id\":3143} {\"correlation_id\":\"8fee47c6-d80c-4bbd-8e93-270099d267a5\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:29] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"8fee47c6-d80c-4bbd-8e93-270099d267a5\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:29] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"8fee47c6-d80c-4bbd-8e93-270099d267a5\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8fee47c6-d80c-4bbd-8e93-270099d267a5\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:29] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1409,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:29] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:29] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1409,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:29] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1352,\"provider\":\"google\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:29] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1352,\"provider\":\"google\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:29] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1352,\"provider\":\"google\",\"refreshToken\":\"dd4b16b00fdc1216da6b717c02338c073636e29162826b2de6db3f064fc029eb\",\"state\":\"full-refresh\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:29] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1352,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Token has been expired or revoked.\"}} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:29] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:29] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1352,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:29] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1296,\"provider\":\"office\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:29] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1296,\"provider\":\"office\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:29] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1296,\"provider\":\"office\",\"refreshToken\":\"011ae723c9d800c674e0b4be76f49fc046dac7d501b66c59ef0d9549cfa56ae5\",\"state\":\"full-refresh\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:30] local.INFO: [Google Calendar] Failed to watch channel for calendar {\"calendarId\":\"a33076c1-8d97-431a-99f0-85c9524e118b\",\"code\":400,\"reason\":\"{\n \\\"error\\\": {\n \\\"errors\\\": [\n {\n \\\"domain\\\": \\\"global\\\",\n \\\"reason\\\": \\\"push.webhookUrlNotHttps\\\",\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n ],\n \\\"code\\\": 400,\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n}\"} {\"correlation_id\":\"8fee47c6-d80c-4bbd-8e93-270099d267a5\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:30] local.WARNING: [Calendar] Sync failed {\"calendarId\":\"a33076c1-8d97-431a-99f0-85c9524e118b\",\"code\":400,\"reason\":\"{\n \\\"error\\\": {\n \\\"errors\\\": [\n {\n \\\"domain\\\": \\\"global\\\",\n \\\"reason\\\": \\\"push.webhookUrlNotHttps\\\",\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n ],\n \\\"code\\\": 400,\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n}\"} {\"correlation_id\":\"8fee47c6-d80c-4bbd-8e93-270099d267a5\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:30] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1296,\"provider\":\"office\",\"responseBody\":\"{\\\"error\\\":\\\"invalid_client\\\",\\\"error_description\\\":\\\"AADSTS7000215: Invalid client secret provided. Ensure the secret being sent in the request is the client secret value, not the client secret ID, for a secret added to app 'bbcbb2ef-6200-4fae-82bd-d81f5dd738da'. Trace ID: 70afa108-a352-4d05-923d-a8339be31f00 Correlation ID: ed656a37-fdf4-4336-9b3a-1b3a24815b73 Timestamp: 2026-05-11 12:14:30Z\\\",\\\"error_codes\\\":[7000215],\\\"timestamp\\\":\\\"2026-05-11 12:14:30Z\\\",\\\"trace_id\\\":\\\"70afa108-a352-4d05-923d-a8339be31f00\\\",\\\"correlation_id\\\":\\\"ed656a37-fdf4-4336-9b3a-1b3a24815b73\\\",\\\"error_uri\\\":\\\"https://login.microsoftonline.com/error?code=7000215\\\"}\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:30] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:30] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1296,\"provider\":\"office\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":391,\"provider\":\"office\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:30] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":391,\"provider\":\"office\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:30] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":391,\"provider\":\"office\",\"refreshToken\":\"00045eebae0f39b34887c6d53f92ae78064f7145e1f4b67754aebd03cfb2d881\",\"state\":\"full-refresh\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:30] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":391,\"provider\":\"office\",\"responseBody\":\"{\\\"error\\\":\\\"invalid_client\\\",\\\"error_description\\\":\\\"AADSTS7000215: Invalid client secret provided. Ensure the secret being sent in the request is the client secret value, not the client secret ID, for a secret added to app 'bbcbb2ef-6200-4fae-82bd-d81f5dd738da'. Trace ID: f38b455a-055d-472a-8f95-5d0c61da0200 Correlation ID: 45c692e5-7f27-44d6-b2c4-9a09c3a08153 Timestamp: 2026-05-11 12:14:30Z\\\",\\\"error_codes\\\":[7000215],\\\"timestamp\\\":\\\"2026-05-11 12:14:30Z\\\",\\\"trace_id\\\":\\\"f38b455a-055d-472a-8f95-5d0c61da0200\\\",\\\"correlation_id\\\":\\\"45c692e5-7f27-44d6-b2c4-9a09c3a08153\\\",\\\"error_uri\\\":\\\"https://login.microsoftonline.com/error?code=7000215\\\"}\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:30] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:30] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":391,\"provider\":\"office\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1271,\"provider\":\"office\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:30] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1271,\"provider\":\"office\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:30] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1271,\"provider\":\"office\",\"refreshToken\":\"118cde2c06993147b07ccaec4cbcd5026a819dea6c71081166a492933e392afb\",\"state\":\"full-refresh\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:31] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1271,\"provider\":\"office\",\"responseBody\":\"{\\\"error\\\":\\\"invalid_client\\\",\\\"error_description\\\":\\\"AADSTS7000215: Invalid client secret provided. Ensure the secret being sent in the request is the client secret value, not the client secret ID, for a secret added to app 'bbcbb2ef-6200-4fae-82bd-d81f5dd738da'. Trace ID: 4d668ac8-90d6-44d2-b46c-5478babe0100 Correlation ID: cdb475ab-2bda-446d-b41c-84ce3b7f8698 Timestamp: 2026-05-11 12:14:31Z\\\",\\\"error_codes\\\":[7000215],\\\"timestamp\\\":\\\"2026-05-11 12:14:31Z\\\",\\\"trace_id\\\":\\\"4d668ac8-90d6-44d2-b46c-5478babe0100\\\",\\\"correlation_id\\\":\\\"cdb475ab-2bda-446d-b41c-84ce3b7f8698\\\",\\\"error_uri\\\":\\\"https://login.microsoftonline.com/error?code=7000215\\\"}\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:31] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:31] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1271,\"provider\":\"office\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1351,\"provider\":\"google\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:31] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1351,\"provider\":\"google\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:31] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1351,\"provider\":\"google\",\"refreshToken\":\"4271d15b9e60a606439caddc68337f783e472c85b03dacff14d1b6dfded9051c\",\"state\":\"full-refresh\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:32] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1351,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:32] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:32] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1351,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1366,\"provider\":\"google\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:32] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1366,\"provider\":\"google\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:32] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1366,\"provider\":\"google\",\"refreshToken\":\"ae21385059b2eebfd43f68aecd56eccd702a1aabb6598f1f7ab594ed8af491b4\",\"state\":\"full-refresh\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:32] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1366,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:32] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:32] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1366,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:32] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:32] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1115,\"provider\":\"google\",\"refreshToken\":\"356b60f12e262a5e24d3042386ef47d6a6cfe3074c242f4426edcec8646192b1\",\"state\":\"connected\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:32] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:32] local.INFO: [SocialAccountObserver] Access token was modified, encrypting {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:32] local.INFO: [SocialAccountService] Token refreshed {\"socialAccountId\":1115,\"provider\":\"google\",\"state\":\"connected\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:32] local.INFO: Calendar sync job dispatched {\"calendar_id\":378} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1421,\"provider\":\"office\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1421,\"provider\":\"office\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:32] local.INFO: Calendar sync job dispatched {\"calendar_id\":504} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:32] local.NOTICE: Calendar sync end {\"retrieved_calendars\":31,\"processed_calendars\":3} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:32] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"calendar:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":62.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:34] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"3443b55d-63cb-41e1-9c98-8139490ef002\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:34] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"3443b55d-63cb-41e1-9c98-8139490ef002\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:34] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"3443b55d-63cb-41e1-9c98-8139490ef002\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:34] local.INFO: [Calendar] Processing sync {\"calendarId\":\"2676cb6d-f86c-427e-bf78-591e388e3c1e\",\"from\":null,\"to\":null,\"delta\":\"CJ_x49O3jpIDEJ_x49O3jpIDGAUgw67KlwMow67KlwM=\",\"last_sync\":\"2026-01-19 07:48:40\",\"dateMode\":\"daily\"} {\"correlation_id\":\"3443b55d-63cb-41e1-9c98-8139490ef002\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:34] local.WARNING: [Pipedrive] Account not connected for user {\"userId\":\"e6538737-e7b4-455f-a37a-3e79b665a220\",\"account\":{\"Jiminny\\\\Models\\\\SocialAccount\":{\"id\":1116,\"sociable_id\":241,\"provider_user_id\":\"19555731\",\"expires\":1775683749,\"refresh_token_expires\":null,\"provider\":\"pipedrive\",\"state\":\"full-refresh\",\"auth_scope\":\"base,deals:full,activities:full,contacts:full,search:read\",\"retry_after\":null,\"created_at\":\"2023-09-08 09:44:29\",\"updated_at\":\"2026-04-08 22:58:34\"}}} {\"correlation_id\":\"3443b55d-63cb-41e1-9c98-8139490ef002\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:34] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"pipedrive\",\"crm_owner\":241,\"team_id\":19} {\"correlation_id\":\"3443b55d-63cb-41e1-9c98-8139490ef002\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:34] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"pipedrive\",\"team_id\":19} {\"correlation_id\":\"3443b55d-63cb-41e1-9c98-8139490ef002\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:34] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"pipedrive\",\"team_id\":19} {\"correlation_id\":\"3443b55d-63cb-41e1-9c98-8139490ef002\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:34] local.WARNING: [Calendar] CRM disconnected for user so events will not be matched {\"provider\":\"pipedrive\",\"user_id\":241,\"message\":\"Your Pipedrive account has become disconnected. Please login to Jiminny to reconnect.\"} {\"correlation_id\":\"3443b55d-63cb-41e1-9c98-8139490ef002\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:34] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"3443b55d-63cb-41e1-9c98-8139490ef002\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:34] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"3443b55d-63cb-41e1-9c98-8139490ef002\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:34] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"3443b55d-63cb-41e1-9c98-8139490ef002\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:34] local.INFO: [Google Calendar] Failed to watch channel for calendar {\"calendarId\":\"2676cb6d-f86c-427e-bf78-591e388e3c1e\",\"code\":400,\"reason\":\"{\n \\\"error\\\": {\n \\\"errors\\\": [\n {\n \\\"domain\\\": \\\"global\\\",\n \\\"reason\\\": \\\"push.webhookUrlNotHttps\\\",\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n ],\n \\\"code\\\": 400,\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n}\"} {\"correlation_id\":\"3443b55d-63cb-41e1-9c98-8139490ef002\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:34] local.WARNING: [Calendar] Sync failed {\"calendarId\":\"2676cb6d-f86c-427e-bf78-591e388e3c1e\",\"code\":400,\"reason\":\"{\n \\\"error\\\": {\n \\\"errors\\\": [\n {\n \\\"domain\\\": \\\"global\\\",\n \\\"reason\\\": \\\"push.webhookUrlNotHttps\\\",\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n ],\n \\\"code\\\": 400,\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n}\"} {\"correlation_id\":\"3443b55d-63cb-41e1-9c98-8139490ef002\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:34] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1421,\"provider\":\"office\"} {\"correlation_id\":\"6c4802d0-2244-4954-9183-a6ae9a8231ba\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:34] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1421,\"provider\":\"office\"} {\"correlation_id\":\"6c4802d0-2244-4954-9183-a6ae9a8231ba\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:34] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"6c4802d0-2244-4954-9183-a6ae9a8231ba\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:34] local.INFO: [Calendar] Processing sync {\"calendarId\":\"9e8b1a2c-1a8f-42bd-b161-810fc0baf540\",\"from\":null,\"to\":null,\"delta\":\"R0usmcdvmMuZCBYV0hguCLlvcOB4kXlhlC7KgH1SnZwTrZ3faZv1fXPQqJhxe_L9AxWWlb-wASsjGiiWlhsBUg9MFb3ZdlAYerVV_ZirRPbsKWCxEXhybD90arJmok_M4ecGFUQ9_BIGu-c6RAnJy2TRKZ7gPTsJi_8TGceGAuqimlhm4G4mjDLvYVVwImjjU7M3xJvUzL47dLOGNTJCww.k1TST0VEYCgbFOkwa3ysYMi100FtVfkzfqlXLnV6gPg\",\"last_sync\":\"2026-05-11 06:13:36\",\"dateMode\":\"daily\"} {\"correlation_id\":\"6c4802d0-2244-4954-9183-a6ae9a8231ba\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:34] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6c4802d0-2244-4954-9183-a6ae9a8231ba\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:34] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6c4802d0-2244-4954-9183-a6ae9a8231ba\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:34] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"6c4802d0-2244-4954-9183-a6ae9a8231ba\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:34] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":89,\"team_id\":2} {\"correlation_id\":\"6c4802d0-2244-4954-9183-a6ae9a8231ba\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:34] local.INFO: [MS Office Calendar] Skipping delta sync for daily mode {\"calendarId\":\"9e8b1a2c-1a8f-42bd-b161-810fc0baf540\"} {\"correlation_id\":\"6c4802d0-2244-4954-9183-a6ae9a8231ba\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:15:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"8c894e4d-e783-4dc9-bcd7-226924204268\",\"trace_id\":\"a4b070a3-71d7-4cef-81ec-886b50935301\"}\n[2026-05-11 12:15:13] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"8c894e4d-e783-4dc9-bcd7-226924204268\",\"trace_id\":\"a4b070a3-71d7-4cef-81ec-886b50935301\"}\n[2026-05-11 12:15:13] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"8c894e4d-e783-4dc9-bcd7-226924204268\",\"trace_id\":\"a4b070a3-71d7-4cef-81ec-886b50935301\"}\n[2026-05-11 12:15:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"565e34f3-a349-414b-9d5f-c7128e6519af\",\"trace_id\":\"b116eb89-70b4-4f05-984d-30e4a2b41ef4\"}\n[2026-05-11 12:15:17] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"565e34f3-a349-414b-9d5f-c7128e6519af\",\"trace_id\":\"b116eb89-70b4-4f05-984d-30e4a2b41ef4\"}\n[2026-05-11 12:15:25] local.NOTICE: Monitoring start {\"correlation_id\":\"32b9ac45-6ad5-4b76-a01a-40a4fe9bcafc\",\"trace_id\":\"ca81b817-876d-4e75-9cc3-cb7a50c8f100\"}\n[2026-05-11 12:15:25] local.NOTICE: Monitoring end {\"correlation_id\":\"32b9ac45-6ad5-4b76-a01a-40a4fe9bcafc\",\"trace_id\":\"ca81b817-876d-4e75-9cc3-cb7a50c8f100\"}\n[2026-05-11 12:15:34] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"49df8a6c-3151-4a1e-8b86-c53f65ec2e63\",\"trace_id\":\"a7ca3146-a5c5-47c1-b0a7-b3f5bb28afb3\"}\n[2026-05-11 12:15:34] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"49df8a6c-3151-4a1e-8b86-c53f65ec2e63\",\"trace_id\":\"a7ca3146-a5c5-47c1-b0a7-b3f5bb28afb3\"}\n[2026-05-11 12:15:50] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"65c763a5-5ec5-4ead-b605-02d44c12452d\",\"trace_id\":\"04470fe1-aafa-44c6-bc4e-df3c35d9f1ae\"}\n[2026-05-11 12:15:51] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"65c763a5-5ec5-4ead-b605-02d44c12452d\",\"trace_id\":\"04470fe1-aafa-44c6-bc4e-df3c35d9f1ae\"}\n[2026-05-11 12:15:51] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"65c763a5-5ec5-4ead-b605-02d44c12452d\",\"trace_id\":\"04470fe1-aafa-44c6-bc4e-df3c35d9f1ae\"}\n[2026-05-11 12:15:51] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"65c763a5-5ec5-4ead-b605-02d44c12452d\",\"trace_id\":\"04470fe1-aafa-44c6-bc4e-df3c35d9f1ae\"}\n[2026-05-11 12:15:55] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"f9a7d589-ae27-4d47-8c0c-3f5cbe598444\",\"trace_id\":\"9800fbc5-0d57-4b05-a290-444b2761188b\"}\n[2026-05-11 12:15:55] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"f9a7d589-ae27-4d47-8c0c-3f5cbe598444\",\"trace_id\":\"9800fbc5-0d57-4b05-a290-444b2761188b\"}\n[2026-05-11 12:15:59] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"c49fb166-a266-4f41-bf2e-1f7fa409d0c4\",\"trace_id\":\"4088ec5b-8952-40f7-98ef-361dc36da74f\"}\n[2026-05-11 12:15:59] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"c49fb166-a266-4f41-bf2e-1f7fa409d0c4\",\"trace_id\":\"4088ec5b-8952-40f7-98ef-361dc36da74f\"}\n[2026-05-11 12:16:04] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"f318779f-ebec-478d-a1aa-301d086d7022\",\"trace_id\":\"72f8b271-e7d8-4257-bbbc-2f56e3133589\"}\n[2026-05-11 12:16:04] local.INFO: Running pre-meeting notification command {\"correlation_id\":\"f318779f-ebec-478d-a1aa-301d086d7022\",\"trace_id\":\"72f8b271-e7d8-4257-bbbc-2f56e3133589\"}\n[2026-05-11 12:16:04] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"f318779f-ebec-478d-a1aa-301d086d7022\",\"trace_id\":\"72f8b271-e7d8-4257-bbbc-2f56e3133589\"}\n[2026-05-11 12:16:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"d8424605-b534-48d3-974b-2f00e970046e\",\"trace_id\":\"6b395f7e-01c2-43d8-9fca-4367611cb8e9\"}\n[2026-05-11 12:16:16] local.INFO: Running conference:monitor:start command for activities in (2026-05-11 12:06:00, 2026-05-11 12:11:00] {\"correlation_id\":\"d8424605-b534-48d3-974b-2f00e970046e\",\"trace_id\":\"6b395f7e-01c2-43d8-9fca-4367611cb8e9\"}\n[2026-05-11 12:16:17] local.INFO: [conference:monitor:start] No activities found in (2026-05-11 12:06:00, 2026-05-11 12:11:00] {\"correlation_id\":\"d8424605-b534-48d3-974b-2f00e970046e\",\"trace_id\":\"6b395f7e-01c2-43d8-9fca-4367611cb8e9\"}\n[2026-05-11 12:16:17] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"d8424605-b534-48d3-974b-2f00e970046e\",\"trace_id\":\"6b395f7e-01c2-43d8-9fca-4367611cb8e9\"}\n[2026-05-11 12:16:24] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"2ac7d2a2-6433-4987-b2b8-aa45c21d35bd\",\"trace_id\":\"ee502667-3969-4113-99ae-c4c6dc23b008\"}\n[2026-05-11 12:16:25] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesEnded {\"from\":\"12:11\",\"to\":\"12:16\"} {\"correlation_id\":\"2ac7d2a2-6433-4987-b2b8-aa45c21d35bd\",\"trace_id\":\"ee502667-3969-4113-99ae-c4c6dc23b008\"}\n[2026-05-11 12:16:25] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesWithUnfinishedSession {\"from\":\"02:06\",\"to\":\"02:11\"} {\"correlation_id\":\"2ac7d2a2-6433-4987-b2b8-aa45c21d35bd\",\"trace_id\":\"ee502667-3969-4113-99ae-c4c6dc23b008\"}\n[2026-05-11 12:16:25] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"2ac7d2a2-6433-4987-b2b8-aa45c21d35bd\",\"trace_id\":\"ee502667-3969-4113-99ae-c4c6dc23b008\"}\n[2026-05-11 12:16:31] local.NOTICE: Repairing HubSpot tokens start {\"correlation_id\":\"64c3680e-17d7-4192-93ed-4c05853ec7b3\",\"trace_id\":\"28353860-5092-4126-ab33-d5fe597c39ce\"}\n[2026-05-11 12:16:31] local.INFO: Trying to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\"} {\"correlation_id\":\"64c3680e-17d7-4192-93ed-4c05853ec7b3\",\"trace_id\":\"28353860-5092-4126-ab33-d5fe597c39ce\"}\n[2026-05-11 12:16:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"64c3680e-17d7-4192-93ed-4c05853ec7b3\",\"trace_id\":\"28353860-5092-4126-ab33-d5fe597c39ce\"}\n[2026-05-11 12:16:31] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":59,\"provider\":\"hubspot\",\"refreshToken\":\"97b78f6e2cc49965c00c2492b602b02708b1392551e6b3f113fbaa48992af90b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"64c3680e-17d7-4192-93ed-4c05853ec7b3\",\"trace_id\":\"28353860-5092-4126-ab33-d5fe597c39ce\"}\n[2026-05-11 12:16:32] local.ERROR: Failed to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"64c3680e-17d7-4192-93ed-4c05853ec7b3\",\"trace_id\":\"28353860-5092-4126-ab33-d5fe597c39ce\"}\n[2026-05-11 12:16:32] local.INFO: Trying to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\"} {\"correlation_id\":\"64c3680e-17d7-4192-93ed-4c05853ec7b3\",\"trace_id\":\"28353860-5092-4126-ab33-d5fe597c39ce\"}\n[2026-05-11 12:16:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"64c3680e-17d7-4192-93ed-4c05853ec7b3\",\"trace_id\":\"28353860-5092-4126-ab33-d5fe597c39ce\"}\n[2026-05-11 12:16:32] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":306,\"provider\":\"hubspot\",\"refreshToken\":\"6fa6aa8cc641d131231acc3470f5c03cb3b07b2e580fb18f8acb3b1dbb72549b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"64c3680e-17d7-4192-93ed-4c05853ec7b3\",\"trace_id\":\"28353860-5092-4126-ab33-d5fe597c39ce\"}\n[2026-05-11 12:16:32] local.ERROR: Failed to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"64c3680e-17d7-4192-93ed-4c05853ec7b3\",\"trace_id\":\"28353860-5092-4126-ab33-d5fe597c39ce\"}\n[2026-05-11 12:16:32] local.INFO: Trying to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\"} {\"correlation_id\":\"64c3680e-17d7-4192-93ed-4c05853ec7b3\",\"trace_id\":\"28353860-5092-4126-ab33-d5fe597c39ce\"}\n[2026-05-11 12:16:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"64c3680e-17d7-4192-93ed-4c05853ec7b3\",\"trace_id\":\"28353860-5092-4126-ab33-d5fe597c39ce\"}\n[2026-05-11 12:16:32] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1372,\"provider\":\"hubspot\",\"refreshToken\":\"9aa73948c761da29dce46c177cf9aee1fde483a44169ca38723f9f0597d7a8c4\",\"state\":\"full-refresh\"} {\"correlation_id\":\"64c3680e-17d7-4192-93ed-4c05853ec7b3\",\"trace_id\":\"28353860-5092-4126-ab33-d5fe597c39ce\"}\n[2026-05-11 12:16:33] local.ERROR: Failed to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"64c3680e-17d7-4192-93ed-4c05853ec7b3\",\"trace_id\":\"28353860-5092-4126-ab33-d5fe597c39ce\"}\n[2026-05-11 12:16:33] local.NOTICE: Repairing HubSpot tokens end {\"total\":3,\"fixed\":0,\"failed\":3} {\"correlation_id\":\"64c3680e-17d7-4192-93ed-4c05853ec7b3\",\"trace_id\":\"28353860-5092-4126-ab33-d5fe597c39ce\"}\n[2026-05-11 12:16:46] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"ba0c4719-5f75-4e82-bfc6-572e41f52fb3\",\"trace_id\":\"9dcf9d79-9253-40c3-a6d7-964edb93d92f\"}\n[2026-05-11 12:16:47] local.INFO: [HubSpot Journal Command] Starting polling service {\"correlation_id\":\"ad363a42-8b61-4946-8dfd-ab45e1c0e407\",\"trace_id\":\"cc6d95b3-13bb-41e2-9ebb-77005f6b211b\"}\n[2026-05-11 12:16:47] local.INFO: [HubSpot Journal Polling] Service starting {\"memory_limit\":\"256M\",\"max_execution_time\":\"0\",\"initial_memory_mb\":60.0} {\"correlation_id\":\"ad363a42-8b61-4946-8dfd-ab45e1c0e407\",\"trace_id\":\"cc6d95b3-13bb-41e2-9ebb-77005f6b211b\"}\n[2026-05-11 12:16:47] local.INFO: [HubSpot Journal Polling] Acquired polling lock {\"expires_at\":\"2026-05-11T12:18:47.155680Z\"} {\"correlation_id\":\"ad363a42-8b61-4946-8dfd-ab45e1c0e407\",\"trace_id\":\"cc6d95b3-13bb-41e2-9ebb-77005f6b211b\"}\n[2026-05-11 12:16:47] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"ba0c4719-5f75-4e82-bfc6-572e41f52fb3\",\"trace_id\":\"9dcf9d79-9253-40c3-a6d7-964edb93d92f\"}\n[2026-05-11 12:16:47] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"ad363a42-8b61-4946-8dfd-ab45e1c0e407\",\"trace_id\":\"cc6d95b3-13bb-41e2-9ebb-77005f6b211b\"}\n[2026-05-11 12:16:52] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"ad363a42-8b61-4946-8dfd-ab45e1c0e407\",\"trace_id\":\"cc6d95b3-13bb-41e2-9ebb-77005f6b211b\"}\n[2026-05-11 12:16:56] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"b95086a1-5e45-4692-b2e4-052ad8abb0c9\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:16:56] local.INFO: Dispatching activity sync job {\"import_id\":812726,\"provider\":\"twilio-flex\",\"team\":\"jiminny\"} {\"correlation_id\":\"b95086a1-5e45-4692-b2e4-052ad8abb0c9\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:16:56] local.INFO: Dispatching activity sync job {\"import_id\":812727,\"provider\":\"xant\",\"team\":\"jiminny\"} {\"correlation_id\":\"b95086a1-5e45-4692-b2e4-052ad8abb0c9\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:16:56] local.INFO: Dispatching activity sync job {\"import_id\":812728,\"provider\":\"apollo\",\"team\":\"jiminny\"} {\"correlation_id\":\"b95086a1-5e45-4692-b2e4-052ad8abb0c9\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:16:56] local.INFO: Dispatching activity sync job {\"import_id\":812729,\"provider\":\"groove\",\"team\":\"jiminny\"} {\"correlation_id\":\"b95086a1-5e45-4692-b2e4-052ad8abb0c9\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:16:56] local.INFO: Dispatching activity sync job {\"import_id\":812730,\"provider\":\"twilio-video\",\"team\":\"jiminny\"} {\"correlation_id\":\"b95086a1-5e45-4692-b2e4-052ad8abb0c9\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:16:57] local.INFO: Dispatching activity sync job {\"import_id\":812731,\"provider\":\"hubspot\",\"team\":\"hubspot\"} {\"correlation_id\":\"b95086a1-5e45-4692-b2e4-052ad8abb0c9\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:16:57] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"b95086a1-5e45-4692-b2e4-052ad8abb0c9\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:16:58] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"ad363a42-8b61-4946-8dfd-ab45e1c0e407\",\"trace_id\":\"cc6d95b3-13bb-41e2-9ebb-77005f6b211b\"}\n[2026-05-11 12:16:59] local.WARNING: [Salesforce] Account not connected for user {\"userId\":\"cdf8b554-d951-4758-bc2b-c1b85d1cd0b9\",\"account\":null} {\"correlation_id\":\"c824c3d5-9999-4d8c-b3ec-e288455a06c4\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:16:59] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"salesforce\",\"crm_owner\":3,\"team_id\":1} {\"correlation_id\":\"c824c3d5-9999-4d8c-b3ec-e288455a06c4\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:16:59] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"salesforce\",\"team_id\":1} {\"correlation_id\":\"c824c3d5-9999-4d8c-b3ec-e288455a06c4\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:16:59] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"salesforce\",\"team_id\":1} {\"correlation_id\":\"c824c3d5-9999-4d8c-b3ec-e288455a06c4\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:16:59] local.ALERT: [SyncActivity] Failed {\"import_id\":812726,\"provider\":\"twilio-flex\",\"provider_id\":317,\"team\":\"jiminny\",\"team_id\":1,\"reason\":\"Social account for Salesforce cannot be found. Please login to Jiminny to connect.\",\"file\":\"/home/jiminny/app/Services/Crm/BaseService.php\",\"line\":646} {\"correlation_id\":\"c824c3d5-9999-4d8c-b3ec-e288455a06c4\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:16:59] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"06a144b5-931c-4cb3-9aca-762e350401c2\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:16:59] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"06a144b5-931c-4cb3-9aca-762e350401c2\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:16:59] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"06a144b5-931c-4cb3-9aca-762e350401c2\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:17:00] local.ALERT: [SyncActivity] Failed {\"import_id\":812727,\"provider\":\"xant\",\"provider_id\":161,\"team\":\"jiminny\",\"team_id\":1,\"reason\":\"Activity Provider account not connected.\",\"file\":\"/home/jiminny/app/Services/Activity/ActivityProviderService.php\",\"line\":174} {\"correlation_id\":\"06a144b5-931c-4cb3-9aca-762e350401c2\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:17:00] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"7fb1764e-44c6-4468-aeb5-82af6c4b191b\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:17:00] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"7fb1764e-44c6-4468-aeb5-82af6c4b191b\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:17:00] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7fb1764e-44c6-4468-aeb5-82af6c4b191b\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:17:01] local.ALERT: [SyncActivity] Failed {\"import_id\":812728,\"provider\":\"apollo\",\"provider_id\":441,\"team\":\"jiminny\",\"team_id\":1,\"reason\":\"Activity Provider account not connected.\",\"file\":\"/home/jiminny/app/Services/Activity/ActivityProviderService.php\",\"line\":174} {\"correlation_id\":\"7fb1764e-44c6-4468-aeb5-82af6c4b191b\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:17:01] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"1bcc40ff-2f2e-4b7b-8028-0ad276f28880\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:17:01] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"1bcc40ff-2f2e-4b7b-8028-0ad276f28880\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:17:01] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1bcc40ff-2f2e-4b7b-8028-0ad276f28880\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:17:01] local.ALERT: [SyncActivity] Failed {\"import_id\":812729,\"provider\":\"groove\",\"provider_id\":228,\"team\":\"jiminny\",\"team_id\":1,\"reason\":\"Activity Provider account not connected.\",\"file\":\"/home/jiminny/app/Services/Activity/ActivityProviderService.php\",\"line\":174} {\"correlation_id\":\"1bcc40ff-2f2e-4b7b-8028-0ad276f28880\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:17:01] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"8b332819-903d-42b9-adb3-ce09e67d4fc5\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:17:01] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"8b332819-903d-42b9-adb3-ce09e67d4fc5\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:17:01] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8b332819-903d-42b9-adb3-ce09e67d4fc5\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:17:02] local.ALERT: [SyncActivity] Failed {\"import_id\":812730,\"provider\":\"twilio-video\",\"provider_id\":243,\"team\":\"jiminny\",\"team_id\":1,\"reason\":\"Activity Provider account not connected.\",\"file\":\"/home/jiminny/app/Services/Activity/ActivityProviderService.php\",\"line\":174} {\"correlation_id\":\"8b332819-903d-42b9-adb3-ce09e67d4fc5\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:17:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"65d9d228-8b2c-46e8-aafa-1e307fcb3103\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:17:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"65d9d228-8b2c-46e8-aafa-1e307fcb3103\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:17:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"65d9d228-8b2c-46e8-aafa-1e307fcb3103\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:17:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":89,\"team_id\":2} {\"correlation_id\":\"65d9d228-8b2c-46e8-aafa-1e307fcb3103\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:17:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":408,\"provider\":\"hubspot\"} {\"correlation_id\":\"65d9d228-8b2c-46e8-aafa-1e307fcb3103\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:17:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":408,\"provider\":\"hubspot\"} {\"correlation_id\":\"65d9d228-8b2c-46e8-aafa-1e307fcb3103\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:17:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"65d9d228-8b2c-46e8-aafa-1e307fcb3103\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:17:02] local.INFO: [SyncActivity] Start {\"import_id\":812731,\"provider\":\"hubspot\",\"provider_id\":31,\"team\":\"hubspot\",\"team_id\":2} {\"correlation_id\":\"65d9d228-8b2c-46e8-aafa-1e307fcb3103\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:17:02] local.INFO: [HubSpot] Search calls for period {\"from\":\"2026-05-11 11:59:00\",\"to\":\"2026-05-11 12:15:00\"} {\"correlation_id\":\"65d9d228-8b2c-46e8-aafa-1e307fcb3103\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:17:02] local.INFO: [SyncActivity] End {\"import_id\":812731,\"provider\":\"hubspot\",\"provider_id\":31,\"team\":\"hubspot\",\"team_id\":2} {\"correlation_id\":\"65d9d228-8b2c-46e8-aafa-1e307fcb3103\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:17:02] local.INFO: [SyncActivity] Memory usage {\"import_id\":812731,\"provider\":\"hubspot\",\"provider_id\":31,\"team\":\"hubspot\",\"team_id\":2,\"memory_usage\":30122432,\"memory_real_usage\":65011712,\"pid\":74086} {\"correlation_id\":\"65d9d228-8b2c-46e8-aafa-1e307fcb3103\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:17:04] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"c0ee6a94-9f55-403c-842d-e80f938601e2\",\"trace_id\":\"586085ca-4d5d-4db6-8434-6bf6b584598f\"}\n[2026-05-11 12:17:04] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"c0ee6a94-9f55-403c-842d-e80f938601e2\",\"trace_id\":\"586085ca-4d5d-4db6-8434-6bf6b584598f\"}\n[2026-05-11 12:17:13] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"ad363a42-8b61-4946-8dfd-ab45e1c0e407\",\"trace_id\":\"cc6d95b3-13bb-41e2-9ebb-77005f6b211b\"}\n[2026-05-11 12:17:13] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"nudges:send\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"36dc86dc-e025-4a94-8be9-2f536be96dc8\",\"trace_id\":\"31702b39-8260-4898-9c63-1aaafda8cde3\"}\n[2026-05-11 12:17:14] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"nudges:send\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"36dc86dc-e025-4a94-8be9-2f536be96dc8\",\"trace_id\":\"31702b39-8260-4898-9c63-1aaafda8cde3\"}\n[2026-05-11 12:17:19] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"jiminny:playlists:normalize-sort\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"1ddb3e77-717c-486e-9fc4-031b49aa1515\",\"trace_id\":\"8e4beca1-d251-46d3-b103-d6827e87577b\"}\n[2026-05-11 12:17:19] local.INFO: [Jiminny\\Component\\Playlist\\Command\\NormalizeSortCommand::handle] starting. {\"playlists\":[]} {\"correlation_id\":\"1ddb3e77-717c-486e-9fc4-031b49aa1515\",\"trace_id\":\"8e4beca1-d251-46d3-b103-d6827e87577b\"}\n[2026-05-11 12:17:19] local.INFO: [Jiminny\\Component\\Playlist\\Command\\NormalizeSortCommand::handle] finished. {\"normalizedPlaylists\":[],\"deletedPlaylists\":[]} {\"correlation_id\":\"1ddb3e77-717c-486e-9fc4-031b49aa1515\",\"trace_id\":\"8e4beca1-d251-46d3-b103-d6827e87577b\"}\n[2026-05-11 12:17:19] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"jiminny:playlists:normalize-sort\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"1ddb3e77-717c-486e-9fc4-031b49aa1515\",\"trace_id\":\"8e4beca1-d251-46d3-b103-d6827e87577b\"}\n[2026-05-11 12:17:43] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"ad363a42-8b61-4946-8dfd-ab45e1c0e407\",\"trace_id\":\"cc6d95b3-13bb-41e2-9ebb-77005f6b211b\"}\n[2026-05-11 12:17:43] local.WARNING: [HubSpot Journal Polling] Maximum empty results reached, stopping {\"empty_results\":5,\"max_empty_results\":5} {\"correlation_id\":\"ad363a42-8b61-4946-8dfd-ab45e1c0e407\",\"trace_id\":\"cc6d95b3-13bb-41e2-9ebb-77005f6b211b\"}\n[2026-05-11 12:17:43] local.WARNING: [HubSpot Journal Polling] Maximum empty results reached, stopping {\"empty_results\":5,\"max_empty_results\":5} {\"correlation_id\":\"ad363a42-8b61-4946-8dfd-ab45e1c0e407\",\"trace_id\":\"cc6d95b3-13bb-41e2-9ebb-77005f6b211b\"}\n[2026-05-11 12:17:43] local.INFO: [HubSpot Journal Polling] Service ending {\"runtime_seconds\":56,\"total_cycles\":5,\"files_downloaded\":0,\"empty_files\":0,\"other_portal_skipped\":0,\"total_events\":0,\"events_per_file\":0,\"avg_api_ms\":241.2,\"avg_download_ms\":0.0,\"avg_transform_ms\":0.0,\"avg_process_ms\":0.0,\"peak_memory_mb\":99.73} {\"correlation_id\":\"ad363a42-8b61-4946-8dfd-ab45e1c0e407\",\"trace_id\":\"cc6d95b3-13bb-41e2-9ebb-77005f6b211b\"}\n[2026-05-11 12:17:44] local.INFO: [HubSpot Journal Polling] Saved offset to database on cleanup {\"offset\":\"019e15a9-9ea0-7da7-87bc-82592e3ccf0d\"} {\"correlation_id\":\"ad363a42-8b61-4946-8dfd-ab45e1c0e407\",\"trace_id\":\"cc6d95b3-13bb-41e2-9ebb-77005f6b211b\"}\n[2026-05-11 12:17:44] local.INFO: [HubSpot Journal Polling] Released polling lock {\"correlation_id\":\"ad363a42-8b61-4946-8dfd-ab45e1c0e407\",\"trace_id\":\"cc6d95b3-13bb-41e2-9ebb-77005f6b211b\"}\n[2026-05-11 12:18:13] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"e2279f83-79c5-4b01-b7e7-cfe60c24db3d\",\"trace_id\":\"740ca19a-3a96-4570-ac39-f3373ecb0a44\"}\n[2026-05-11 12:18:13] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"e2279f83-79c5-4b01-b7e7-cfe60c24db3d\",\"trace_id\":\"740ca19a-3a96-4570-ac39-f3373ecb0a44\"}\n[2026-05-11 12:18:13] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"e2279f83-79c5-4b01-b7e7-cfe60c24db3d\",\"trace_id\":\"740ca19a-3a96-4570-ac39-f3373ecb0a44\"}\n[2026-05-11 12:18:21] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"b106accf-d4b6-4727-a77b-f2a974724439\",\"trace_id\":\"9dff6a80-43f3-43db-8094-648a0f5201c9\"}\n[2026-05-11 12:18:21] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"b106accf-d4b6-4727-a77b-f2a974724439\",\"trace_id\":\"9dff6a80-43f3-43db-8094-648a0f5201c9\"}\n[2026-05-11 12:18:31] local.NOTICE: Monitoring start {\"correlation_id\":\"34af1440-d8ad-44f1-ab50-f2a449357869\",\"trace_id\":\"c12fba6d-ec88-4297-b890-1e16c31f4a5a\"}\n[2026-05-11 12:18:32] local.NOTICE: Monitoring end {\"correlation_id\":\"34af1440-d8ad-44f1-ab50-f2a449357869\",\"trace_id\":\"c12fba6d-ec88-4297-b890-1e16c31f4a5a\"}\n[2026-05-11 12:18:38] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"64cdace9-59e7-4917-9ce3-c4552a895ec7\",\"trace_id\":\"44cb7596-73c1-4db6-8dc6-3eb0c3ba235b\"}\n[2026-05-11 12:18:38] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"64cdace9-59e7-4917-9ce3-c4552a895ec7\",\"trace_id\":\"44cb7596-73c1-4db6-8dc6-3eb0c3ba235b\"}\n[2026-05-11 12:18:47] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"5ba5023b-e6d0-454d-8c20-16b3c727bfd3\",\"trace_id\":\"ab255743-081b-4b7a-bc24-6d816eeab8d8\"}\n[2026-05-11 12:18:47] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"5ba5023b-e6d0-454d-8c20-16b3c727bfd3\",\"trace_id\":\"ab255743-081b-4b7a-bc24-6d816eeab8d8\"}\n[2026-05-11 12:18:47] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"5ba5023b-e6d0-454d-8c20-16b3c727bfd3\",\"trace_id\":\"ab255743-081b-4b7a-bc24-6d816eeab8d8\"}\n[2026-05-11 12:18:47] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"5ba5023b-e6d0-454d-8c20-16b3c727bfd3\",\"trace_id\":\"ab255743-081b-4b7a-bc24-6d816eeab8d8\"}\n[2026-05-11 12:18:53] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"679a7205-72ff-4192-8ed9-e1be0f1aeab7\",\"trace_id\":\"7a4b3d86-f538-434e-b22d-279efb32904b\"}\n[2026-05-11 12:18:53] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 12:16:00, 2026-05-11 12:18:00] {\"correlation_id\":\"679a7205-72ff-4192-8ed9-e1be0f1aeab7\",\"trace_id\":\"7a4b3d86-f538-434e-b22d-279efb32904b\"}\n[2026-05-11 12:18:53] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 12:16:00, 2026-05-11 12:18:00] {\"correlation_id\":\"679a7205-72ff-4192-8ed9-e1be0f1aeab7\",\"trace_id\":\"7a4b3d86-f538-434e-b22d-279efb32904b\"}\n[2026-05-11 12:18:53] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"679a7205-72ff-4192-8ed9-e1be0f1aeab7\",\"trace_id\":\"7a4b3d86-f538-434e-b22d-279efb32904b\"}\n[2026-05-11 12:19:06] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"ce9bcaf5-a719-45ee-a0ae-3a49467ef12e\",\"trace_id\":\"ed2ec658-5adf-464a-87f4-93c822c4da3d\"}\n[2026-05-11 12:19:06] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"ce9bcaf5-a719-45ee-a0ae-3a49467ef12e\",\"trace_id\":\"ed2ec658-5adf-464a-87f4-93c822c4da3d\"}\n[2026-05-11 12:20:07] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"5166d35d-4d01-4b5d-a707-31db8bf2b7d7\",\"trace_id\":\"138d9696-47f4-408a-889c-f480b51e2aa6\"}\n[2026-05-11 12:20:07] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"5166d35d-4d01-4b5d-a707-31db8bf2b7d7\",\"trace_id\":\"138d9696-47f4-408a-889c-f480b51e2aa6\"}\n[2026-05-11 12:20:07] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"5166d35d-4d01-4b5d-a707-31db8bf2b7d7\",\"trace_id\":\"138d9696-47f4-408a-889c-f480b51e2aa6\"}\n[2026-05-11 12:20:14] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"e05db029-9c8f-4c94-96a6-9425dbaf8ef0\",\"trace_id\":\"d789cc75-92d1-49f1-8616-abe0319535b9\"}\n[2026-05-11 12:20:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"e05db029-9c8f-4c94-96a6-9425dbaf8ef0\",\"trace_id\":\"d789cc75-92d1-49f1-8616-abe0319535b9\"}\n[2026-05-11 12:20:22] local.NOTICE: Monitoring start {\"correlation_id\":\"37da295a-f816-40e3-a318-1c5134b28d57\",\"trace_id\":\"39ec16dc-1412-45e7-997a-1600b4e4e785\"}\n[2026-05-11 12:20:22] local.NOTICE: Monitoring end {\"correlation_id\":\"37da295a-f816-40e3-a318-1c5134b28d57\",\"trace_id\":\"39ec16dc-1412-45e7-997a-1600b4e4e785\"}\n[2026-05-11 12:20:35] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"27e4a7bb-64d3-41f4-a367-562a99a61559\",\"trace_id\":\"84e3499a-a8fe-46a4-a75f-bcb662d90d7a\"}\n[2026-05-11 12:20:35] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"27e4a7bb-64d3-41f4-a367-562a99a61559\",\"trace_id\":\"84e3499a-a8fe-46a4-a75f-bcb662d90d7a\"}\n[2026-05-11 12:20:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"b5e8f251-32d3-4600-8c45-24c8b60dc589\",\"trace_id\":\"520c6125-d664-41dd-8ea3-0c19ebac8574\"}\n[2026-05-11 12:20:43] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"b5e8f251-32d3-4600-8c45-24c8b60dc589\",\"trace_id\":\"520c6125-d664-41dd-8ea3-0c19ebac8574\"}\n[2026-05-11 12:20:43] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"b5e8f251-32d3-4600-8c45-24c8b60dc589\",\"trace_id\":\"520c6125-d664-41dd-8ea3-0c19ebac8574\"}\n[2026-05-11 12:20:43] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"b5e8f251-32d3-4600-8c45-24c8b60dc589\",\"trace_id\":\"520c6125-d664-41dd-8ea3-0c19ebac8574\"}\n[2026-05-11 12:20:53] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"8fd1fe3b-16a0-4f99-a51e-4a3bdb3f80a0\",\"trace_id\":\"bca35c97-eaf1-4ba1-8e13-d68a03733efa\"}\n[2026-05-11 12:20:53] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 12:18:00, 2026-05-11 12:20:00] {\"correlation_id\":\"8fd1fe3b-16a0-4f99-a51e-4a3bdb3f80a0\",\"trace_id\":\"bca35c97-eaf1-4ba1-8e13-d68a03733efa\"}\n[2026-05-11 12:20:53] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 12:18:00, 2026-05-11 12:20:00] {\"correlation_id\":\"8fd1fe3b-16a0-4f99-a51e-4a3bdb3f80a0\",\"trace_id\":\"bca35c97-eaf1-4ba1-8e13-d68a03733efa\"}\n[2026-05-11 12:20:53] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"8fd1fe3b-16a0-4f99-a51e-4a3bdb3f80a0\",\"trace_id\":\"bca35c97-eaf1-4ba1-8e13-d68a03733efa\"}\n[2026-05-11 12:21:04] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"3b7a7e70-cb75-4c84-b8f0-6ca4685dfeeb\",\"trace_id\":\"d063a295-3a83-42a5-af96-be7f4432c2e9\"}\n[2026-05-11 12:21:04] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"3b7a7e70-cb75-4c84-b8f0-6ca4685dfeeb\",\"trace_id\":\"d063a295-3a83-42a5-af96-be7f4432c2e9\"}\n[2026-05-11 12:21:10] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"e86bfc68-4128-43bf-a61c-9911fd1e04be\",\"trace_id\":\"54ce4438-138b-4f81-a4c1-7aa1389bd2cb\"}\n[2026-05-11 12:21:11] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"e86bfc68-4128-43bf-a61c-9911fd1e04be\",\"trace_id\":\"54ce4438-138b-4f81-a4c1-7aa1389bd2cb\"}\n[2026-05-11 12:21:20] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"48e55441-bcfb-40bb-a727-ffc1504deed9\",\"trace_id\":\"e117b644-2c8c-4582-a1a7-a9484b1ce075\"}\n[2026-05-11 12:21:21] local.INFO: Running pre-meeting notification command {\"correlation_id\":\"48e55441-bcfb-40bb-a727-ffc1504deed9\",\"trace_id\":\"e117b644-2c8c-4582-a1a7-a9484b1ce075\"}\n[2026-05-11 12:21:21] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"48e55441-bcfb-40bb-a727-ffc1504deed9\",\"trace_id\":\"e117b644-2c8c-4582-a1a7-a9484b1ce075\"}\n[2026-05-11 12:21:30] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"3c829c64-c120-4952-92d0-6e031c245116\",\"trace_id\":\"3909e20b-cca4-4617-a2f1-f6e633412f74\"}\n[2026-05-11 12:21:30] local.INFO: Running conference:monitor:start command for activities in (2026-05-11 12:11:00, 2026-05-11 12:16:00] {\"correlation_id\":\"3c829c64-c120-4952-92d0-6e031c245116\",\"trace_id\":\"3909e20b-cca4-4617-a2f1-f6e633412f74\"}\n[2026-05-11 12:21:30] local.INFO: [conference:monitor:start] No activities found in (2026-05-11 12:11:00, 2026-05-11 12:16:00] {\"correlation_id\":\"3c829c64-c120-4952-92d0-6e031c245116\",\"trace_id\":\"3909e20b-cca4-4617-a2f1-f6e633412f74\"}\n[2026-05-11 12:21:30] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"3c829c64-c120-4952-92d0-6e031c245116\",\"trace_id\":\"3909e20b-cca4-4617-a2f1-f6e633412f74\"}\n[2026-05-11 12:21:40] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"18657c06-bf49-44b5-a586-2cc33dfbac6c\",\"trace_id\":\"c5709e81-501f-414f-b212-4c12a3e97ed1\"}\n[2026-05-11 12:21:40] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesEnded {\"from\":\"12:16\",\"to\":\"12:21\"} {\"correlation_id\":\"18657c06-bf49-44b5-a586-2cc33dfbac6c\",\"trace_id\":\"c5709e81-501f-414f-b212-4c12a3e97ed1\"}\n[2026-05-11 12:21:40] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesWithUnfinishedSession {\"from\":\"02:11\",\"to\":\"02:16\"} {\"correlation_id\":\"18657c06-bf49-44b5-a586-2cc33dfbac6c\",\"trace_id\":\"c5709e81-501f-414f-b212-4c12a3e97ed1\"}\n[2026-05-11 12:21:40] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"18657c06-bf49-44b5-a586-2cc33dfbac6c\",\"trace_id\":\"c5709e81-501f-414f-b212-4c12a3e97ed1\"}\n[2026-05-11 12:21:49] local.NOTICE: Repairing HubSpot tokens start {\"correlation_id\":\"6d623317-2549-48d6-bc51-ccc907721e1d\",\"trace_id\":\"2ea36702-a6c3-4052-a62b-517e5dd4624f\"}\n[2026-05-11 12:21:49] local.INFO: Trying to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\"} {\"correlation_id\":\"6d623317-2549-48d6-bc51-ccc907721e1d\",\"trace_id\":\"2ea36702-a6c3-4052-a62b-517e5dd4624f\"}\n[2026-05-11 12:21:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"6d623317-2549-48d6-bc51-ccc907721e1d\",\"trace_id\":\"2ea36702-a6c3-4052-a62b-517e5dd4624f\"}\n[2026-05-11 12:21:50] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":59,\"provider\":\"hubspot\",\"refreshToken\":\"97b78f6e2cc49965c00c2492b602b02708b1392551e6b3f113fbaa48992af90b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"6d623317-2549-48d6-bc51-ccc907721e1d\",\"trace_id\":\"2ea36702-a6c3-4052-a62b-517e5dd4624f\"}\n[2026-05-11 12:21:50] local.ERROR: Failed to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"6d623317-2549-48d6-bc51-ccc907721e1d\",\"trace_id\":\"2ea36702-a6c3-4052-a62b-517e5dd4624f\"}\n[2026-05-11 12:21:50] local.INFO: Trying to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\"} {\"correlation_id\":\"6d623317-2549-48d6-bc51-ccc907721e1d\",\"trace_id\":\"2ea36702-a6c3-4052-a62b-517e5dd4624f\"}\n[2026-05-11 12:21:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"6d623317-2549-48d6-bc51-ccc907721e1d\",\"trace_id\":\"2ea36702-a6c3-4052-a62b-517e5dd4624f\"}\n[2026-05-11 12:21:50] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":306,\"provider\":\"hubspot\",\"refreshToken\":\"6fa6aa8cc641d131231acc3470f5c03cb3b07b2e580fb18f8acb3b1dbb72549b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"6d623317-2549-48d6-bc51-ccc907721e1d\",\"trace_id\":\"2ea36702-a6c3-4052-a62b-517e5dd4624f\"}\n[2026-05-11 12:21:50] local.ERROR: Failed to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"6d623317-2549-48d6-bc51-ccc907721e1d\",\"trace_id\":\"2ea36702-a6c3-4052-a62b-517e5dd4624f\"}\n[2026-05-11 12:21:50] local.INFO: Trying to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\"} {\"correlation_id\":\"6d623317-2549-48d6-bc51-ccc907721e1d\",\"trace_id\":\"2ea36702-a6c3-4052-a62b-517e5dd4624f\"}\n[2026-05-11 12:21:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"6d623317-2549-48d6-bc51-ccc907721e1d\",\"trace_id\":\"2ea36702-a6c3-4052-a62b-517e5dd4624f\"}\n[2026-05-11 12:21:50] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1372,\"provider\":\"hubspot\",\"refreshToken\":\"9aa73948c761da29dce46c177cf9aee1fde483a44169ca38723f9f0597d7a8c4\",\"state\":\"full-refresh\"} {\"correlation_id\":\"6d623317-2549-48d6-bc51-ccc907721e1d\",\"trace_id\":\"2ea36702-a6c3-4052-a62b-517e5dd4624f\"}\n[2026-05-11 12:21:51] local.ERROR: Failed to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"6d623317-2549-48d6-bc51-ccc907721e1d\",\"trace_id\":\"2ea36702-a6c3-4052-a62b-517e5dd4624f\"}\n[2026-05-11 12:21:51] local.NOTICE: Repairing HubSpot tokens end {\"total\":3,\"fixed\":0,\"failed\":3} {\"correlation_id\":\"6d623317-2549-48d6-bc51-ccc907721e1d\",\"trace_id\":\"2ea36702-a6c3-4052-a62b-517e5dd4624f\"}\n[2026-05-11 12:21:59] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"baf1d10b-3075-4e0e-a69d-271c9b30251a\",\"trace_id\":\"0160ad26-8e64-4a9a-9bcb-2bb5a6e5c4ef\"}\n[2026-05-11 12:21:59] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"jiminny:transcription:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"520f6a72-31bc-4a4b-8ef9-dfaac8131068\",\"trace_id\":\"0ef5b84c-8257-401c-ad56-2c43bf9170b2\"}\n[2026-05-11 12:21:59] local.INFO: [HubSpot Journal Command] Starting polling service {\"correlation_id\":\"785b65a8-bb4c-44ce-a321-808303de1cc1\",\"trace_id\":\"47e5dcf0-839e-4b9c-a0de-a5ee1c352314\"}\n[2026-05-11 12:21:59] local.INFO: [HubSpot Journal Polling] Service starting {\"memory_limit\":\"256M\",\"max_execution_time\":\"0\",\"initial_memory_mb\":60.0} {\"correlation_id\":\"785b65a8-bb4c-44ce-a321-808303de1cc1\",\"trace_id\":\"47e5dcf0-839e-4b9c-a0de-a5ee1c352314\"}\n[2026-05-11 12:21:59] local.INFO: [HubSpot Journal Polling] Acquired polling lock {\"expires_at\":\"2026-05-11T12:23:59.382012Z\"} {\"correlation_id\":\"785b65a8-bb4c-44ce-a321-808303de1cc1\",\"trace_id\":\"47e5dcf0-839e-4b9c-a0de-a5ee1c352314\"}\n[2026-05-11 12:21:59] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"jiminny:transcription:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"520f6a72-31bc-4a4b-8ef9-dfaac8131068\",\"trace_id\":\"0ef5b84c-8257-401c-ad56-2c43bf9170b2\"}\n[2026-05-11 12:21:59] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"baf1d10b-3075-4e0e-a69d-271c9b30251a\",\"trace_id\":\"0160ad26-8e64-4a9a-9bcb-2bb5a6e5c4ef\"}\n[2026-05-11 12:21:59] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"785b65a8-bb4c-44ce-a321-808303de1cc1\",\"trace_id\":\"47e5dcf0-839e-4b9c-a0de-a5ee1c352314\"}\n[2026-05-11 12:22:05] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"785b65a8-bb4c-44ce-a321-808303de1cc1\",\"trace_id\":\"47e5dcf0-839e-4b9c-a0de-a5ee1c352314\"}\n[2026-05-11 12:22:09] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:reset-governor\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"8f9591a4-25d4-498a-b1ab-10c511c286d2\",\"trace_id\":\"3a958e2a-3128-4df0-8f46-891a3de9d305\"}\n[2026-05-11 12:22:10] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:reset-governor\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"8f9591a4-25d4-498a-b1ab-10c511c286d2\",\"trace_id\":\"3a958e2a-3128-4df0-8f46-891a3de9d305\"}\n[2026-05-11 12:22:10] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"785b65a8-bb4c-44ce-a321-808303de1cc1\",\"trace_id\":\"47e5dcf0-839e-4b9c-a0de-a5ee1c352314\"}\n[2026-05-11 12:22:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"0f4628cb-4553-4563-b0fc-2e4b2d7d7017\",\"trace_id\":\"ce16aae8-0e92-4f2a-8b64-d9f8f0742fd0\"}\n[2026-05-11 12:22:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"0f4628cb-4553-4563-b0fc-2e4b2d7d7017\",\"trace_id\":\"ce16aae8-0e92-4f2a-8b64-d9f8f0742fd0\"}\n[2026-05-11 12:22:25] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"785b65a8-bb4c-44ce-a321-808303de1cc1\",\"trace_id\":\"47e5dcf0-839e-4b9c-a0de-a5ee1c352314\"}\n[2026-05-11 12:22:56] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"785b65a8-bb4c-44ce-a321-808303de1cc1\",\"trace_id\":\"47e5dcf0-839e-4b9c-a0de-a5ee1c352314\"}\n[2026-05-11 12:22:56] local.WARNING: [HubSpot Journal Polling] Maximum empty results reached, stopping {\"empty_results\":5,\"max_empty_results\":5} {\"correlation_id\":\"785b65a8-bb4c-44ce-a321-808303de1cc1\",\"trace_id\":\"47e5dcf0-839e-4b9c-a0de-a5ee1c352314\"}\n[2026-05-11 12:22:56] local.WARNING: [HubSpot Journal Polling] Maximum empty results reached, stopping {\"empty_results\":5,\"max_empty_results\":5} {\"correlation_id\":\"785b65a8-bb4c-44ce-a321-808303de1cc1\",\"trace_id\":\"47e5dcf0-839e-4b9c-a0de-a5ee1c352314\"}\n[2026-05-11 12:22:56] local.INFO: [HubSpot Journal Polling] Service ending {\"runtime_seconds\":57,\"total_cycles\":5,\"files_downloaded\":0,\"empty_files\":0,\"other_portal_skipped\":0,\"total_events\":0,\"events_per_file\":0,\"avg_api_ms\":266.0,\"avg_download_ms\":0.0,\"avg_transform_ms\":0.0,\"avg_process_ms\":0.0,\"peak_memory_mb\":99.73} {\"correlation_id\":\"785b65a8-bb4c-44ce-a321-808303de1cc1\",\"trace_id\":\"47e5dcf0-839e-4b9c-a0de-a5ee1c352314\"}\n[2026-05-11 12:22:56] local.INFO: [HubSpot Journal Polling] Saved offset to database on cleanup {\"offset\":\"019e15a9-9ea0-7da7-87bc-82592e3ccf0d\"} {\"correlation_id\":\"785b65a8-bb4c-44ce-a321-808303de1cc1\",\"trace_id\":\"47e5dcf0-839e-4b9c-a0de-a5ee1c352314\"}\n[2026-05-11 12:22:56] local.INFO: [HubSpot Journal Polling] Released polling lock {\"correlation_id\":\"785b65a8-bb4c-44ce-a321-808303de1cc1\",\"trace_id\":\"47e5dcf0-839e-4b9c-a0de-a5ee1c352314\"}\n[2026-05-11 12:23:17] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"b10d35cf-25a8-4d0a-a093-3c03c1d21c35\",\"trace_id\":\"79b8aa81-09c0-419d-8fb4-748cd7c07dfa\"}\n[2026-05-11 12:23:17] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"b10d35cf-25a8-4d0a-a093-3c03c1d21c35\",\"trace_id\":\"79b8aa81-09c0-419d-8fb4-748cd7c07dfa\"}\n[2026-05-11 12:23:17] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"b10d35cf-25a8-4d0a-a093-3c03c1d21c35\",\"trace_id\":\"79b8aa81-09c0-419d-8fb4-748cd7c07dfa\"}\n[2026-05-11 12:23:22] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"65f73524-9a3f-4cd1-8b3c-08178041be45\",\"trace_id\":\"0df27da9-9e43-4d4b-a8f6-529d19ed31d1\"}\n[2026-05-11 12:23:22] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"65f73524-9a3f-4cd1-8b3c-08178041be45\",\"trace_id\":\"0df27da9-9e43-4d4b-a8f6-529d19ed31d1\"}\n[2026-05-11 12:23:28] local.NOTICE: Monitoring start {\"correlation_id\":\"f57ddb05-bb12-4534-9853-5100453a83e6\",\"trace_id\":\"4c6897b9-a428-44bb-a95b-7e595e694e9b\"}\n[2026-05-11 12:23:28] local.NOTICE: Monitoring end {\"correlation_id\":\"f57ddb05-bb12-4534-9853-5100453a83e6\",\"trace_id\":\"4c6897b9-a428-44bb-a95b-7e595e694e9b\"}\n[2026-05-11 12:23:33] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a3fbe76f-d2b6-4397-91bc-9f387f960603\",\"trace_id\":\"ce23c101-154d-4e0d-8562-de1bf72a01d2\"}\n[2026-05-11 12:23:33] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a3fbe76f-d2b6-4397-91bc-9f387f960603\",\"trace_id\":\"ce23c101-154d-4e0d-8562-de1bf72a01d2\"}\n[2026-05-11 12:23:41] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"b45dff6c-fe59-41f1-a02a-3d2db2a83bdd\",\"trace_id\":\"74ae7c19-6ff3-40df-b5b6-f4044f86819b\"}\n[2026-05-11 12:23:41] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"b45dff6c-fe59-41f1-a02a-3d2db2a83bdd\",\"trace_id\":\"74ae7c19-6ff3-40df-b5b6-f4044f86819b\"}\n[2026-05-11 12:23:41] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"b45dff6c-fe59-41f1-a02a-3d2db2a83bdd\",\"trace_id\":\"74ae7c19-6ff3-40df-b5b6-f4044f86819b\"}\n[2026-05-11 12:23:41] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"b45dff6c-fe59-41f1-a02a-3d2db2a83bdd\",\"trace_id\":\"74ae7c19-6ff3-40df-b5b6-f4044f86819b\"}\n[2026-05-11 12:23:55] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"317d8fa7-22d4-46a8-975a-71c29035ec8d\",\"trace_id\":\"e1c55d58-252b-49ab-b539-bb684c7539f3\"}\n[2026-05-11 12:23:55] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"317d8fa7-22d4-46a8-975a-71c29035ec8d\",\"trace_id\":\"e1c55d58-252b-49ab-b539-bb684c7539f3\"}\n[2026-05-11 12:23:56] local.INFO: [integration-app] Request {\"request\":\"GET connections\",\"full_target\":\"connections\"} {\"correlation_id\":\"fc1a4bd3-12c3-4905-a709-0d351f45e06d\",\"trace_id\":\"d7d04c3f-4829-437d-bd31-af51c6258297\"}\n[2026-05-11 12:23:57] local.INFO: [integration-app] Connection state identified {\"teamId\":3143,\"connection_name\":\"Connection to 66fe6c913202f3a165e3c14d for Dev Zoho CRM client\",\"remote_connection_id\":\"69e0b983da98fa74f98aebfb\",\"is_disconnected\":false,\"is_deactivated\":false,\"is_valid\":true} {\"correlation_id\":\"fc1a4bd3-12c3-4905-a709-0d351f45e06d\",\"trace_id\":\"d7d04c3f-4829-437d-bd31-af51c6258297\"}\n[2026-05-11 12:24:13] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"8be18703-0b36-46e2-8f71-489d5247a584\",\"trace_id\":\"a3d8f8c4-5107-4a89-bda5-56cae4361144\"}\n[2026-05-11 12:24:13] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"8be18703-0b36-46e2-8f71-489d5247a584\",\"trace_id\":\"a3d8f8c4-5107-4a89-bda5-56cae4361144\"}\n[2026-05-11 12:24:13] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"8be18703-0b36-46e2-8f71-489d5247a584\",\"trace_id\":\"a3d8f8c4-5107-4a89-bda5-56cae4361144\"}\n[2026-05-11 12:24:19] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"0d819555-0504-4123-8fa3-5254967a4026\",\"trace_id\":\"36468ee0-66c3-42df-a715-d5a567b33d56\"}\n[2026-05-11 12:24:20] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"0d819555-0504-4123-8fa3-5254967a4026\",\"trace_id\":\"36468ee0-66c3-42df-a715-d5a567b33d56\"}\n[2026-05-11 12:24:29] local.NOTICE: Monitoring start {\"correlation_id\":\"8d567cd7-7e41-41b1-9e69-2385d4cfa7a8\",\"trace_id\":\"b46279db-4250-47db-be10-da9479ad590a\"}\n[2026-05-11 12:24:29] local.NOTICE: Monitoring end {\"correlation_id\":\"8d567cd7-7e41-41b1-9e69-2385d4cfa7a8\",\"trace_id\":\"b46279db-4250-47db-be10-da9479ad590a\"}\n[2026-05-11 12:24:33] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"e236f29c-523b-4e37-9e12-45b0da7aa46b\",\"trace_id\":\"21ad246c-71e8-401d-b560-a39c4d6f65fd\"}\n[2026-05-11 12:24:33] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"e236f29c-523b-4e37-9e12-45b0da7aa46b\",\"trace_id\":\"21ad246c-71e8-401d-b560-a39c4d6f65fd\"}\n[2026-05-11 12:24:57] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"8c10f484-1ed7-429b-9724-4c36dbaab3b6\",\"trace_id\":\"4650b826-3e95-4f5d-9722-227c528c6c42\"}\n[2026-05-11 12:24:57] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"8c10f484-1ed7-429b-9724-4c36dbaab3b6\",\"trace_id\":\"4650b826-3e95-4f5d-9722-227c528c6c42\"}\n[2026-05-11 12:24:58] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"8c10f484-1ed7-429b-9724-4c36dbaab3b6\",\"trace_id\":\"4650b826-3e95-4f5d-9722-227c528c6c42\"}\n[2026-05-11 12:24:58] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"8c10f484-1ed7-429b-9724-4c36dbaab3b6\",\"trace_id\":\"4650b826-3e95-4f5d-9722-227c528c6c42\"}\n[2026-05-11 12:25:07] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"43cc53aa-24f2-4b8d-a449-e48115af6b07\",\"trace_id\":\"f2bb1873-b779-4d04-967a-888f1e867756\"}\n[2026-05-11 12:25:07] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 12:23:00, 2026-05-11 12:25:00] {\"correlation_id\":\"43cc53aa-24f2-4b8d-a449-e48115af6b07\",\"trace_id\":\"f2bb1873-b779-4d04-967a-888f1e867756\"}\n[2026-05-11 12:25:07] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 12:23:00, 2026-05-11 12:25:00] {\"correlation_id\":\"43cc53aa-24f2-4b8d-a449-e48115af6b07\",\"trace_id\":\"f2bb1873-b779-4d04-967a-888f1e867756\"}\n[2026-05-11 12:25:07] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"43cc53aa-24f2-4b8d-a449-e48115af6b07\",\"trace_id\":\"f2bb1873-b779-4d04-967a-888f1e867756\"}\n[2026-05-11 12:25:17] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:aircall:check-and-renew\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"344fe7e1-c3a8-4e7f-8170-ed913c472414\",\"trace_id\":\"d33376a0-3e56-43ba-bfcf-2339f37542f0\"}\n[2026-05-11 12:25:17] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1496,\"provider\":\"aircall\"} {\"correlation_id\":\"344fe7e1-c3a8-4e7f-8170-ed913c472414\",\"trace_id\":\"d33376a0-3e56-43ba-bfcf-2339f37542f0\"}\n[2026-05-11 12:25:17] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1496,\"provider\":\"aircall\"} {\"correlation_id\":\"344fe7e1-c3a8-4e7f-8170-ed913c472414\",\"trace_id\":\"d33376a0-3e56-43ba-bfcf-2339f37542f0\"}\n[2026-05-11 12:25:17] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"344fe7e1-c3a8-4e7f-8170-ed913c472414\",\"trace_id\":\"d33376a0-3e56-43ba-bfcf-2339f37542f0\"}\n[2026-05-11 12:25:18] local.ERROR: [Aircall] Re-activating webhooks failed {\"team_id\":1,\"reason\":\"{\\\"message\\\":\\\"Forbidden\\\"}\"} {\"correlation_id\":\"344fe7e1-c3a8-4e7f-8170-ed913c472414\",\"trace_id\":\"d33376a0-3e56-43ba-bfcf-2339f37542f0\"}\n[2026-05-11 12:25:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:aircall:check-and-renew\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"344fe7e1-c3a8-4e7f-8170-ed913c472414\",\"trace_id\":\"d33376a0-3e56-43ba-bfcf-2339f37542f0\"}\n[2026-05-11 12:25:25] local.INFO: [RetryFailedDownloads] Starting {\"options\":{\"from\":null,\"to\":null,\"help\":false,\"silent\":false,\"quiet\":false,\"verbose\":false,\"version\":false,\"ansi\":null,\"no-interaction\":false,\"env\":null}} {\"correlation_id\":\"a2e39f0c-6db3-49a1-8c09-98a1f5f9bda0\",\"trace_id\":\"b5be15b6-cf7b-4fd3-96fc-86d618b464eb\"}\n[2026-05-11 12:26:07] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"2e415ec3-72a6-4366-bb43-6e5da27f0efa\",\"trace_id\":\"c795c8ff-2220-49a5-9f11-d7106d80f18c\"}\n[2026-05-11 12:26:07] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"2e415ec3-72a6-4366-bb43-6e5da27f0efa\",\"trace_id\":\"c795c8ff-2220-49a5-9f11-d7106d80f18c\"}\n[2026-05-11 12:26:07] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"2e415ec3-72a6-4366-bb43-6e5da27f0efa\",\"trace_id\":\"c795c8ff-2220-49a5-9f11-d7106d80f18c\"}\n[2026-05-11 12:26:10] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"19883e58-93fc-4e3a-8599-c450fe7efb4d\",\"trace_id\":\"be470217-f201-4e61-af64-48d840e099a5\"}\n[2026-05-11 12:26:10] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"19883e58-93fc-4e3a-8599-c450fe7efb4d\",\"trace_id\":\"be470217-f201-4e61-af64-48d840e099a5\"}\n[2026-05-11 12:26:12] local.NOTICE: Monitoring start {\"correlation_id\":\"5b3e0e06-6c7b-4825-99a3-6dfc70267f4f\",\"trace_id\":\"f502c0e8-8051-48b5-9713-87ef60a0500e\"}\n[2026-05-11 12:26:12] local.NOTICE: Monitoring end {\"correlation_id\":\"5b3e0e06-6c7b-4825-99a3-6dfc70267f4f\",\"trace_id\":\"f502c0e8-8051-48b5-9713-87ef60a0500e\"}\n[2026-05-11 12:26:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"1344d34e-960d-4b58-afb3-7be4b2ce10cf\",\"trace_id\":\"c57dc190-922d-444d-84c2-11c132cfcb75\"}\n[2026-05-11 12:26:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"1344d34e-960d-4b58-afb3-7be4b2ce10cf\",\"trace_id\":\"c57dc190-922d-444d-84c2-11c132cfcb75\"}\n[2026-05-11 12:26:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"45577d8a-3a8e-4150-9dc2-bc3ed65a85be\",\"trace_id\":\"b3cbbe19-fba8-4d58-9b7c-e15d5de225ce\"}\n[2026-05-11 12:26:18] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"45577d8a-3a8e-4150-9dc2-bc3ed65a85be\",\"trace_id\":\"b3cbbe19-fba8-4d58-9b7c-e15d5de225ce\"}\n[2026-05-11 12:26:18] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"45577d8a-3a8e-4150-9dc2-bc3ed65a85be\",\"trace_id\":\"b3cbbe19-fba8-4d58-9b7c-e15d5de225ce\"}\n[2026-05-11 12:26:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"45577d8a-3a8e-4150-9dc2-bc3ed65a85be\",\"trace_id\":\"b3cbbe19-fba8-4d58-9b7c-e15d5de225ce\"}\n[2026-05-11 12:26:27] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"ae0af53d-e285-4a35-9e7b-0edcced20eae\",\"trace_id\":\"56514118-bd73-4c46-952d-88c534593158\"}\n[2026-05-11 12:26:27] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 12:24:00, 2026-05-11 12:26:00] {\"correlation_id\":\"ae0af53d-e285-4a35-9e7b-0edcced20eae\",\"trace_id\":\"56514118-bd73-4c46-952d-88c534593158\"}\n[2026-05-11 12:26:27] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 12:24:00, 2026-05-11 12:26:00] {\"correlation_id\":\"ae0af53d-e285-4a35-9e7b-0edcced20eae\",\"trace_id\":\"56514118-bd73-4c46-952d-88c534593158\"}\n[2026-05-11 12:26:27] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"ae0af53d-e285-4a35-9e7b-0edcced20eae\",\"trace_id\":\"56514118-bd73-4c46-952d-88c534593158\"}\n[2026-05-11 12:26:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:sync-hubspot-objects\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"e296b63c-e11b-44dc-81bf-315d967a55bc\",\"trace_id\":\"7a505e32-77cb-43ed-9141-8505133f1ac8\"}\n[2026-05-11 12:26:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:sync-hubspot-objects\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"e296b63c-e11b-44dc-81bf-315d967a55bc\",\"trace_id\":\"7a505e32-77cb-43ed-9141-8505133f1ac8\"}\n[2026-05-11 12:26:32] local.INFO: [SyncHubspotObjects] Starting sync {\"team\":\"abae74b8-bfa8-4383-9a7f-89f4bf2bdbb4\",\"usage\":23705696,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"5eb6e9cc-4b26-4881-bec7-7bd4741f7c53\",\"trace_id\":\"7a505e32-77cb-43ed-9141-8505133f1ac8\"}\n[2026-05-11 12:26:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5eb6e9cc-4b26-4881-bec7-7bd4741f7c53\",\"trace_id\":\"7a505e32-77cb-43ed-9141-8505133f1ac8\"}\n[2026-05-11 12:26:32] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5eb6e9cc-4b26-4881-bec7-7bd4741f7c53\",\"trace_id\":\"7a505e32-77cb-43ed-9141-8505133f1ac8\"}\n[2026-05-11 12:26:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"5eb6e9cc-4b26-4881-bec7-7bd4741f7c53\",\"trace_id\":\"7a505e32-77cb-43ed-9141-8505133f1ac8\"}\n[2026-05-11 12:26:32] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1499,\"provider\":\"hubspot\",\"refreshToken\":\"96f94c623a404e02ebdbf07f1b75707bb6cdbf848cbf45d418baf608c41a8d86\",\"state\":\"connected\"} {\"correlation_id\":\"5eb6e9cc-4b26-4881-bec7-7bd4741f7c53\",\"trace_id\":\"7a505e32-77cb-43ed-9141-8505133f1ac8\"}\n[2026-05-11 12:26:32] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"5eb6e9cc-4b26-4881-bec7-7bd4741f7c53\",\"trace_id\":\"7a505e32-77cb-43ed-9141-8505133f1ac8\"}\n[2026-05-11 12:26:32] local.INFO: [SocialAccountObserver] Access token was modified, encrypting {\"correlation_id\":\"5eb6e9cc-4b26-4881-bec7-7bd4741f7c53\",\"trace_id\":\"7a505e32-77cb-43ed-9141-8505133f1ac8\"}\n[2026-05-11 12:26:33] local.INFO: [SocialAccountService] Token refreshed {\"socialAccountId\":1499,\"provider\":\"hubspot\",\"state\":\"connected\"} {\"correlation_id\":\"5eb6e9cc-4b26-4881-bec7-7bd4741f7c53\",\"trace_id\":\"7a505e32-77cb-43ed-9141-8505133f1ac8\"}\n[2026-05-11 12:26:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"5eb6e9cc-4b26-4881-bec7-7bd4741f7c53\",\"trace_id\":\"7a505e32-77cb-43ed-9141-8505133f1ac8\"}\n[2026-05-11 12:26:33] local.INFO: [HubSpot] Syncing opportunities using strategy: lastModified {\"team\":2} {\"correlation_id\":\"5eb6e9cc-4b26-4881-bec7-7bd4741f7c53\",\"trace_id\":\"7a505e32-77cb-43ed-9141-8505133f1ac8\"}\n[2026-05-11 12:26:34] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.36,\"average_seconds_per_request\":0.36} {\"correlation_id\":\"5eb6e9cc-4b26-4881-bec7-7bd4741f7c53\",\"trace_id\":\"7a505e32-77cb-43ed-9141-8505133f1ac8\"}\n[2026-05-11 12:26:34] local.INFO: [HubSpot] Synced opportunities {\"team\":2,\"strategies\":\"lastModified\",\"sync_count\":0,\"total\":0,\"last_synced_id\":null,\"duration_ms\":424.21} {\"correlation_id\":\"5eb6e9cc-4b26-4881-bec7-7bd4741f7c53\",\"trace_id\":\"7a505e32-77cb-43ed-9141-8505133f1ac8\"}\n[2026-05-11 12:26:34] local.INFO: [SyncHubspotObjects] Sync finished {\"team\":\"abae74b8-bfa8-4383-9a7f-89f4bf2bdbb4\",\"provider\":\"hubspot\",\"status\":\"completed\",\"duration_ms\":2009.68,\"usage\":23905768,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"5eb6e9cc-4b26-4881-bec7-7bd4741f7c53\",\"trace_id\":\"7a505e32-77cb-43ed-9141-8505133f1ac8\"}\n[2026-05-11 12:26:34] local.INFO: [SyncHubspotObjects] Starting sync {\"team\":\"b2b115eb-93ce-4d1b-929c-173757df8fba\",\"usage\":23880504,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"3c5441b7-57b7-4b93-89a0-c54af39354fc\",\"trace_id\":\"7a505e32-77cb-43ed-9141-8505133f1ac8\"}\n[2026-05-11 12:26:34] local.WARNING: [HubSpot] Account not connected for user {\"userId\":\"33e34a7a-1c02-4f04-87ac-22c3a385e6e3\",\"account\":{\"Jiminny\\\\Models\\\\SocialAccount\":{\"id\":306,\"sociable_id\":109,\"provider_user_id\":\"11348452\",\"expires\":1701077403,\"refresh_token_expires\":null,\"provider\":\"hubspot\",\"state\":\"full-refresh\",\"auth_scope\":null,\"retry_after\":null,\"created_at\":\"2020-09-01 16:59:04\",\"updated_at\":\"2023-11-27 09:30:03\"}}} {\"correlation_id\":\"3c5441b7-57b7-4b93-89a0-c54af39354fc\",\"trace_id\":\"7a505e32-77cb-43ed-9141-8505133f1ac8\"}\n[2026-05-11 12:26:34] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"hubspot\",\"crm_owner\":109,\"team_id\":29} {\"correlation_id\":\"3c5441b7-57b7-4b93-89a0-c54af39354fc\",\"trace_id\":\"7a505e32-77cb-43ed-9141-8505133f1ac8\"}\n[2026-05-11 12:26:34] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":29} {\"correlation_id\":\"3c5441b7-57b7-4b93-89a0-c54af39354fc\",\"trace_id\":\"7a505e32-77cb-43ed-9141-8505133f1ac8\"}\n[2026-05-11 12:26:34] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":29} {\"correlation_id\":\"3c5441b7-57b7-4b93-89a0-c54af39354fc\",\"trace_id\":\"7a505e32-77cb-43ed-9141-8505133f1ac8\"}\n[2026-05-11 12:26:34] local.INFO: [SyncHubspotObjects] Sync finished {\"team\":\"b2b115eb-93ce-4d1b-929c-173757df8fba\",\"provider\":\"hubspot\",\"status\":\"disconnected\",\"duration_ms\":105.69,\"usage\":23880424,\"real_usage\":62914560,\"pid\":74083,\"reason\":\"Your HubSpot account has become disconnected. Please login to Jiminny to reconnect.\"} {\"correlation_id\":\"3c5441b7-57b7-4b93-89a0-c54af39354fc\",\"trace_id\":\"7a505e32-77cb-43ed-9141-8505133f1ac8\"}\n[2026-05-11 12:26:34] local.INFO: [SyncHubspotObjects] Starting sync {\"team\":\"b2d49a54-b645-4637-a7ae-a86cfce6e8e4\",\"usage\":23837928,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"77cb9653-cfa5-47ef-abd1-9324f9bc381c\",\"trace_id\":\"7a505e32-77cb-43ed-9141-8505133f1ac8\"}\n[2026-05-11 12:26:34] local.WARNING: [HubSpot] Account not connected for user {\"userId\":\"2ac0447f-3c8c-4ce0-baeb-b63ddb76fa9b\",\"account\":null} {\"correlation_id\":\"77cb9653-cfa5-47ef-abd1-9324f9bc381c\",\"trace_id\":\"7a505e32-77cb-43ed-9141-8505133f1ac8\"}\n[2026-05-11 12:26:34] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"hubspot\",\"crm_owner\":130,\"team_id\":42} {\"correlation_id\":\"77cb9653-cfa5-47ef-abd1-9324f9bc381c\",\"trace_id\":\"7a505e32-77cb-43ed-9141-8505133f1ac8\"}\n[2026-05-11 12:26:34] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":42} {\"correlation_id\":\"77cb9653-cfa5-47ef-abd1-9324f9bc381c\",\"trace_id\":\"7a505e32-77cb-43ed-9141-8505133f1ac8\"}\n[2026-05-11 12:26:34] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":42} {\"correlation_id\":\"77cb9653-cfa5-47ef-abd1-9324f9bc381c\",\"trace_id\":\"7a505e32-77cb-43ed-9141-8505133f1ac8\"}\n[2026-05-11 12:26:34] local.INFO: [SyncHubspotObjects] Sync finished {\"team\":\"b2d49a54-b645-4637-a7ae-a86cfce6e8e4\",\"provider\":\"hubspot\",\"status\":\"disconnected\",\"duration_ms\":30.33,\"usage\":23857632,\"real_usage\":62914560,\"pid\":74083,\"reason\":\"Social account for HubSpot cannot be found. Please login to Jiminny to connect.\"} {\"correlation_id\":\"77cb9653-cfa5-47ef-abd1-9324f9bc381c\",\"trace_id\":\"7a505e32-77cb-43ed-9141-8505133f1ac8\"}\n[2026-05-11 12:26:34] local.INFO: [SyncHubspotObjects] Starting sync {\"team\":\"c6b9d6b0-b48d-4832-a68c-a57d60651888\",\"usage\":23818312,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"6d3c2da9-8eba-4235-a28f-fc1be82e2565\",\"trace_id\":\"7a505e32-77cb-43ed-9141-8505133f1ac8\"}\n[2026-05-11 12:26:34] local.WARNING: [HubSpot] Account not connected for user {\"userId\":\"71e3aac5-fb66-47c5-a236-2d051ae3e319\",\"account\":null} {\"correlation_id\":\"6d3c2da9-8eba-4235-a28f-fc1be82e2565\",\"trace_id\":\"7a505e32-77cb-43ed-9141-8505133f1ac8\"}\n[2026-05-11 12:26:34] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"hubspot\",\"crm_owner\":256,\"team_id\":49} {\"correlation_id\":\"6d3c2da9-8eba-4235-a28f-fc1be82e2565\",\"trace_id\":\"7a505e32-77cb-43ed-9141-8505133f1ac8\"}\n[2026-05-11 12:26:34] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":49} {\"correlation_id\":\"6d3c2da9-8eba-4235-a28f-fc1be82e2565\",\"trace_id\":\"7a505e32-77cb-43ed-9141-8505133f1ac8\"}\n[2026-05-11 12:26:34] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":49} {\"correlation_id\":\"6d3c2da9-8eba-4235-a28f-fc1be82e2565\",\"trace_id\":\"7a505e32-77cb-43ed-9141-8505133f1ac8\"}\n[2026-05-11 12:26:34] local.INFO: [SyncHubspotObjects] Sync finished {\"team\":\"c6b9d6b0-b48d-4832-a68c-a57d60651888\",\"provider\":\"hubspot\",\"status\":\"disconnected\",\"duration_ms\":22.58,\"usage\":23854048,\"real_usage\":62914560,\"pid\":74083,\"reason\":\"Social account for HubSpot cannot be found. Please login to Jiminny to connect.\"} {\"correlation_id\":\"6d3c2da9-8eba-4235-a28f-fc1be82e2565\",\"trace_id\":\"7a505e32-77cb-43ed-9141-8505133f1ac8\"}\n[2026-05-11 12:26:44] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:notify-not-logged\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"3cc3e6d7-cd8a-44a8-8d60-049d66a566e9\",\"trace_id\":\"0e059d99-cb53-4410-ba85-82bf3a2c8af7\"}\n[2026-05-11 12:26:44] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:notify-not-logged\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"3cc3e6d7-cd8a-44a8-8d60-049d66a566e9\",\"trace_id\":\"0e059d99-cb53-4410-ba85-82bf3a2c8af7\"}\n[2026-05-11 12:26:58] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"7d57268f-32d4-4e03-90ad-534140824d88\",\"trace_id\":\"cef544b9-52c4-44d5-b361-4bb6f308be9c\"}\n[2026-05-11 12:26:58] local.INFO: [EmailSchedule] STARTING Inbox Sync {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"7d57268f-32d4-4e03-90ad-534140824d88\",\"trace_id\":\"cef544b9-52c4-44d5-b361-4bb6f308be9c\"}\n[2026-05-11 12:26:59] local.INFO: [EmailSchedule] FINISHED Inbox Sync {\"host\":\"docker_lamp_1\",\"events\":2} {\"correlation_id\":\"7d57268f-32d4-4e03-90ad-534140824d88\",\"trace_id\":\"cef544b9-52c4-44d5-b361-4bb6f308be9c\"}\n[2026-05-11 12:26:59] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"7d57268f-32d4-4e03-90ad-534140824d88\",\"trace_id\":\"cef544b9-52c4-44d5-b361-4bb6f308be9c\"}\n[2026-05-11 12:26:59] local.INFO: [Sync Mailbox] Sync start {\"inbox_id\":59} {\"correlation_id\":\"d0588d51-150a-4f58-8693-e6e3cbaf337a\",\"trace_id\":\"cef544b9-52c4-44d5-b361-4bb6f308be9c\"}\n[2026-05-11 12:27:00] local.INFO: [Inbox service] Skipping METADATA SYNC for inbox 59 due to unauthorized access to the mailbox {\"correlation_id\":\"d0588d51-150a-4f58-8693-e6e3cbaf337a\",\"trace_id\":\"cef544b9-52c4-44d5-b361-4bb6f308be9c\"}\n[2026-05-11 12:27:00] local.INFO: [Sync Mailbox] Sync complete {\"inbox_id\":59} {\"correlation_id\":\"d0588d51-150a-4f58-8693-e6e3cbaf337a\",\"trace_id\":\"cef544b9-52c4-44d5-b361-4bb6f308be9c\"}\n[2026-05-11 12:27:00] local.INFO: [Sync Mailbox] Sync start {\"inbox_id\":212} {\"correlation_id\":\"a06bdd65-beae-453c-b260-e153267b9c31\",\"trace_id\":\"cef544b9-52c4-44d5-b361-4bb6f308be9c\"}\n[2026-05-11 12:27:00] local.INFO: [Inbox service] Skipping METADATA SYNC for inbox 212 due to unauthorized access to the mailbox {\"correlation_id\":\"a06bdd65-beae-453c-b260-e153267b9c31\",\"trace_id\":\"cef544b9-52c4-44d5-b361-4bb6f308be9c\"}\n[2026-05-11 12:27:00] local.INFO: [Sync Mailbox] Sync complete {\"inbox_id\":212} {\"correlation_id\":\"a06bdd65-beae-453c-b260-e153267b9c31\",\"trace_id\":\"cef544b9-52c4-44d5-b361-4bb6f308be9c\"}\n[2026-05-11 12:27:19] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"05628172-a2f4-47b5-b915-98d6f0fffebd\",\"trace_id\":\"fda18837-61d8-401b-9762-af15065443c8\"}\n[2026-05-11 12:27:19] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"05628172-a2f4-47b5-b915-98d6f0fffebd\",\"trace_id\":\"fda18837-61d8-401b-9762-af15065443c8\"}\n[2026-05-11 12:27:19] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"05628172-a2f4-47b5-b915-98d6f0fffebd\",\"trace_id\":\"fda18837-61d8-401b-9762-af15065443c8\"}\n[2026-05-11 12:27:28] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"4ba3fba8-62e3-4efa-9275-136b27861a0f\",\"trace_id\":\"128450ce-7b06-4190-9767-340c6d1661e1\"}\n[2026-05-11 12:27:28] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"4ba3fba8-62e3-4efa-9275-136b27861a0f\",\"trace_id\":\"128450ce-7b06-4190-9767-340c6d1661e1\"}\n[2026-05-11 12:27:32] local.NOTICE: Monitoring start {\"correlation_id\":\"04a3f08a-f1f5-4523-b617-165034b6cf2f\",\"trace_id\":\"b7d164f1-5d51-4f19-88b9-7a1e4cdd546c\"}\n[2026-05-11 12:27:32] local.NOTICE: Monitoring end {\"correlation_id\":\"04a3f08a-f1f5-4523-b617-165034b6cf2f\",\"trace_id\":\"b7d164f1-5d51-4f19-88b9-7a1e4cdd546c\"}\n[2026-05-11 12:27:37] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"eadaa109-fab1-45ff-9eb2-65ea5d005584\",\"trace_id\":\"8c549159-0f61-4827-9adc-41ec78d53b62\"}\n[2026-05-11 12:27:38] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"eadaa109-fab1-45ff-9eb2-65ea5d005584\",\"trace_id\":\"8c549159-0f61-4827-9adc-41ec78d53b62\"}\n[2026-05-11 12:27:47] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"9bb2b685-cf85-437d-8fb1-78fce6d810b9\",\"trace_id\":\"45ef9c78-c297-4b6b-8068-350c2a32309a\"}\n[2026-05-11 12:27:47] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"9bb2b685-cf85-437d-8fb1-78fce6d810b9\",\"trace_id\":\"45ef9c78-c297-4b6b-8068-350c2a32309a\"}\n[2026-05-11 12:27:48] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"9bb2b685-cf85-437d-8fb1-78fce6d810b9\",\"trace_id\":\"45ef9c78-c297-4b6b-8068-350c2a32309a\"}\n[2026-05-11 12:27:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"9bb2b685-cf85-437d-8fb1-78fce6d810b9\",\"trace_id\":\"45ef9c78-c297-4b6b-8068-350c2a32309a\"}\n[2026-05-11 12:27:53] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"fa34df26-bbe1-4365-8946-33d6ffa19cdf\",\"trace_id\":\"31df4851-f5ad-48f2-b776-551a112c5c01\"}\n[2026-05-11 12:27:54] local.INFO: [EmailSchedule] STARTING batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"fa34df26-bbe1-4365-8946-33d6ffa19cdf\",\"trace_id\":\"31df4851-f5ad-48f2-b776-551a112c5c01\"}\n[2026-05-11 12:27:54] local.INFO: [EmailSchedule] FINISHED batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"fa34df26-bbe1-4365-8946-33d6ffa19cdf\",\"trace_id\":\"31df4851-f5ad-48f2-b776-551a112c5c01\"}\n[2026-05-11 12:27:54] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"fa34df26-bbe1-4365-8946-33d6ffa19cdf\",\"trace_id\":\"31df4851-f5ad-48f2-b776-551a112c5c01\"}\n[2026-05-11 12:27:55] local.INFO: [Jiminny\\Jobs\\Mailbox\\CreateBatches] processed 2 inboxes and created 0 batches {\"userId\":null,\"batchSize\":30,\"maxBatches\":1000} {\"correlation_id\":\"ec257f30-38ec-4977-a4c0-51bf7a05ae9a\",\"trace_id\":\"31df4851-f5ad-48f2-b776-551a112c5c01\"}\n[2026-05-11 12:28:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"d83261db-1f58-45ad-b7ad-98b8d6e2a3b0\",\"trace_id\":\"efe9aac4-27df-4a9c-a0c0-b0d30d86bc92\"}\n[2026-05-11 12:28:16] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"d83261db-1f58-45ad-b7ad-98b8d6e2a3b0\",\"trace_id\":\"efe9aac4-27df-4a9c-a0c0-b0d30d86bc92\"}\n[2026-05-11 12:28:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"d83261db-1f58-45ad-b7ad-98b8d6e2a3b0\",\"trace_id\":\"efe9aac4-27df-4a9c-a0c0-b0d30d86bc92\"}\n[2026-05-11 12:28:22] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"d01a8f09-3e80-4d81-9822-3ee3c5e61038\",\"trace_id\":\"0e9e3880-1bef-4493-9b30-2b02f10d6af9\"}\n[2026-05-11 12:28:22] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"d01a8f09-3e80-4d81-9822-3ee3c5e61038\",\"trace_id\":\"0e9e3880-1bef-4493-9b30-2b02f10d6af9\"}\n[2026-05-11 12:28:31] local.NOTICE: Monitoring start {\"correlation_id\":\"0f632fea-19e4-45b3-b5fc-d989313b5874\",\"trace_id\":\"ad41804e-eaf8-454f-87f8-e9456ba84658\"}\n[2026-05-11 12:28:31] local.NOTICE: Monitoring end {\"correlation_id\":\"0f632fea-19e4-45b3-b5fc-d989313b5874\",\"trace_id\":\"ad41804e-eaf8-454f-87f8-e9456ba84658\"}\n[2026-05-11 12:28:35] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"5fd6f7b2-d4c0-45f3-be1a-175bc4fff4a7\",\"trace_id\":\"6566ba80-1c28-4440-98bc-7c814405debd\"}\n[2026-05-11 12:28:35] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"5fd6f7b2-d4c0-45f3-be1a-175bc4fff4a7\",\"trace_id\":\"6566ba80-1c28-4440-98bc-7c814405debd\"}\n[2026-05-11 12:28:45] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"dbae43eb-9196-462a-8f7e-569dcedf9943\",\"trace_id\":\"357e79e8-f8bf-47df-b390-a3d40c03437d\"}\n[2026-05-11 12:28:45] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"dbae43eb-9196-462a-8f7e-569dcedf9943\",\"trace_id\":\"357e79e8-f8bf-47df-b390-a3d40c03437d\"}\n[2026-05-11 12:28:46] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"dbae43eb-9196-462a-8f7e-569dcedf9943\",\"trace_id\":\"357e79e8-f8bf-47df-b390-a3d40c03437d\"}\n[2026-05-11 12:28:46] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"dbae43eb-9196-462a-8f7e-569dcedf9943\",\"trace_id\":\"357e79e8-f8bf-47df-b390-a3d40c03437d\"}\n[2026-05-11 12:28:51] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"8759214f-cba4-40ff-8c96-de84018cb116\",\"trace_id\":\"7c7ce687-edbf-44ce-9d45-0fcfc80c9f53\"}\n[2026-05-11 12:28:51] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 12:26:00, 2026-05-11 12:28:00] {\"correlation_id\":\"8759214f-cba4-40ff-8c96-de84018cb116\",\"trace_id\":\"7c7ce687-edbf-44ce-9d45-0fcfc80c9f53\"}\n[2026-05-11 12:28:51] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 12:26:00, 2026-05-11 12:28:00] {\"correlation_id\":\"8759214f-cba4-40ff-8c96-de84018cb116\",\"trace_id\":\"7c7ce687-edbf-44ce-9d45-0fcfc80c9f53\"}\n[2026-05-11 12:28:51] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"8759214f-cba4-40ff-8c96-de84018cb116\",\"trace_id\":\"7c7ce687-edbf-44ce-9d45-0fcfc80c9f53\"}\n[2026-05-11 12:28:59] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"392c63a7-d0d7-4ed8-80f2-c31adcd960a7\",\"trace_id\":\"7c2aa67d-4f73-4eb2-a41b-72f1714ad0aa\"}\n[2026-05-11 12:28:59] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"calendar:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:28:59] local.NOTICE: Calendar sync start {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:00] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"392c63a7-d0d7-4ed8-80f2-c31adcd960a7\",\"trace_id\":\"7c2aa67d-4f73-4eb2-a41b-72f1714ad0aa\"}\n[2026-05-11 12:29:00] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1393,\"provider\":\"google\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:00] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1393,\"provider\":\"google\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:00] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:00] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1393,\"provider\":\"google\",\"refreshToken\":\"5aa7e2d96b53201cd16fca5d2e4ef3ad03320971fc064781d18aee3ae7b99fbf\",\"state\":\"full-refresh\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:01] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1393,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Account has been deleted\"}} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:01] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:01] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1393,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:01] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1387,\"provider\":\"google\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:01] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1387,\"provider\":\"google\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:01] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:01] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1387,\"provider\":\"google\",\"refreshToken\":\"8157ac6de94842937194009e9c50e459253600f799dacf6a40755ffdbeb5bba6\",\"state\":\"full-refresh\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:01] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1387,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Account has been deleted\"}} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:01] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:01] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1387,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:01] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1348,\"provider\":\"google\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:01] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1348,\"provider\":\"google\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:01] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:01] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1348,\"provider\":\"google\",\"refreshToken\":\"9e7d13d3032d0cb1b79d8e95aef01383e8e91eb52ff8ee960c8a0b6b95cd8c73\",\"state\":\"full-refresh\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:01] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1348,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:01] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:02] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1348,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1361,\"provider\":\"google\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:02] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1361,\"provider\":\"google\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:02] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1361,\"provider\":\"google\",\"refreshToken\":\"6c843da199c2b9907445329304fcc4ec5057a4ee748d8299641764395c08e1fd\",\"state\":\"full-refresh\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:02] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1361,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Account has been deleted\"}} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:02] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:02] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1361,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1310,\"provider\":\"google\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:02] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1310,\"provider\":\"google\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:02] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1310,\"provider\":\"google\",\"refreshToken\":\"e34818922c2830a660813a63f6169a4a9a992ae2cccd7dc8dd7796cfdb470ef1\",\"state\":\"full-refresh\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:02] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1310,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:02] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:02] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1310,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1333,\"provider\":\"google\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:02] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1333,\"provider\":\"google\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:02] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1333,\"provider\":\"google\",\"refreshToken\":\"6c902986546d8e8da1dc539b046cdc1d458f519acc972e5b5f1d6a1a295165e0\",\"state\":\"full-refresh\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:02] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1333,\"provider\":\"google\",\"responseBody\":{\"error\":\"unauthorized_client\",\"error_description\":\"Unauthorized\"}} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:02] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:02] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1333,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:03] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1368,\"provider\":\"google\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:03] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1368,\"provider\":\"google\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:03] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:03] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1368,\"provider\":\"google\",\"refreshToken\":\"d2f128898ff8543bd16b69cfae37896ab85119b0f5ed2b431d739593bb600333\",\"state\":\"full-refresh\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:03] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1368,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:03] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:03] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1368,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:03] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1365,\"provider\":\"google\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:03] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1365,\"provider\":\"google\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:03] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:03] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1365,\"provider\":\"google\",\"refreshToken\":\"7676e4a9afcd082b413248ab5ec6e487021fec6a9bdf315860a59cefad9caad8\",\"state\":\"full-refresh\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:03] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1365,\"provider\":\"google\",\"responseBody\":{\"error\":\"unauthorized_client\",\"error_description\":\"Unauthorized\"}} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:03] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:03] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1365,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:03] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1364,\"provider\":\"google\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:03] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1364,\"provider\":\"google\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:03] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:03] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1364,\"provider\":\"google\",\"refreshToken\":\"dd5882ebce76e645292ce33ae74238abbb77c0a4ecc6a2bfe723cad82e72ba8e\",\"state\":\"full-refresh\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:03] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1364,\"provider\":\"google\",\"responseBody\":{\"error\":\"unauthorized_client\",\"error_description\":\"Unauthorized\"}} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:03] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:03] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1364,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:03] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1370,\"provider\":\"office\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:03] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1370,\"provider\":\"office\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:03] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:03] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1370,\"provider\":\"office\",\"refreshToken\":\"b7ee8035306d0043cea6e00e7c4fe14f745e44074a1194db62a31cdf8b70af3e\",\"state\":\"full-refresh\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:04] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1370,\"provider\":\"office\",\"responseBody\":\"{\\\"error\\\":\\\"invalid_client\\\",\\\"error_description\\\":\\\"AADSTS7000215: Invalid client secret provided. Ensure the secret being sent in the request is the client secret value, not the client secret ID, for a secret added to app 'bbcbb2ef-6200-4fae-82bd-d81f5dd738da'. Trace ID: 903bc53d-8962-4e32-a6a8-c9d186e81e00 Correlation ID: 3757ce12-b359-4871-93dd-2c818da7f0d7 Timestamp: 2026-05-11 12:29:04Z\\\",\\\"error_codes\\\":[7000215],\\\"timestamp\\\":\\\"2026-05-11 12:29:04Z\\\",\\\"trace_id\\\":\\\"903bc53d-8962-4e32-a6a8-c9d186e81e00\\\",\\\"correlation_id\\\":\\\"3757ce12-b359-4871-93dd-2c818da7f0d7\\\",\\\"error_uri\\\":\\\"https://login.microsoftonline.com/error?code=7000215\\\"}\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:04] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:04] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1370,\"provider\":\"office\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:04] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1202,\"provider\":\"office\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:04] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1202,\"provider\":\"office\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:04] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:04] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1202,\"provider\":\"office\",\"refreshToken\":\"b458799ccc29b21a6e2eb5260fdb63e49ccba21bf942a3973fb63799bd7f0afe\",\"state\":\"full-refresh\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:04] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1202,\"provider\":\"office\",\"responseBody\":\"{\\\"error\\\":\\\"invalid_client\\\",\\\"error_description\\\":\\\"AADSTS7000215: Invalid client secret provided. Ensure the secret being sent in the request is the client secret value, not the client secret ID, for a secret added to app 'bbcbb2ef-6200-4fae-82bd-d81f5dd738da'. Trace ID: dd265c32-ebdf-4635-9833-cd8f38eb0000 Correlation ID: 049424c9-8e9d-4ade-a73b-f2334a290e20 Timestamp: 2026-05-11 12:29:04Z\\\",\\\"error_codes\\\":[7000215],\\\"timestamp\\\":\\\"2026-05-11 12:29:04Z\\\",\\\"trace_id\\\":\\\"dd265c32-ebdf-4635-9833-cd8f38eb0000\\\",\\\"correlation_id\\\":\\\"049424c9-8e9d-4ade-a73b-f2334a290e20\\\",\\\"error_uri\\\":\\\"https://login.microsoftonline.com/error?code=7000215\\\"}\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:04] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:04] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1202,\"provider\":\"office\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:04] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:04] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:04] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:04] local.INFO: Calendar sync job dispatched {\"calendar_id\":501} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:05] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1300,\"provider\":\"google\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:05] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1300,\"provider\":\"google\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:05] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:05] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1300,\"provider\":\"google\",\"refreshToken\":\"4b811db0725fd9602a95943519a7da935e2a5065da7d9ebfcb170752e3e1ddb8\",\"state\":\"full-refresh\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:05] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1300,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Account has been deleted\"}} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:05] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:05] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1300,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:05] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1409,\"provider\":\"google\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:05] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1409,\"provider\":\"google\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:05] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:05] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1409,\"provider\":\"google\",\"refreshToken\":\"e2a3f2d06894894eed1ee87d9db1ace77d4d42ee6e1288a8940ad2c10333b0c4\",\"state\":\"full-refresh\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:05] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1409,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:05] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:05] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1409,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:05] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1352,\"provider\":\"google\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:05] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1352,\"provider\":\"google\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:05] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:05] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1352,\"provider\":\"google\",\"refreshToken\":\"dd4b16b00fdc1216da6b717c02338c073636e29162826b2de6db3f064fc029eb\",\"state\":\"full-refresh\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:05] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1352,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Token has been expired or revoked.\"}} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:05] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:05] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1352,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:05] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1296,\"provider\":\"office\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:05] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1296,\"provider\":\"office\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:05] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:05] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1296,\"provider\":\"office\",\"refreshToken\":\"011ae723c9d800c674e0b4be76f49fc046dac7d501b66c59ef0d9549cfa56ae5\",\"state\":\"full-refresh\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:06] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"dc971a8e-a539-45e5-af1d-e466aaa92d0a\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:06] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"dc971a8e-a539-45e5-af1d-e466aaa92d0a\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:06] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"dc971a8e-a539-45e5-af1d-e466aaa92d0a\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:06] local.INFO: [Calendar] Processing sync {\"calendarId\":\"a33076c1-8d97-431a-99f0-85c9524e118b\",\"from\":null,\"to\":null,\"delta\":\"CIiFh8TP44kDEIiFh8TP44kDGAUgkZvkzgIokZvkzgI=\",\"last_sync\":\"2024-12-09 07:12:53\",\"dateMode\":\"daily\"} {\"correlation_id\":\"dc971a8e-a539-45e5-af1d-e466aaa92d0a\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:06] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"integration-app\",\"crm_owner\":1695,\"team_id\":3143} {\"correlation_id\":\"dc971a8e-a539-45e5-af1d-e466aaa92d0a\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:06] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"dc971a8e-a539-45e5-af1d-e466aaa92d0a\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:06] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"dc971a8e-a539-45e5-af1d-e466aaa92d0a\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:06] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"dc971a8e-a539-45e5-af1d-e466aaa92d0a\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:06] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1296,\"provider\":\"office\",\"responseBody\":\"{\\\"error\\\":\\\"invalid_client\\\",\\\"error_description\\\":\\\"AADSTS7000215: Invalid client secret provided. Ensure the secret being sent in the request is the client secret value, not the client secret ID, for a secret added to app 'bbcbb2ef-6200-4fae-82bd-d81f5dd738da'. Trace ID: 8b22ccc7-5b2f-46d1-99e2-ea1bd6a60000 Correlation ID: bbcbfc91-e3cf-44c1-8003-dfb093aec18a Timestamp: 2026-05-11 12:29:06Z\\\",\\\"error_codes\\\":[7000215],\\\"timestamp\\\":\\\"2026-05-11 12:29:06Z\\\",\\\"trace_id\\\":\\\"8b22ccc7-5b2f-46d1-99e2-ea1bd6a60000\\\",\\\"correlation_id\\\":\\\"bbcbfc91-e3cf-44c1-8003-dfb093aec18a\\\",\\\"error_uri\\\":\\\"https://login.microsoftonline.com/error?code=7000215\\\"}\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:06] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:06] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1296,\"provider\":\"office\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:06] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":391,\"provider\":\"office\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:06] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":391,\"provider\":\"office\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:06] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:06] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":391,\"provider\":\"office\",\"refreshToken\":\"00045eebae0f39b34887c6d53f92ae78064f7145e1f4b67754aebd03cfb2d881\",\"state\":\"full-refresh\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:06] local.INFO: [Google Calendar] Failed to watch channel for calendar {\"calendarId\":\"a33076c1-8d97-431a-99f0-85c9524e118b\",\"code\":400,\"reason\":\"{\n \\\"error\\\": {\n \\\"errors\\\": [\n {\n \\\"domain\\\": \\\"global\\\",\n \\\"reason\\\": \\\"push.webhookUrlNotHttps\\\",\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n ],\n \\\"code\\\": 400,\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n}\"} {\"correlation_id\":\"dc971a8e-a539-45e5-af1d-e466aaa92d0a\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:06] local.WARNING: [Calendar] Sync failed {\"calendarId\":\"a33076c1-8d97-431a-99f0-85c9524e118b\",\"code\":400,\"reason\":\"{\n \\\"error\\\": {\n \\\"errors\\\": [\n {\n \\\"domain\\\": \\\"global\\\",\n \\\"reason\\\": \\\"push.webhookUrlNotHttps\\\",\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n ],\n \\\"code\\\": 400,\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n}\"} {\"correlation_id\":\"dc971a8e-a539-45e5-af1d-e466aaa92d0a\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:06] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":391,\"provider\":\"office\",\"responseBody\":\"{\\\"error\\\":\\\"invalid_client\\\",\\\"error_description\\\":\\\"AADSTS7000215: Invalid client secret provided. Ensure the secret being sent in the request is the client secret value, not the client secret ID, for a secret added to app 'bbcbb2ef-6200-4fae-82bd-d81f5dd738da'. Trace ID: be11735b-4062-4ff4-a3b0-418c3d0b1e00 Correlation ID: 50dbd0f6-741b-41df-9d25-be9450440657 Timestamp: 2026-05-11 12:29:06Z\\\",\\\"error_codes\\\":[7000215],\\\"timestamp\\\":\\\"2026-05-11 12:29:06Z\\\",\\\"trace_id\\\":\\\"be11735b-4062-4ff4-a3b0-418c3d0b1e00\\\",\\\"correlation_id\\\":\\\"50dbd0f6-741b-41df-9d25-be9450440657\\\",\\\"error_uri\\\":\\\"https://login.microsoftonline.com/error?code=7000215\\\"}\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:06] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:06] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":391,\"provider\":\"office\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:06] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1271,\"provider\":\"office\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:06] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1271,\"provider\":\"office\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:06] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:06] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1271,\"provider\":\"office\",\"refreshToken\":\"118cde2c06993147b07ccaec4cbcd5026a819dea6c71081166a492933e392afb\",\"state\":\"full-refresh\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:07] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1271,\"provider\":\"office\",\"responseBody\":\"{\\\"error\\\":\\\"invalid_client\\\",\\\"error_description\\\":\\\"AADSTS7000215: Invalid client secret provided. Ensure the secret being sent in the request is the client secret value, not the client secret ID, for a secret added to app 'bbcbb2ef-6200-4fae-82bd-d81f5dd738da'. Trace ID: e7a29036-6042-41f5-a367-3e74a6032200 Correlation ID: 99b9e0d8-a137-48cb-a17d-40b64d506b66 Timestamp: 2026-05-11 12:29:07Z\\\",\\\"error_codes\\\":[7000215],\\\"timestamp\\\":\\\"2026-05-11 12:29:07Z\\\",\\\"trace_id\\\":\\\"e7a29036-6042-41f5-a367-3e74a6032200\\\",\\\"correlation_id\\\":\\\"99b9e0d8-a137-48cb-a17d-40b64d506b66\\\",\\\"error_uri\\\":\\\"https://login.microsoftonline.com/error?code=7000215\\\"}\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:07] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:07] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1271,\"provider\":\"office\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:07] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1351,\"provider\":\"google\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:07] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1351,\"provider\":\"google\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:07] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:07] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1351,\"provider\":\"google\",\"refreshToken\":\"4271d15b9e60a606439caddc68337f783e472c85b03dacff14d1b6dfded9051c\",\"state\":\"full-refresh\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:07] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1351,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:07] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:07] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1351,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:07] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1366,\"provider\":\"google\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:07] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1366,\"provider\":\"google\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:07] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:07] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1366,\"provider\":\"google\",\"refreshToken\":\"ae21385059b2eebfd43f68aecd56eccd702a1aabb6598f1f7ab594ed8af491b4\",\"state\":\"full-refresh\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:07] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1366,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:07] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:07] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1366,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:07] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:07] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:07] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:07] local.INFO: Calendar sync job dispatched {\"calendar_id\":378} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:07] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1421,\"provider\":\"office\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:07] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1421,\"provider\":\"office\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:07] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:07] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1421,\"provider\":\"office\",\"refreshToken\":\"4eb522757b863daff86e73101713e23d79b066539939fb5a7c3bcb94030a15a0\",\"state\":\"connected\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:08] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"d9e5090e-aa6a-4674-8e03-7e85311a0765\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:08] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"d9e5090e-aa6a-4674-8e03-7e85311a0765\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:08] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d9e5090e-aa6a-4674-8e03-7e85311a0765\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:08] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:08] local.INFO: [SocialAccountObserver] Access token was modified, encrypting {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:08] local.INFO: [Calendar] Processing sync {\"calendarId\":\"2676cb6d-f86c-427e-bf78-591e388e3c1e\",\"from\":null,\"to\":null,\"delta\":\"CJ_x49O3jpIDEJ_x49O3jpIDGAUgw67KlwMow67KlwM=\",\"last_sync\":\"2026-01-19 07:48:40\",\"dateMode\":\"daily\"} {\"correlation_id\":\"d9e5090e-aa6a-4674-8e03-7e85311a0765\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:08] local.WARNING: [Pipedrive] Account not connected for user {\"userId\":\"e6538737-e7b4-455f-a37a-3e79b665a220\",\"account\":{\"Jiminny\\\\Models\\\\SocialAccount\":{\"id\":1116,\"sociable_id\":241,\"provider_user_id\":\"19555731\",\"expires\":1775683749,\"refresh_token_expires\":null,\"provider\":\"pipedrive\",\"state\":\"full-refresh\",\"auth_scope\":\"base,deals:full,activities:full,contacts:full,search:read\",\"retry_after\":null,\"created_at\":\"2023-09-08 09:44:29\",\"updated_at\":\"2026-04-08 22:58:34\"}}} {\"correlation_id\":\"d9e5090e-aa6a-4674-8e03-7e85311a0765\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:08] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"pipedrive\",\"crm_owner\":241,\"team_id\":19} {\"correlation_id\":\"d9e5090e-aa6a-4674-8e03-7e85311a0765\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:08] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"pipedrive\",\"team_id\":19} {\"correlation_id\":\"d9e5090e-aa6a-4674-8e03-7e85311a0765\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:08] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"pipedrive\",\"team_id\":19} {\"correlation_id\":\"d9e5090e-aa6a-4674-8e03-7e85311a0765\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:08] local.WARNING: [Calendar] CRM disconnected for user so events will not be matched {\"provider\":\"pipedrive\",\"user_id\":241,\"message\":\"Your Pipedrive account has become disconnected. Please login to Jiminny to reconnect.\"} {\"correlation_id\":\"d9e5090e-aa6a-4674-8e03-7e85311a0765\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:08] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"d9e5090e-aa6a-4674-8e03-7e85311a0765\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:08] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"d9e5090e-aa6a-4674-8e03-7e85311a0765\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:08] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d9e5090e-aa6a-4674-8e03-7e85311a0765\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:09] local.INFO: [Google Calendar] Failed to watch channel for calendar {\"calendarId\":\"2676cb6d-f86c-427e-bf78-591e388e3c1e\",\"code\":400,\"reason\":\"{\n \\\"error\\\": {\n \\\"errors\\\": [\n {\n \\\"domain\\\": \\\"global\\\",\n \\\"reason\\\": \\\"push.webhookUrlNotHttps\\\",\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n ],\n \\\"code\\\": 400,\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n}\"} {\"correlation_id\":\"d9e5090e-aa6a-4674-8e03-7e85311a0765\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:09] local.WARNING: [Calendar] Sync failed {\"calendarId\":\"2676cb6d-f86c-427e-bf78-591e388e3c1e\",\"code\":400,\"reason\":\"{\n \\\"error\\\": {\n \\\"errors\\\": [\n {\n \\\"domain\\\": \\\"global\\\",\n \\\"reason\\\": \\\"push.webhookUrlNotHttps\\\",\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n ],\n \\\"code\\\": 400,\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n}\"} {\"correlation_id\":\"d9e5090e-aa6a-4674-8e03-7e85311a0765\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:09] local.INFO: [SocialAccountObserver] Refresh token was modified, encrypting {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:09] local.INFO: [SocialAccountService] Token refreshed {\"socialAccountId\":1421,\"provider\":\"office\",\"state\":\"connected\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:09] local.INFO: Calendar sync job dispatched {\"calendar_id\":504} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:09] local.NOTICE: Calendar sync end {\"retrieved_calendars\":31,\"processed_calendars\":3} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:09] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"calendar:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":62.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:11] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1421,\"provider\":\"office\"} {\"correlation_id\":\"ad7fb635-c71e-4df1-8dfe-476a6b500be5\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:11] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1421,\"provider\":\"office\"} {\"correlation_id\":\"ad7fb635-c71e-4df1-8dfe-476a6b500be5\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:11] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ad7fb635-c71e-4df1-8dfe-476a6b500be5\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:11] local.INFO: [Calendar] Processing sync {\"calendarId\":\"9e8b1a2c-1a8f-42bd-b161-810fc0baf540\",\"from\":null,\"to\":null,\"delta\":\"R0usmcdvmMuZCBYV0hguCLlvcOB4kXlhlC7KgH1SnZwTrZ3faZv1fXPQqJhxe_L9AxWWlb-wASsjGiiWlhsBUg9MFb3ZdlAYerVV_ZirRPbsKWCxEXhybD90arJmok_M4ecGFUQ9_BIGu-c6RAnJy2TRKZ7gPTsJi_8TGceGAuqimlhm4G4mjDLvYVVwImjjU7M3xJvUzL47dLOGNTJCww.k1TST0VEYCgbFOkwa3ysYMi100FtVfkzfqlXLnV6gPg\",\"last_sync\":\"2026-05-11 06:13:36\",\"dateMode\":\"daily\"} {\"correlation_id\":\"ad7fb635-c71e-4df1-8dfe-476a6b500be5\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:11] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ad7fb635-c71e-4df1-8dfe-476a6b500be5\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:11] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ad7fb635-c71e-4df1-8dfe-476a6b500be5\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:11] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ad7fb635-c71e-4df1-8dfe-476a6b500be5\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:11] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":89,\"team_id\":2} {\"correlation_id\":\"ad7fb635-c71e-4df1-8dfe-476a6b500be5\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:11] local.INFO: [MS Office Calendar] Skipping delta sync for daily mode {\"calendarId\":\"9e8b1a2c-1a8f-42bd-b161-810fc0baf540\"} {\"correlation_id\":\"ad7fb635-c71e-4df1-8dfe-476a6b500be5\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:30:19] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"1251e9db-ef8d-4c91-9336-1ee0f0730cf7\",\"trace_id\":\"dfd923cd-7195-4a1e-9ce2-768b6ef8e343\"}\n[2026-05-11 12:30:20] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"1251e9db-ef8d-4c91-9336-1ee0f0730cf7\",\"trace_id\":\"dfd923cd-7195-4a1e-9ce2-768b6ef8e343\"}\n[2026-05-11 12:30:20] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"1251e9db-ef8d-4c91-9336-1ee0f0730cf7\",\"trace_id\":\"dfd923cd-7195-4a1e-9ce2-768b6ef8e343\"}\n[2026-05-11 12:30:26] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"04f8da0d-a30d-46db-8162-9f58f0ddaeb4\",\"trace_id\":\"1b8eeb5b-44b8-47d4-870f-a5b1f5e98d70\"}\n[2026-05-11 12:30:26] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"04f8da0d-a30d-46db-8162-9f58f0ddaeb4\",\"trace_id\":\"1b8eeb5b-44b8-47d4-870f-a5b1f5e98d70\"}\n[2026-05-11 12:30:38] local.NOTICE: Monitoring start {\"correlation_id\":\"c9c8a591-1b8b-4caa-a5a4-aa28e637779f\",\"trace_id\":\"a0bfbb6e-9704-4884-9cad-92fd14d25c77\"}\n[2026-05-11 12:30:38] local.NOTICE: Monitoring end {\"correlation_id\":\"c9c8a591-1b8b-4caa-a5a4-aa28e637779f\",\"trace_id\":\"a0bfbb6e-9704-4884-9cad-92fd14d25c77\"}\n[2026-05-11 12:30:53] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"63384407-cfef-4aed-b985-2fca376de38a\",\"trace_id\":\"a6b7afed-bcf1-475d-9ff0-11d8abcd8178\"}\n[2026-05-11 12:30:53] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"63384407-cfef-4aed-b985-2fca376de38a\",\"trace_id\":\"a6b7afed-bcf1-475d-9ff0-11d8abcd8178\"}\n[2026-05-11 12:30:59] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"19bf9c67-7407-44ff-a279-99b5a8d152a9\",\"trace_id\":\"0b9230a1-2a62-4197-a520-6605c2e4c039\"}\n[2026-05-11 12:30:59] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"19bf9c67-7407-44ff-a279-99b5a8d152a9\",\"trace_id\":\"0b9230a1-2a62-4197-a520-6605c2e4c039\"}\n[2026-05-11 12:30:59] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"19bf9c67-7407-44ff-a279-99b5a8d152a9\",\"trace_id\":\"0b9230a1-2a62-4197-a520-6605c2e4c039\"}\n[2026-05-11 12:30:59] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"19bf9c67-7407-44ff-a279-99b5a8d152a9\",\"trace_id\":\"0b9230a1-2a62-4197-a520-6605c2e4c039\"}\n[2026-05-11 12:31:08] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"43f397a3-6cd5-4184-84a2-a47f15fa1153\",\"trace_id\":\"3f83adbd-589b-4b11-87e1-30bf88862dca\"}\n[2026-05-11 12:31:08] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 12:29:00, 2026-05-11 12:31:00] {\"correlation_id\":\"43f397a3-6cd5-4184-84a2-a47f15fa1153\",\"trace_id\":\"3f83adbd-589b-4b11-87e1-30bf88862dca\"}\n[2026-05-11 12:31:08] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 12:29:00, 2026-05-11 12:31:00] {\"correlation_id\":\"43f397a3-6cd5-4184-84a2-a47f15fa1153\",\"trace_id\":\"3f83adbd-589b-4b11-87e1-30bf88862dca\"}\n[2026-05-11 12:31:08] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"43f397a3-6cd5-4184-84a2-a47f15fa1153\",\"trace_id\":\"3f83adbd-589b-4b11-87e1-30bf88862dca\"}\n[2026-05-11 12:31:14] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"56ac25c8-cb8e-4c00-9433-7c645420bbb9\",\"trace_id\":\"414b3062-1b63-4200-8042-00fb7cbbc8f9\"}\n[2026-05-11 12:31:14] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"56ac25c8-cb8e-4c00-9433-7c645420bbb9\",\"trace_id\":\"414b3062-1b63-4200-8042-00fb7cbbc8f9\"}\n[2026-05-11 12:31:22] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"502ea9c5-01fb-4de3-be78-983144227c87\",\"trace_id\":\"4f6f307f-0f29-443b-89b2-67418db5a8ea\"}\n[2026-05-11 12:31:23] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"502ea9c5-01fb-4de3-be78-983144227c87\",\"trace_id\":\"4f6f307f-0f29-443b-89b2-67418db5a8ea\"}\n[2026-05-11 12:31:28] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"58fb330e-005a-4b45-892e-c0728fad2297\",\"trace_id\":\"63584b05-93af-4729-8638-b3198b7373b3\"}\n[2026-05-11 12:31:28] local.INFO: Running pre-meeting notification command {\"correlation_id\":\"58fb330e-005a-4b45-892e-c0728fad2297\",\"trace_id\":\"63584b05-93af-4729-8638-b3198b7373b3\"}\n[2026-05-11 12:31:28] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"58fb330e-005a-4b45-892e-c0728fad2297\",\"trace_id\":\"63584b05-93af-4729-8638-b3198b7373b3\"}\n[2026-05-11 12:31:39] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"05823705-03d5-4b3b-aae6-2b8f5ea3dfb2\",\"trace_id\":\"bd3c1a1f-41f1-42ce-9070-1d58ec479bd6\"}\n[2026-05-11 12:31:39] local.INFO: Running conference:monitor:start command for activities in (2026-05-11 12:21:00, 2026-05-11 12:26:00] {\"correlation_id\":\"05823705-03d5-4b3b-aae6-2b8f5ea3dfb2\",\"trace_id\":\"bd3c1a1f-41f1-42ce-9070-1d58ec479bd6\"}\n[2026-05-11 12:31:39] local.INFO: [conference:monitor:start] No activities found in (2026-05-11 12:21:00, 2026-05-11 12:26:00] {\"correlation_id\":\"05823705-03d5-4b3b-aae6-2b8f5ea3dfb2\",\"trace_id\":\"bd3c1a1f-41f1-42ce-9070-1d58ec479bd6\"}\n[2026-05-11 12:31:39] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"05823705-03d5-4b3b-aae6-2b8f5ea3dfb2\",\"trace_id\":\"bd3c1a1f-41f1-42ce-9070-1d58ec479bd6\"}\n[2026-05-11 12:31:44] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"df87f644-6ccb-475b-bb8e-da1b5b7877f3\",\"trace_id\":\"a30634ca-9064-4eb0-a2d5-301015c08782\"}\n[2026-05-11 12:31:44] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesEnded {\"from\":\"12:26\",\"to\":\"12:31\"} {\"correlation_id\":\"df87f644-6ccb-475b-bb8e-da1b5b7877f3\",\"trace_id\":\"a30634ca-9064-4eb0-a2d5-301015c08782\"}\n[2026-05-11 12:31:45] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesWithUnfinishedSession {\"from\":\"02:21\",\"to\":\"02:26\"} {\"correlation_id\":\"df87f644-6ccb-475b-bb8e-da1b5b7877f3\",\"trace_id\":\"a30634ca-9064-4eb0-a2d5-301015c08782\"}\n[2026-05-11 12:31:45] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"df87f644-6ccb-475b-bb8e-da1b5b7877f3\",\"trace_id\":\"a30634ca-9064-4eb0-a2d5-301015c08782\"}\n[2026-05-11 12:31:53] local.NOTICE: Repairing HubSpot tokens start {\"correlation_id\":\"9402c944-3efb-4463-a243-607690354732\",\"trace_id\":\"7f3fc8ed-0d10-42cd-9923-db604641cf0e\"}\n[2026-05-11 12:31:53] local.INFO: Trying to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\"} {\"correlation_id\":\"9402c944-3efb-4463-a243-607690354732\",\"trace_id\":\"7f3fc8ed-0d10-42cd-9923-db604641cf0e\"}\n[2026-05-11 12:31:53] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9402c944-3efb-4463-a243-607690354732\",\"trace_id\":\"7f3fc8ed-0d10-42cd-9923-db604641cf0e\"}\n[2026-05-11 12:31:53] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":59,\"provider\":\"hubspot\",\"refreshToken\":\"97b78f6e2cc49965c00c2492b602b02708b1392551e6b3f113fbaa48992af90b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"9402c944-3efb-4463-a243-607690354732\",\"trace_id\":\"7f3fc8ed-0d10-42cd-9923-db604641cf0e\"}\n[2026-05-11 12:31:54] local.ERROR: Failed to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"9402c944-3efb-4463-a243-607690354732\",\"trace_id\":\"7f3fc8ed-0d10-42cd-9923-db604641cf0e\"}\n[2026-05-11 12:31:54] local.INFO: Trying to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\"} {\"correlation_id\":\"9402c944-3efb-4463-a243-607690354732\",\"trace_id\":\"7f3fc8ed-0d10-42cd-9923-db604641cf0e\"}\n[2026-05-11 12:31:54] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9402c944-3efb-4463-a243-607690354732\",\"trace_id\":\"7f3fc8ed-0d10-42cd-9923-db604641cf0e\"}\n[2026-05-11 12:31:54] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":306,\"provider\":\"hubspot\",\"refreshToken\":\"6fa6aa8cc641d131231acc3470f5c03cb3b07b2e580fb18f8acb3b1dbb72549b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"9402c944-3efb-4463-a243-607690354732\",\"trace_id\":\"7f3fc8ed-0d10-42cd-9923-db604641cf0e\"}\n[2026-05-11 12:31:54] local.ERROR: Failed to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"9402c944-3efb-4463-a243-607690354732\",\"trace_id\":\"7f3fc8ed-0d10-42cd-9923-db604641cf0e\"}\n[2026-05-11 12:31:54] local.INFO: Trying to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\"} {\"correlation_id\":\"9402c944-3efb-4463-a243-607690354732\",\"trace_id\":\"7f3fc8ed-0d10-42cd-9923-db604641cf0e\"}\n[2026-05-11 12:31:54] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9402c944-3efb-4463-a243-607690354732\",\"trace_id\":\"7f3fc8ed-0d10-42cd-9923-db604641cf0e\"}\n[2026-05-11 12:31:54] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1372,\"provider\":\"hubspot\",\"refreshToken\":\"9aa73948c761da29dce46c177cf9aee1fde483a44169ca38723f9f0597d7a8c4\",\"state\":\"full-refresh\"} {\"correlation_id\":\"9402c944-3efb-4463-a243-607690354732\",\"trace_id\":\"7f3fc8ed-0d10-42cd-9923-db604641cf0e\"}\n[2026-05-11 12:31:55] local.ERROR: Failed to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"9402c944-3efb-4463-a243-607690354732\",\"trace_id\":\"7f3fc8ed-0d10-42cd-9923-db604641cf0e\"}\n[2026-05-11 12:31:55] local.NOTICE: Repairing HubSpot tokens end {\"total\":3,\"fixed\":0,\"failed\":3} {\"correlation_id\":\"9402c944-3efb-4463-a243-607690354732\",\"trace_id\":\"7f3fc8ed-0d10-42cd-9923-db604641cf0e\"}\n[2026-05-11 12:32:06] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"jiminny:transcription:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"13496d18-4307-4fb9-b3f6-7536bcc4ddc7\",\"trace_id\":\"ac9a2b04-90e9-4227-a850-af51bf7e0154\"}\n[2026-05-11 12:32:06] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"bd4fdafa-4e8e-41c7-9e24-ba72320261ee\",\"trace_id\":\"b8cbb62d-4acd-4ca3-8ee4-f957f9a42e91\"}\n[2026-05-11 12:32:06] local.INFO: [HubSpot Journal Command] Starting polling service {\"correlation_id\":\"891c0cd1-fda8-437a-8133-6f4f122e620c\",\"trace_id\":\"e4667153-9e43-4e19-8d29-6b6ce1b073cc\"}\n[2026-05-11 12:32:06] local.INFO: [HubSpot Journal Polling] Service starting {\"memory_limit\":\"256M\",\"max_execution_time\":\"0\",\"initial_memory_mb\":60.0} {\"correlation_id\":\"891c0cd1-fda8-437a-8133-6f4f122e620c\",\"trace_id\":\"e4667153-9e43-4e19-8d29-6b6ce1b073cc\"}\n[2026-05-11 12:32:06] local.INFO: [HubSpot Journal Polling] Acquired polling lock {\"expires_at\":\"2026-05-11T12:34:06.793783Z\"} {\"correlation_id\":\"891c0cd1-fda8-437a-8133-6f4f122e620c\",\"trace_id\":\"e4667153-9e43-4e19-8d29-6b6ce1b073cc\"}\n[2026-05-11 12:32:06] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"jiminny:transcription:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"13496d18-4307-4fb9-b3f6-7536bcc4ddc7\",\"trace_id\":\"ac9a2b04-90e9-4227-a850-af51bf7e0154\"}\n[2026-05-11 12:32:07] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"bd4fdafa-4e8e-41c7-9e24-ba72320261ee\",\"trace_id\":\"b8cbb62d-4acd-4ca3-8ee4-f957f9a42e91\"}\n[2026-05-11 12:32:07] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"891c0cd1-fda8-437a-8133-6f4f122e620c\",\"trace_id\":\"e4667153-9e43-4e19-8d29-6b6ce1b073cc\"}\n[2026-05-11 12:32:12] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"891c0cd1-fda8-437a-8133-6f4f122e620c\",\"trace_id\":\"e4667153-9e43-4e19-8d29-6b6ce1b073cc\"}\n[2026-05-11 12:32:13] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:reset-governor\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"74dd8b56-2a56-486c-abf9-4cd6aa7b2302\",\"trace_id\":\"32343183-41f4-4f9e-8d95-8fe7933ceffe\"}\n[2026-05-11 12:32:13] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:reset-governor\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"74dd8b56-2a56-486c-abf9-4cd6aa7b2302\",\"trace_id\":\"32343183-41f4-4f9e-8d95-8fe7933ceffe\"}\n[2026-05-11 12:32:17] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"891c0cd1-fda8-437a-8133-6f4f122e620c\",\"trace_id\":\"e4667153-9e43-4e19-8d29-6b6ce1b073cc\"}\n[2026-05-11 12:32:28] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"ad393152-4469-4d54-8bc5-d69c13cbe344\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:28] local.INFO: Dispatching activity sync job {\"import_id\":812732,\"provider\":\"twilio-flex\",\"team\":\"jiminny\"} {\"correlation_id\":\"ad393152-4469-4d54-8bc5-d69c13cbe344\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:28] local.INFO: Dispatching activity sync job {\"import_id\":812733,\"provider\":\"xant\",\"team\":\"jiminny\"} {\"correlation_id\":\"ad393152-4469-4d54-8bc5-d69c13cbe344\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:28] local.INFO: Dispatching activity sync job {\"import_id\":812734,\"provider\":\"apollo\",\"team\":\"jiminny\"} {\"correlation_id\":\"ad393152-4469-4d54-8bc5-d69c13cbe344\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:28] local.INFO: Dispatching activity sync job {\"import_id\":812735,\"provider\":\"groove\",\"team\":\"jiminny\"} {\"correlation_id\":\"ad393152-4469-4d54-8bc5-d69c13cbe344\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:28] local.INFO: Dispatching activity sync job {\"import_id\":812736,\"provider\":\"twilio-video\",\"team\":\"jiminny\"} {\"correlation_id\":\"ad393152-4469-4d54-8bc5-d69c13cbe344\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:28] local.INFO: Dispatching activity sync job {\"import_id\":812737,\"provider\":\"hubspot\",\"team\":\"hubspot\"} {\"correlation_id\":\"ad393152-4469-4d54-8bc5-d69c13cbe344\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:28] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"ad393152-4469-4d54-8bc5-d69c13cbe344\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:30] local.WARNING: [Salesforce] Account not connected for user {\"userId\":\"cdf8b554-d951-4758-bc2b-c1b85d1cd0b9\",\"account\":null} {\"correlation_id\":\"d3eddf1c-e7c3-4a37-8c9d-741e9d9b611c\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:30] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"salesforce\",\"crm_owner\":3,\"team_id\":1} {\"correlation_id\":\"d3eddf1c-e7c3-4a37-8c9d-741e9d9b611c\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:31] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"salesforce\",\"team_id\":1} {\"correlation_id\":\"d3eddf1c-e7c3-4a37-8c9d-741e9d9b611c\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:31] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"salesforce\",\"team_id\":1} {\"correlation_id\":\"d3eddf1c-e7c3-4a37-8c9d-741e9d9b611c\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:31] local.ALERT: [SyncActivity] Failed {\"import_id\":812732,\"provider\":\"twilio-flex\",\"provider_id\":317,\"team\":\"jiminny\",\"team_id\":1,\"reason\":\"Social account for Salesforce cannot be found. Please login to Jiminny to connect.\",\"file\":\"/home/jiminny/app/Services/Crm/BaseService.php\",\"line\":646} {\"correlation_id\":\"d3eddf1c-e7c3-4a37-8c9d-741e9d9b611c\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"4bbe835a-309f-49cd-9dd9-84b795bd13a0\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"4bbe835a-309f-49cd-9dd9-84b795bd13a0\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4bbe835a-309f-49cd-9dd9-84b795bd13a0\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:32] local.ALERT: [SyncActivity] Failed {\"import_id\":812733,\"provider\":\"xant\",\"provider_id\":161,\"team\":\"jiminny\",\"team_id\":1,\"reason\":\"Activity Provider account not connected.\",\"file\":\"/home/jiminny/app/Services/Activity/ActivityProviderService.php\",\"line\":174} {\"correlation_id\":\"4bbe835a-309f-49cd-9dd9-84b795bd13a0\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"97791348-5ca9-4fee-8a0e-42309c618500\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"97791348-5ca9-4fee-8a0e-42309c618500\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"97791348-5ca9-4fee-8a0e-42309c618500\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:33] local.ALERT: [SyncActivity] Failed {\"import_id\":812734,\"provider\":\"apollo\",\"provider_id\":441,\"team\":\"jiminny\",\"team_id\":1,\"reason\":\"Activity Provider account not connected.\",\"file\":\"/home/jiminny/app/Services/Activity/ActivityProviderService.php\",\"line\":174} {\"correlation_id\":\"97791348-5ca9-4fee-8a0e-42309c618500\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:33] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"891c0cd1-fda8-437a-8133-6f4f122e620c\",\"trace_id\":\"e4667153-9e43-4e19-8d29-6b6ce1b073cc\"}\n[2026-05-11 12:32:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"94718586-62f4-4d12-a771-73fcfadc2ac9\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"94718586-62f4-4d12-a771-73fcfadc2ac9\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"94718586-62f4-4d12-a771-73fcfadc2ac9\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:34] local.ALERT: [SyncActivity] Failed {\"import_id\":812735,\"provider\":\"groove\",\"provider_id\":228,\"team\":\"jiminny\",\"team_id\":1,\"reason\":\"Activity Provider account not connected.\",\"file\":\"/home/jiminny/app/Services/Activity/ActivityProviderService.php\",\"line\":174} {\"correlation_id\":\"94718586-62f4-4d12-a771-73fcfadc2ac9\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:34] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"3b41bcb3-9cbc-4e88-a62a-7d71c97cae6e\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:34] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"3b41bcb3-9cbc-4e88-a62a-7d71c97cae6e\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:34] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"3b41bcb3-9cbc-4e88-a62a-7d71c97cae6e\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:35] local.ALERT: [SyncActivity] Failed {\"import_id\":812736,\"provider\":\"twilio-video\",\"provider_id\":243,\"team\":\"jiminny\",\"team_id\":1,\"reason\":\"Activity Provider account not connected.\",\"file\":\"/home/jiminny/app/Services/Activity/ActivityProviderService.php\",\"line\":174} {\"correlation_id\":\"3b41bcb3-9cbc-4e88-a62a-7d71c97cae6e\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:35] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9a48dd15-c322-455a-a04e-2f42487973bf\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:35] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9a48dd15-c322-455a-a04e-2f42487973bf\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:35] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9a48dd15-c322-455a-a04e-2f42487973bf\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:35] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":89,\"team_id\":2} {\"correlation_id\":\"9a48dd15-c322-455a-a04e-2f42487973bf\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:35] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":408,\"provider\":\"hubspot\"} {\"correlation_id\":\"9a48dd15-c322-455a-a04e-2f42487973bf\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:35] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":408,\"provider\":\"hubspot\"} {\"correlation_id\":\"9a48dd15-c322-455a-a04e-2f42487973bf\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:35] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9a48dd15-c322-455a-a04e-2f42487973bf\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:35] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":408,\"provider\":\"hubspot\",\"refreshToken\":\"de4e47eb985578f4218833e763e31059e88b562e87e10749b3389be2328f0aa7\",\"state\":\"connected\"} {\"correlation_id\":\"9a48dd15-c322-455a-a04e-2f42487973bf\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:36] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"9a48dd15-c322-455a-a04e-2f42487973bf\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:36] local.INFO: [SocialAccountObserver] Access token was modified, encrypting {\"correlation_id\":\"9a48dd15-c322-455a-a04e-2f42487973bf\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:37] local.INFO: [SocialAccountService] Token refreshed {\"socialAccountId\":408,\"provider\":\"hubspot\",\"state\":\"connected\"} {\"correlation_id\":\"9a48dd15-c322-455a-a04e-2f42487973bf\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:37] local.INFO: [SyncActivity] Start {\"import_id\":812737,\"provider\":\"hubspot\",\"provider_id\":31,\"team\":\"hubspot\",\"team_id\":2} {\"correlation_id\":\"9a48dd15-c322-455a-a04e-2f42487973bf\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:37] local.INFO: [HubSpot] Search calls for period {\"from\":\"2026-05-11 12:14:00\",\"to\":\"2026-05-11 12:30:00\"} {\"correlation_id\":\"9a48dd15-c322-455a-a04e-2f42487973bf\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:37] local.INFO: [SyncActivity] End {\"import_id\":812737,\"provider\":\"hubspot\",\"provider_id\":31,\"team\":\"hubspot\",\"team_id\":2} {\"correlation_id\":\"9a48dd15-c322-455a-a04e-2f42487973bf\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:37] local.INFO: [SyncActivity] Memory usage {\"import_id\":812737,\"provider\":\"hubspot\",\"provider_id\":31,\"team\":\"hubspot\",\"team_id\":2,\"memory_usage\":31500864,\"memory_real_usage\":67108864,\"pid\":74086} {\"correlation_id\":\"9a48dd15-c322-455a-a04e-2f42487973bf\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:39] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:fail-stalled\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"18a5b33d-7fbd-4273-ab6f-53e34a64dfe1\",\"trace_id\":\"ccb4243b-c27c-4508-918b-1edd5b78413f\"}\n[2026-05-11 12:32:39] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:fail-stalled\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"18a5b33d-7fbd-4273-ab6f-53e34a64dfe1\",\"trace_id\":\"ccb4243b-c27c-4508-918b-1edd5b78413f\"}\n[2026-05-11 12:32:44] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"0ca7fd71-e785-4f1d-b854-318633e08087\",\"trace_id\":\"463332b2-ff0a-49ac-a319-0e79465965ec\"}\n[2026-05-11 12:32:44] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"0ca7fd71-e785-4f1d-b854-318633e08087\",\"trace_id\":\"463332b2-ff0a-49ac-a319-0e79465965ec\"}\n[2026-05-11 12:33:00] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"nudges:send\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"07663edc-3b6c-4685-b4c5-e7e258f0d54e\",\"trace_id\":\"52374c38-fd00-421f-81e1-117e6dc0aa84\"}\n[2026-05-11 12:33:00] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"nudges:send\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"07663edc-3b6c-4685-b4c5-e7e258f0d54e\",\"trace_id\":\"52374c38-fd00-421f-81e1-117e6dc0aa84\"}\n[2026-05-11 12:33:03] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"891c0cd1-fda8-437a-8133-6f4f122e620c\",\"trace_id\":\"e4667153-9e43-4e19-8d29-6b6ce1b073cc\"}\n[2026-05-11 12:33:03] local.WARNING: [HubSpot Journal Polling] Maximum empty results reached, stopping {\"empty_results\":5,\"max_empty_results\":5} {\"correlation_id\":\"891c0cd1-fda8-437a-8133-6f4f122e620c\",\"trace_id\":\"e4667153-9e43-4e19-8d29-6b6ce1b073cc\"}\n[2026-05-11 12:33:03] local.WARNING: [HubSpot Journal Polling] Maximum empty results reached, stopping {\"empty_results\":5,\"max_empty_results\":5} {\"correlation_id\":\"891c0cd1-fda8-437a-8133-6f4f122e620c\",\"trace_id\":\"e4667153-9e43-4e19-8d29-6b6ce1b073cc\"}\n[2026-05-11 12:33:03] local.INFO: [HubSpot Journal Polling] Service ending {\"runtime_seconds\":57,\"total_cycles\":5,\"files_downloaded\":0,\"empty_files\":0,\"other_portal_skipped\":0,\"total_events\":0,\"events_per_file\":0,\"avg_api_ms\":245.2,\"avg_download_ms\":0.0,\"avg_transform_ms\":0.0,\"avg_process_ms\":0.0,\"peak_memory_mb\":99.73} {\"correlation_id\":\"891c0cd1-fda8-437a-8133-6f4f122e620c\",\"trace_id\":\"e4667153-9e43-4e19-8d29-6b6ce1b073cc\"}\n[2026-05-11 12:33:03] local.INFO: [HubSpot Journal Polling] Saved offset to database on cleanup {\"offset\":\"019e15a9-9ea0-7da7-87bc-82592e3ccf0d\"} {\"correlation_id\":\"891c0cd1-fda8-437a-8133-6f4f122e620c\",\"trace_id\":\"e4667153-9e43-4e19-8d29-6b6ce1b073cc\"}\n[2026-05-11 12:33:03] local.INFO: [HubSpot Journal Polling] Released polling lock {\"correlation_id\":\"891c0cd1-fda8-437a-8133-6f4f122e620c\",\"trace_id\":\"e4667153-9e43-4e19-8d29-6b6ce1b073cc\"}\n[2026-05-11 12:33:11] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"jiminny:playlists:normalize-sort\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"fd26f20d-c9ec-485b-9120-18c2ccbb0033\",\"trace_id\":\"4d131815-76b8-4380-a293-5f2c25119d6c\"}\n[2026-05-11 12:33:11] local.INFO: [Jiminny\\Component\\Playlist\\Command\\NormalizeSortCommand::handle] starting. {\"playlists\":[]} {\"correlation_id\":\"fd26f20d-c9ec-485b-9120-18c2ccbb0033\",\"trace_id\":\"4d131815-76b8-4380-a293-5f2c25119d6c\"}\n[2026-05-11 12:33:11] local.INFO: [Jiminny\\Component\\Playlist\\Command\\NormalizeSortCommand::handle] finished. {\"normalizedPlaylists\":[],\"deletedPlaylists\":[]} {\"correlation_id\":\"fd26f20d-c9ec-485b-9120-18c2ccbb0033\",\"trace_id\":\"4d131815-76b8-4380-a293-5f2c25119d6c\"}\n[2026-05-11 12:33:11] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"jiminny:playlists:normalize-sort\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"fd26f20d-c9ec-485b-9120-18c2ccbb0033\",\"trace_id\":\"4d131815-76b8-4380-a293-5f2c25119d6c\"}\n[2026-05-11 12:34:24] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"1a37ca40-c796-4ba9-986a-536f03879e84\",\"trace_id\":\"6e72aaa4-d5f2-475b-8e3c-e9839eac1698\"}\n[2026-05-11 12:34:24] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"1a37ca40-c796-4ba9-986a-536f03879e84\",\"trace_id\":\"6e72aaa4-d5f2-475b-8e3c-e9839eac1698\"}\n[2026-05-11 12:34:24] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"1a37ca40-c796-4ba9-986a-536f03879e84\",\"trace_id\":\"6e72aaa4-d5f2-475b-8e3c-e9839eac1698\"}\n[2026-05-11 12:34:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"9902b198-86aa-4f70-ae9d-a01269d3b03d\",\"trace_id\":\"f1ea7f94-b138-4b3c-83d0-bbb065c03a87\"}\n[2026-05-11 12:34:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"9902b198-86aa-4f70-ae9d-a01269d3b03d\",\"trace_id\":\"f1ea7f94-b138-4b3c-83d0-bbb065c03a87\"}\n[2026-05-11 12:34:47] local.NOTICE: Monitoring start {\"correlation_id\":\"33db6469-f45f-4a48-a561-c73f14262299\",\"trace_id\":\"4eea9fc9-0336-4f83-9828-4892e3f5e922\"}\n[2026-05-11 12:34:47] local.NOTICE: Monitoring end {\"correlation_id\":\"33db6469-f45f-4a48-a561-c73f14262299\",\"trace_id\":\"4eea9fc9-0336-4f83-9828-4892e3f5e922\"}\n[2026-05-11 12:34:52] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"d93099e1-8d05-4426-b427-9cc28bdc72b7\",\"trace_id\":\"ce9859f2-4170-4369-86af-f329ca48394e\"}\n[2026-05-11 12:34:52] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"d93099e1-8d05-4426-b427-9cc28bdc72b7\",\"trace_id\":\"ce9859f2-4170-4369-86af-f329ca48394e\"}\n[2026-05-11 12:34:58] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"3a9ab0d0-6d90-47a4-9b55-095dfdd42165\",\"trace_id\":\"849b2c7f-1134-44d0-934e-80af02cb8b95\"}\n[2026-05-11 12:34:58] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"3a9ab0d0-6d90-47a4-9b55-095dfdd42165\",\"trace_id\":\"849b2c7f-1134-44d0-934e-80af02cb8b95\"}\n[2026-05-11 12:34:58] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"3a9ab0d0-6d90-47a4-9b55-095dfdd42165\",\"trace_id\":\"849b2c7f-1134-44d0-934e-80af02cb8b95\"}\n[2026-05-11 12:34:58] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"3a9ab0d0-6d90-47a4-9b55-095dfdd42165\",\"trace_id\":\"849b2c7f-1134-44d0-934e-80af02cb8b95\"}\n[2026-05-11 12:35:07] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a7276e28-a926-4f77-9313-aea75601a00a\",\"trace_id\":\"4e486077-60eb-4ef8-999d-c8b5112a3f26\"}\n[2026-05-11 12:35:07] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 12:33:00, 2026-05-11 12:35:00] {\"correlation_id\":\"a7276e28-a926-4f77-9313-aea75601a00a\",\"trace_id\":\"4e486077-60eb-4ef8-999d-c8b5112a3f26\"}\n[2026-05-11 12:35:07] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 12:33:00, 2026-05-11 12:35:00] {\"correlation_id\":\"a7276e28-a926-4f77-9313-aea75601a00a\",\"trace_id\":\"4e486077-60eb-4ef8-999d-c8b5112a3f26\"}\n[2026-05-11 12:35:07] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a7276e28-a926-4f77-9313-aea75601a00a\",\"trace_id\":\"4e486077-60eb-4ef8-999d-c8b5112a3f26\"}\n[2026-05-11 12:37:05] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"ccbed33f-6c65-499b-877f-1c3ffcaf9125\",\"trace_id\":\"0ed97705-9243-4f61-ac6c-78244196d884\"}\n[2026-05-11 12:37:06] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"ccbed33f-6c65-499b-877f-1c3ffcaf9125\",\"trace_id\":\"0ed97705-9243-4f61-ac6c-78244196d884\"}\n[2026-05-11 12:37:06] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"ccbed33f-6c65-499b-877f-1c3ffcaf9125\",\"trace_id\":\"0ed97705-9243-4f61-ac6c-78244196d884\"}\n[2026-05-11 12:37:39] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"087bfd2e-f67d-4fe0-8d90-4b24447245c3\",\"trace_id\":\"4a1673b2-a879-4b5b-a608-e5bab737f2a9\"}\n[2026-05-11 12:37:39] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"087bfd2e-f67d-4fe0-8d90-4b24447245c3\",\"trace_id\":\"4a1673b2-a879-4b5b-a608-e5bab737f2a9\"}\n[2026-05-11 12:38:24] local.NOTICE: Monitoring start {\"correlation_id\":\"64a64f0f-0d93-4e19-8938-6c01989528eb\",\"trace_id\":\"af18aeb7-3cca-45a2-be17-14b52a9503be\"}\n[2026-05-11 12:38:24] local.NOTICE: Monitoring end {\"correlation_id\":\"64a64f0f-0d93-4e19-8938-6c01989528eb\",\"trace_id\":\"af18aeb7-3cca-45a2-be17-14b52a9503be\"}\n[2026-05-11 12:38:33] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"2bd8991a-3ad2-446b-b56b-c4a5999f8c35\",\"trace_id\":\"4e72708d-2295-49d8-9050-2743b8fd8d9a\"}\n[2026-05-11 12:38:33] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"2bd8991a-3ad2-446b-b56b-c4a5999f8c35\",\"trace_id\":\"4e72708d-2295-49d8-9050-2743b8fd8d9a\"}\n[2026-05-11 12:38:40] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"1a24375a-e37c-4053-a723-0bd64ccf011f\",\"trace_id\":\"30216504-d807-4ec6-a089-f4d284411775\"}\n[2026-05-11 12:38:40] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"1a24375a-e37c-4053-a723-0bd64ccf011f\",\"trace_id\":\"30216504-d807-4ec6-a089-f4d284411775\"}\n[2026-05-11 12:38:40] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"1a24375a-e37c-4053-a723-0bd64ccf011f\",\"trace_id\":\"30216504-d807-4ec6-a089-f4d284411775\"}\n[2026-05-11 12:38:40] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"1a24375a-e37c-4053-a723-0bd64ccf011f\",\"trace_id\":\"30216504-d807-4ec6-a089-f4d284411775\"}\n[2026-05-11 12:38:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"604bc7af-c378-4421-bc5e-c0668d9d6d6c\",\"trace_id\":\"6d2a6c7b-a755-4129-a72c-ccb293543d5d\"}\n[2026-05-11 12:38:48] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 12:36:00, 2026-05-11 12:38:00] {\"correlation_id\":\"604bc7af-c378-4421-bc5e-c0668d9d6d6c\",\"trace_id\":\"6d2a6c7b-a755-4129-a72c-ccb293543d5d\"}\n[2026-05-11 12:38:49] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 12:36:00, 2026-05-11 12:38:00] {\"correlation_id\":\"604bc7af-c378-4421-bc5e-c0668d9d6d6c\",\"trace_id\":\"6d2a6c7b-a755-4129-a72c-ccb293543d5d\"}\n[2026-05-11 12:38:49] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"604bc7af-c378-4421-bc5e-c0668d9d6d6c\",\"trace_id\":\"6d2a6c7b-a755-4129-a72c-ccb293543d5d\"}\n[2026-05-11 12:38:55] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:sync-hubspot-objects\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"c6532af4-ea0b-4f8c-8c94-f07b4d966cc4\",\"trace_id\":\"1bcd1e37-eb5a-43ab-9cdb-4cba98a9403b\"}\n[2026-05-11 12:38:56] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:sync-hubspot-objects\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"c6532af4-ea0b-4f8c-8c94-f07b4d966cc4\",\"trace_id\":\"1bcd1e37-eb5a-43ab-9cdb-4cba98a9403b\"}\n[2026-05-11 12:38:56] local.INFO: [SyncHubspotObjects] Starting sync {\"team\":\"b2b115eb-93ce-4d1b-929c-173757df8fba\",\"usage\":23814760,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"3cc31fdc-6571-4644-909a-07234d7305d3\",\"trace_id\":\"1bcd1e37-eb5a-43ab-9cdb-4cba98a9403b\"}\n[2026-05-11 12:38:57] local.WARNING: [HubSpot] Account not connected for user {\"userId\":\"33e34a7a-1c02-4f04-87ac-22c3a385e6e3\",\"account\":{\"Jiminny\\\\Models\\\\SocialAccount\":{\"id\":306,\"sociable_id\":109,\"provider_user_id\":\"11348452\",\"expires\":1701077403,\"refresh_token_expires\":null,\"provider\":\"hubspot\",\"state\":\"full-refresh\",\"auth_scope\":null,\"retry_after\":null,\"created_at\":\"2020-09-01 16:59:04\",\"updated_at\":\"2023-11-27 09:30:03\"}}} {\"correlation_id\":\"3cc31fdc-6571-4644-909a-07234d7305d3\",\"trace_id\":\"1bcd1e37-eb5a-43ab-9cdb-4cba98a9403b\"}\n[2026-05-11 12:38:57] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"hubspot\",\"crm_owner\":109,\"team_id\":29} {\"correlation_id\":\"3cc31fdc-6571-4644-909a-07234d7305d3\",\"trace_id\":\"1bcd1e37-eb5a-43ab-9cdb-4cba98a9403b\"}\n[2026-05-11 12:38:57] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":29} {\"correlation_id\":\"3cc31fdc-6571-4644-909a-07234d7305d3\",\"trace_id\":\"1bcd1e37-eb5a-43ab-9cdb-4cba98a9403b\"}\n[2026-05-11 12:38:57] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":29} {\"correlation_id\":\"3cc31fdc-6571-4644-909a-07234d7305d3\",\"trace_id\":\"1bcd1e37-eb5a-43ab-9cdb-4cba98a9403b\"}\n[2026-05-11 12:38:57] local.INFO: [SyncHubspotObjects] Sync finished {\"team\":\"b2b115eb-93ce-4d1b-929c-173757df8fba\",\"provider\":\"hubspot\",\"status\":\"disconnected\",\"duration_ms\":391.5,\"usage\":23880424,\"real_usage\":62914560,\"pid\":74083,\"reason\":\"Your HubSpot account has become disconnected. Please login to Jiminny to reconnect.\"} {\"correlation_id\":\"3cc31fdc-6571-4644-909a-07234d7305d3\",\"trace_id\":\"1bcd1e37-eb5a-43ab-9cdb-4cba98a9403b\"}\n[2026-05-11 12:38:57] local.INFO: [SyncHubspotObjects] Starting sync {\"team\":\"abae74b8-bfa8-4383-9a7f-89f4bf2bdbb4\",\"usage\":23838640,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"33420e82-f413-4b5b-90b5-b41cc8824b5c\",\"trace_id\":\"1bcd1e37-eb5a-43ab-9cdb-4cba98a9403b\"}\n[2026-05-11 12:38:57] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"33420e82-f413-4b5b-90b5-b41cc8824b5c\",\"trace_id\":\"1bcd1e37-eb5a-43ab-9cdb-4cba98a9403b\"}\n[2026-05-11 12:38:57] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"33420e82-f413-4b5b-90b5-b41cc8824b5c\",\"trace_id\":\"1bcd1e37-eb5a-43ab-9cdb-4cba98a9403b\"}\n[2026-05-11 12:38:57] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"33420e82-f413-4b5b-90b5-b41cc8824b5c\",\"trace_id\":\"1bcd1e37-eb5a-43ab-9cdb-4cba98a9403b\"}\n[2026-05-11 12:38:57] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"33420e82-f413-4b5b-90b5-b41cc8824b5c\",\"trace_id\":\"1bcd1e37-eb5a-43ab-9cdb-4cba98a9403b\"}\n[2026-05-11 12:38:57] local.INFO: [HubSpot] Syncing opportunities using strategy: lastModified {\"team\":2} {\"correlation_id\":\"33420e82-f413-4b5b-90b5-b41cc8824b5c\",\"trace_id\":\"1bcd1e37-eb5a-43ab-9cdb-4cba98a9403b\"}\n[2026-05-11 12:38:57] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.49,\"average_seconds_per_request\":0.49} {\"correlation_id\":\"33420e82-f413-4b5b-90b5-b41cc8824b5c\",\"trace_id\":\"1bcd1e37-eb5a-43ab-9cdb-4cba98a9403b\"}\n[2026-05-11 12:38:57] local.INFO: [HubSpot] Synced opportunities {\"team\":2,\"strategies\":\"lastModified\",\"sync_count\":0,\"total\":0,\"last_synced_id\":null,\"duration_ms\":529.72} {\"correlation_id\":\"33420e82-f413-4b5b-90b5-b41cc8824b5c\",\"trace_id\":\"1bcd1e37-eb5a-43ab-9cdb-4cba98a9403b\"}\n[2026-05-11 12:38:58] local.INFO: [SyncHubspotObjects] Sync finished {\"team\":\"abae74b8-bfa8-4383-9a7f-89f4bf2bdbb4\",\"provider\":\"hubspot\",\"status\":\"completed\",\"duration_ms\":685.14,\"usage\":23902992,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"33420e82-f413-4b5b-90b5-b41cc8824b5c\",\"trace_id\":\"1bcd1e37-eb5a-43ab-9cdb-4cba98a9403b\"}\n[2026-05-11 12:38:58] local.INFO: [SyncHubspotObjects] Starting sync {\"team\":\"b2d49a54-b645-4637-a7ae-a86cfce6e8e4\",\"usage\":23880920,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"aaf2ceb1-acaa-4329-b200-7cab2d3683ac\",\"trace_id\":\"1bcd1e37-eb5a-43ab-9cdb-4cba98a9403b\"}\n[2026-05-11 12:38:58] local.WARNING: [HubSpot] Account not connected for user {\"userId\":\"2ac0447f-3c8c-4ce0-baeb-b63ddb76fa9b\",\"account\":null} {\"correlation_id\":\"aaf2ceb1-acaa-4329-b200-7cab2d3683ac\",\"trace_id\":\"1bcd1e37-eb5a-43ab-9cdb-4cba98a9403b\"}\n[2026-05-11 12:38:58] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"hubspot\",\"crm_owner\":130,\"team_id\":42} {\"correlation_id\":\"aaf2ceb1-acaa-4329-b200-7cab2d3683ac\",\"trace_id\":\"1bcd1e37-eb5a-43ab-9cdb-4cba98a9403b\"}\n[2026-05-11 12:38:58] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":42} {\"correlation_id\":\"aaf2ceb1-acaa-4329-b200-7cab2d3683ac\",\"trace_id\":\"1bcd1e37-eb5a-43ab-9cdb-4cba98a9403b\"}\n[2026-05-11 12:38:58] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":42} {\"correlation_id\":\"aaf2ceb1-acaa-4329-b200-7cab2d3683ac\",\"trace_id\":\"1bcd1e37-eb5a-43ab-9cdb-4cba98a9403b\"}\n[2026-05-11 12:38:58] local.INFO: [SyncHubspotObjects] Sync finished {\"team\":\"b2d49a54-b645-4637-a7ae-a86cfce6e8e4\",\"provider\":\"hubspot\",\"status\":\"disconnected\",\"duration_ms\":74.3,\"usage\":23868928,\"real_usage\":62914560,\"pid\":74083,\"reason\":\"Social account for HubSpot cannot be found. Please login to Jiminny to connect.\"} {\"correlation_id\":\"aaf2ceb1-acaa-4329-b200-7cab2d3683ac\",\"trace_id\":\"1bcd1e37-eb5a-43ab-9cdb-4cba98a9403b\"}\n[2026-05-11 12:38:58] local.INFO: [SyncHubspotObjects] Starting sync {\"team\":\"c6b9d6b0-b48d-4832-a68c-a57d60651888\",\"usage\":23829608,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"75559c5b-c8f2-45f4-8f83-1f5203f559a9\",\"trace_id\":\"1bcd1e37-eb5a-43ab-9cdb-4cba98a9403b\"}\n[2026-05-11 12:38:58] local.WARNING: [HubSpot] Account not connected for user {\"userId\":\"71e3aac5-fb66-47c5-a236-2d051ae3e319\",\"account\":null} {\"correlation_id\":\"75559c5b-c8f2-45f4-8f83-1f5203f559a9\",\"trace_id\":\"1bcd1e37-eb5a-43ab-9cdb-4cba98a9403b\"}\n[2026-05-11 12:38:58] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"hubspot\",\"crm_owner\":256,\"team_id\":49} {\"correlation_id\":\"75559c5b-c8f2-45f4-8f83-1f5203f559a9\",\"trace_id\":\"1bcd1e37-eb5a-43ab-9cdb-4cba98a9403b\"}\n[2026-05-11 12:38:58] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":49} {\"correlation_id\":\"75559c5b-c8f2-45f4-8f83-1f5203f559a9\",\"trace_id\":\"1bcd1e37-eb5a-43ab-9cdb-4cba98a9403b\"}\n[2026-05-11 12:38:58] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":49} {\"correlation_id\":\"75559c5b-c8f2-45f4-8f83-1f5203f559a9\",\"trace_id\":\"1bcd1e37-eb5a-43ab-9cdb-4cba98a9403b\"}\n[2026-05-11 12:38:58] local.INFO: [SyncHubspotObjects] Sync finished {\"team\":\"c6b9d6b0-b48d-4832-a68c-a57d60651888\",\"provider\":\"hubspot\",\"status\":\"disconnected\",\"duration_ms\":45.34,\"usage\":23865344,\"real_usage\":62914560,\"pid\":74083,\"reason\":\"Social account for HubSpot cannot be found. Please login to Jiminny to connect.\"} {\"correlation_id\":\"75559c5b-c8f2-45f4-8f83-1f5203f559a9\",\"trace_id\":\"1bcd1e37-eb5a-43ab-9cdb-4cba98a9403b\"}\n[2026-05-11 12:39:09] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:notify-not-logged\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"30381675-5d98-4d7b-b798-f2edf9afbfaf\",\"trace_id\":\"24e9369e-32c0-427c-b462-72bf3c6faf54\"}\n[2026-05-11 12:39:09] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:notify-not-logged\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"30381675-5d98-4d7b-b798-f2edf9afbfaf\",\"trace_id\":\"24e9369e-32c0-427c-b462-72bf3c6faf54\"}\n[2026-05-11 12:39:27] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"997774e7-4817-473d-b3fb-1671062fdf1a\",\"trace_id\":\"818ab337-f0a3-4711-89ca-79d4c0653e64\"}\n[2026-05-11 12:39:27] local.INFO: [EmailSchedule] STARTING Inbox Sync {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"997774e7-4817-473d-b3fb-1671062fdf1a\",\"trace_id\":\"818ab337-f0a3-4711-89ca-79d4c0653e64\"}\n[2026-05-11 12:39:27] local.INFO: [EmailSchedule] FINISHED Inbox Sync {\"host\":\"docker_lamp_1\",\"events\":2} {\"correlation_id\":\"997774e7-4817-473d-b3fb-1671062fdf1a\",\"trace_id\":\"818ab337-f0a3-4711-89ca-79d4c0653e64\"}\n[2026-05-11 12:39:27] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"997774e7-4817-473d-b3fb-1671062fdf1a\",\"trace_id\":\"818ab337-f0a3-4711-89ca-79d4c0653e64\"}\n[2026-05-11 12:39:28] local.INFO: [Sync Mailbox] Sync start {\"inbox_id\":59} {\"correlation_id\":\"e8b3a83f-2d68-4185-ae60-53f8584dbc9d\",\"trace_id\":\"818ab337-f0a3-4711-89ca-79d4c0653e64\"}\n[2026-05-11 12:39:29] local.INFO: [Inbox service] Skipping METADATA SYNC for inbox 59 due to unauthorized access to the mailbox {\"correlation_id\":\"e8b3a83f-2d68-4185-ae60-53f8584dbc9d\",\"trace_id\":\"818ab337-f0a3-4711-89ca-79d4c0653e64\"}\n[2026-05-11 12:39:29] local.INFO: [Sync Mailbox] Sync complete {\"inbox_id\":59} {\"correlation_id\":\"e8b3a83f-2d68-4185-ae60-53f8584dbc9d\",\"trace_id\":\"818ab337-f0a3-4711-89ca-79d4c0653e64\"}\n[2026-05-11 12:39:29] local.INFO: [Sync Mailbox] Sync start {\"inbox_id\":212} {\"correlation_id\":\"98e2a28a-a210-4af1-b21f-45d9a3a38fc2\",\"trace_id\":\"818ab337-f0a3-4711-89ca-79d4c0653e64\"}\n[2026-05-11 12:39:29] local.INFO: [Inbox service] Skipping METADATA SYNC for inbox 212 due to unauthorized access to the mailbox {\"correlation_id\":\"98e2a28a-a210-4af1-b21f-45d9a3a38fc2\",\"trace_id\":\"818ab337-f0a3-4711-89ca-79d4c0653e64\"}\n[2026-05-11 12:39:29] local.INFO: [Sync Mailbox] Sync complete {\"inbox_id\":212} {\"correlation_id\":\"98e2a28a-a210-4af1-b21f-45d9a3a38fc2\",\"trace_id\":\"818ab337-f0a3-4711-89ca-79d4c0653e64\"}\n[2026-05-11 12:40:10] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"178535e2-3fb1-48e2-a406-e6a1836afd92\",\"trace_id\":\"b8a746f5-7d99-45e7-98e0-bcd4e27c7ef0\"}\n[2026-05-11 12:40:10] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"178535e2-3fb1-48e2-a406-e6a1836afd92\",\"trace_id\":\"b8a746f5-7d99-45e7-98e0-bcd4e27c7ef0\"}\n[2026-05-11 12:40:10] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"178535e2-3fb1-48e2-a406-e6a1836afd92\",\"trace_id\":\"b8a746f5-7d99-45e7-98e0-bcd4e27c7ef0\"}\n[2026-05-11 12:40:14] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"947b3a04-5e22-42f3-8874-2129ed80fa76\",\"trace_id\":\"1e6a928f-bede-41b8-ac27-3a403fcf1f6a\"}\n[2026-05-11 12:40:14] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"947b3a04-5e22-42f3-8874-2129ed80fa76\",\"trace_id\":\"1e6a928f-bede-41b8-ac27-3a403fcf1f6a\"}\n[2026-05-11 12:40:25] local.NOTICE: Monitoring start {\"correlation_id\":\"3a656188-faff-47e3-be87-1ffd332c83e5\",\"trace_id\":\"c608c915-581f-4ea5-bbf9-8b17d4671ebd\"}\n[2026-05-11 12:40:25] local.NOTICE: Monitoring end {\"correlation_id\":\"3a656188-faff-47e3-be87-1ffd332c83e5\",\"trace_id\":\"c608c915-581f-4ea5-bbf9-8b17d4671ebd\"}\n[2026-05-11 12:40:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"d76be307-9368-407c-a917-f426edf01e0f\",\"trace_id\":\"27511389-4408-4972-afca-0505938cebe6\"}\n[2026-05-11 12:40:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"d76be307-9368-407c-a917-f426edf01e0f\",\"trace_id\":\"27511389-4408-4972-afca-0505938cebe6\"}\n[2026-05-11 12:40:40] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"13e920dc-6440-4557-9f0d-e8368201e1f1\",\"trace_id\":\"87a8e095-dbb1-49d2-af82-0dbdc9a37579\"}\n[2026-05-11 12:40:40] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"13e920dc-6440-4557-9f0d-e8368201e1f1\",\"trace_id\":\"87a8e095-dbb1-49d2-af82-0dbdc9a37579\"}\n[2026-05-11 12:40:40] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"13e920dc-6440-4557-9f0d-e8368201e1f1\",\"trace_id\":\"87a8e095-dbb1-49d2-af82-0dbdc9a37579\"}\n[2026-05-11 12:40:40] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"13e920dc-6440-4557-9f0d-e8368201e1f1\",\"trace_id\":\"87a8e095-dbb1-49d2-af82-0dbdc9a37579\"}\n[2026-05-11 12:40:45] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"65873038-c685-4dd4-b9c9-5344c94f9f06\",\"trace_id\":\"66b27095-c459-49a5-b17d-65d23500d470\"}\n[2026-05-11 12:40:45] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 12:38:00, 2026-05-11 12:40:00] {\"correlation_id\":\"65873038-c685-4dd4-b9c9-5344c94f9f06\",\"trace_id\":\"66b27095-c459-49a5-b17d-65d23500d470\"}\n[2026-05-11 12:40:45] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 12:38:00, 2026-05-11 12:40:00] {\"correlation_id\":\"65873038-c685-4dd4-b9c9-5344c94f9f06\",\"trace_id\":\"66b27095-c459-49a5-b17d-65d23500d470\"}\n[2026-05-11 12:40:45] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"65873038-c685-4dd4-b9c9-5344c94f9f06\",\"trace_id\":\"66b27095-c459-49a5-b17d-65d23500d470\"}\n[2026-05-11 12:40:54] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"08f1f348-abfe-428c-840c-649c28b23bd8\",\"trace_id\":\"8cfddb1f-38bf-4a2f-8b81-34971c5af503\"}\n[2026-05-11 12:40:54] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"08f1f348-abfe-428c-840c-649c28b23bd8\",\"trace_id\":\"8cfddb1f-38bf-4a2f-8b81-34971c5af503\"}\n[2026-05-11 12:40:59] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"d9d9b6e5-f954-48fa-b5a4-ce4d209262e6\",\"trace_id\":\"730a7bbb-1883-4090-bfb8-5122e4ef8fa0\"}\n[2026-05-11 12:41:00] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"d9d9b6e5-f954-48fa-b5a4-ce4d209262e6\",\"trace_id\":\"730a7bbb-1883-4090-bfb8-5122e4ef8fa0\"}\n[2026-05-11 12:41:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"6d04d263-358d-4d5a-a5cd-6dd953e84e04\",\"trace_id\":\"7889282e-984a-45b6-b43c-3e5f30ce66e4\"}\n[2026-05-11 12:41:12] local.INFO: Running pre-meeting notification command {\"correlation_id\":\"6d04d263-358d-4d5a-a5cd-6dd953e84e04\",\"trace_id\":\"7889282e-984a-45b6-b43c-3e5f30ce66e4\"}\n[2026-05-11 12:41:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"6d04d263-358d-4d5a-a5cd-6dd953e84e04\",\"trace_id\":\"7889282e-984a-45b6-b43c-3e5f30ce66e4\"}\n[2026-05-11 12:41:19] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"5bcf1aeb-c490-4189-b9db-bb26fb564b8f\",\"trace_id\":\"85346e80-142b-463d-8cb8-66be8639f23b\"}\n[2026-05-11 12:41:19] local.INFO: Running conference:monitor:start command for activities in (2026-05-11 12:31:00, 2026-05-11 12:36:00] {\"correlation_id\":\"5bcf1aeb-c490-4189-b9db-bb26fb564b8f\",\"trace_id\":\"85346e80-142b-463d-8cb8-66be8639f23b\"}\n[2026-05-11 12:41:20] local.INFO: [conference:monitor:start] No activities found in (2026-05-11 12:31:00, 2026-05-11 12:36:00] {\"correlation_id\":\"5bcf1aeb-c490-4189-b9db-bb26fb564b8f\",\"trace_id\":\"85346e80-142b-463d-8cb8-66be8639f23b\"}\n[2026-05-11 12:41:20] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"5bcf1aeb-c490-4189-b9db-bb26fb564b8f\",\"trace_id\":\"85346e80-142b-463d-8cb8-66be8639f23b\"}\n[2026-05-11 12:41:23] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"47f80320-35e8-45ae-864b-e07c0cc5d5b1\",\"trace_id\":\"b5e25b03-ad40-4cba-a3f0-c2595473a2f8\"}\n[2026-05-11 12:41:23] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesEnded {\"from\":\"12:36\",\"to\":\"12:41\"} {\"correlation_id\":\"47f80320-35e8-45ae-864b-e07c0cc5d5b1\",\"trace_id\":\"b5e25b03-ad40-4cba-a3f0-c2595473a2f8\"}\n[2026-05-11 12:41:23] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesWithUnfinishedSession {\"from\":\"02:31\",\"to\":\"02:36\"} {\"correlation_id\":\"47f80320-35e8-45ae-864b-e07c0cc5d5b1\",\"trace_id\":\"b5e25b03-ad40-4cba-a3f0-c2595473a2f8\"}\n[2026-05-11 12:41:23] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"47f80320-35e8-45ae-864b-e07c0cc5d5b1\",\"trace_id\":\"b5e25b03-ad40-4cba-a3f0-c2595473a2f8\"}\n[2026-05-11 12:41:28] local.NOTICE: Repairing HubSpot tokens start {\"correlation_id\":\"7d44ec0e-0956-4f28-beb7-ab1392d192cc\",\"trace_id\":\"0d5eb2aa-44c0-4a0a-bc11-c372f863d289\"}\n[2026-05-11 12:41:29] local.INFO: Trying to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\"} {\"correlation_id\":\"7d44ec0e-0956-4f28-beb7-ab1392d192cc\",\"trace_id\":\"0d5eb2aa-44c0-4a0a-bc11-c372f863d289\"}\n[2026-05-11 12:41:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7d44ec0e-0956-4f28-beb7-ab1392d192cc\",\"trace_id\":\"0d5eb2aa-44c0-4a0a-bc11-c372f863d289\"}\n[2026-05-11 12:41:29] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":59,\"provider\":\"hubspot\",\"refreshToken\":\"97b78f6e2cc49965c00c2492b602b02708b1392551e6b3f113fbaa48992af90b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"7d44ec0e-0956-4f28-beb7-ab1392d192cc\",\"trace_id\":\"0d5eb2aa-44c0-4a0a-bc11-c372f863d289\"}\n[2026-05-11 12:41:29] local.ERROR: Failed to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"7d44ec0e-0956-4f28-beb7-ab1392d192cc\",\"trace_id\":\"0d5eb2aa-44c0-4a0a-bc11-c372f863d289\"}\n[2026-05-11 12:41:29] local.INFO: Trying to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\"} {\"correlation_id\":\"7d44ec0e-0956-4f28-beb7-ab1392d192cc\",\"trace_id\":\"0d5eb2aa-44c0-4a0a-bc11-c372f863d289\"}\n[2026-05-11 12:41:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7d44ec0e-0956-4f28-beb7-ab1392d192cc\",\"trace_id\":\"0d5eb2aa-44c0-4a0a-bc11-c372f863d289\"}\n[2026-05-11 12:41:29] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":306,\"provider\":\"hubspot\",\"refreshToken\":\"6fa6aa8cc641d131231acc3470f5c03cb3b07b2e580fb18f8acb3b1dbb72549b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"7d44ec0e-0956-4f28-beb7-ab1392d192cc\",\"trace_id\":\"0d5eb2aa-44c0-4a0a-bc11-c372f863d289\"}\n[2026-05-11 12:41:29] local.ERROR: Failed to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"7d44ec0e-0956-4f28-beb7-ab1392d192cc\",\"trace_id\":\"0d5eb2aa-44c0-4a0a-bc11-c372f863d289\"}\n[2026-05-11 12:41:29] local.INFO: Trying to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\"} {\"correlation_id\":\"7d44ec0e-0956-4f28-beb7-ab1392d192cc\",\"trace_id\":\"0d5eb2aa-44c0-4a0a-bc11-c372f863d289\"}\n[2026-05-11 12:41:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7d44ec0e-0956-4f28-beb7-ab1392d192cc\",\"trace_id\":\"0d5eb2aa-44c0-4a0a-bc11-c372f863d289\"}\n[2026-05-11 12:41:29] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1372,\"provider\":\"hubspot\",\"refreshToken\":\"9aa73948c761da29dce46c177cf9aee1fde483a44169ca38723f9f0597d7a8c4\",\"state\":\"full-refresh\"} {\"correlation_id\":\"7d44ec0e-0956-4f28-beb7-ab1392d192cc\",\"trace_id\":\"0d5eb2aa-44c0-4a0a-bc11-c372f863d289\"}\n[2026-05-11 12:41:30] local.ERROR: Failed to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"7d44ec0e-0956-4f28-beb7-ab1392d192cc\",\"trace_id\":\"0d5eb2aa-44c0-4a0a-bc11-c372f863d289\"}\n[2026-05-11 12:41:30] local.NOTICE: Repairing HubSpot tokens end {\"total\":3,\"fixed\":0,\"failed\":3} {\"correlation_id\":\"7d44ec0e-0956-4f28-beb7-ab1392d192cc\",\"trace_id\":\"0d5eb2aa-44c0-4a0a-bc11-c372f863d289\"}\n[2026-05-11 12:41:36] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"e36f4a59-aacc-4f8c-bfd2-93e55c40d24c\",\"trace_id\":\"d38f7f47-4ca1-41ee-80a5-2b5071c36b98\"}\n[2026-05-11 12:41:36] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"jiminny:transcription:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"b969f192-f5ed-4908-a265-a6350e350269\",\"trace_id\":\"099229e6-e043-4a2d-8cdd-2cddcd144180\"}\n[2026-05-11 12:41:36] local.INFO: [HubSpot Journal Command] Starting polling service {\"correlation_id\":\"04f642bd-b7f8-4f02-8127-f974cfa14ae6\",\"trace_id\":\"c693ab56-5a85-48bd-bece-f723e6498a63\"}\n[2026-05-11 12:41:36] local.INFO: [HubSpot Journal Polling] Service starting {\"memory_limit\":\"256M\",\"max_execution_time\":\"0\",\"initial_memory_mb\":60.0} {\"correlation_id\":\"04f642bd-b7f8-4f02-8127-f974cfa14ae6\",\"trace_id\":\"c693ab56-5a85-48bd-bece-f723e6498a63\"}\n[2026-05-11 12:41:36] local.INFO: [HubSpot Journal Polling] Acquired polling lock {\"expires_at\":\"2026-05-11T12:43:36.539454Z\"} {\"correlation_id\":\"04f642bd-b7f8-4f02-8127-f974cfa14ae6\",\"trace_id\":\"c693ab56-5a85-48bd-bece-f723e6498a63\"}\n[2026-05-11 12:41:36] local.INFO: [HubSpot Journal Auth] Requesting new client credentials token {\"correlation_id\":\"04f642bd-b7f8-4f02-8127-f974cfa14ae6\",\"trace_id\":\"c693ab56-5a85-48bd-bece-f723e6498a63\"}\n[2026-05-11 12:41:36] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"jiminny:transcription:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"b969f192-f5ed-4908-a265-a6350e350269\",\"trace_id\":\"099229e6-e043-4a2d-8cdd-2cddcd144180\"}\n[2026-05-11 12:41:36] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"e36f4a59-aacc-4f8c-bfd2-93e55c40d24c\",\"trace_id\":\"d38f7f47-4ca1-41ee-80a5-2b5071c36b98\"}\n[2026-05-11 12:41:36] local.INFO: [HubSpot Journal Auth] Successfully obtained new access token {\"expires_in\":1800,\"cached_for\":1500} {\"correlation_id\":\"04f642bd-b7f8-4f02-8127-f974cfa14ae6\",\"trace_id\":\"c693ab56-5a85-48bd-bece-f723e6498a63\"}\n[2026-05-11 12:41:37] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"04f642bd-b7f8-4f02-8127-f974cfa14ae6\",\"trace_id\":\"c693ab56-5a85-48bd-bece-f723e6498a63\"}\n[2026-05-11 12:41:42] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"04f642bd-b7f8-4f02-8127-f974cfa14ae6\",\"trace_id\":\"c693ab56-5a85-48bd-bece-f723e6498a63\"}\n[2026-05-11 12:41:45] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:reset-governor\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"bf32e5d9-3c03-4709-bc7a-bf316a914f54\",\"trace_id\":\"17ab7907-4e16-4003-9562-f1ebdda4ae53\"}\n[2026-05-11 12:41:45] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:reset-governor\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"bf32e5d9-3c03-4709-bc7a-bf316a914f54\",\"trace_id\":\"17ab7907-4e16-4003-9562-f1ebdda4ae53\"}\n[2026-05-11 12:41:47] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"04f642bd-b7f8-4f02-8127-f974cfa14ae6\",\"trace_id\":\"c693ab56-5a85-48bd-bece-f723e6498a63\"}\n[2026-05-11 12:41:49] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"2bf31322-b08f-46b6-8cf4-92a1b75b11f7\",\"trace_id\":\"09692315-8f88-4a8f-9cf7-c2279a404eae\"}\n[2026-05-11 12:41:50] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"2bf31322-b08f-46b6-8cf4-92a1b75b11f7\",\"trace_id\":\"09692315-8f88-4a8f-9cf7-c2279a404eae\"}\n[2026-05-11 12:42:02] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"04f642bd-b7f8-4f02-8127-f974cfa14ae6\",\"trace_id\":\"c693ab56-5a85-48bd-bece-f723e6498a63\"}\n[2026-05-11 12:42:09] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"edf84a7a-443d-4891-80da-b558a62455ae\",\"trace_id\":\"f8ae161d-8ad3-4c3f-8dea-50135cbc60f2\"}\n[2026-05-11 12:42:10] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"edf84a7a-443d-4891-80da-b558a62455ae\",\"trace_id\":\"f8ae161d-8ad3-4c3f-8dea-50135cbc60f2\"}\n[2026-05-11 12:42:10] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"edf84a7a-443d-4891-80da-b558a62455ae\",\"trace_id\":\"f8ae161d-8ad3-4c3f-8dea-50135cbc60f2\"}\n[2026-05-11 12:42:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a9749844-3289-4b1b-a125-b09e8ee7ce28\",\"trace_id\":\"573f6160-ab50-4baf-b2c9-ca5c440caf4c\"}\n[2026-05-11 12:42:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a9749844-3289-4b1b-a125-b09e8ee7ce28\",\"trace_id\":\"573f6160-ab50-4baf-b2c9-ca5c440caf4c\"}\n[2026-05-11 12:42:15] local.NOTICE: Monitoring start {\"correlation_id\":\"0c7693d2-2be3-43d6-8f6c-f0c51bdf2f58\",\"trace_id\":\"a12e651f-e9f2-4269-89fa-9d702d1cccb4\"}\n[2026-05-11 12:42:15] local.NOTICE: Monitoring end {\"correlation_id\":\"0c7693d2-2be3-43d6-8f6c-f0c51bdf2f58\",\"trace_id\":\"a12e651f-e9f2-4269-89fa-9d702d1cccb4\"}\n[2026-05-11 12:42:24] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"8f1583bd-f995-4d23-9fe3-4f8db0073e30\",\"trace_id\":\"4e819c0c-86a2-44c1-9ca7-2766afd1d5dd\"}\n[2026-05-11 12:42:24] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"8f1583bd-f995-4d23-9fe3-4f8db0073e30\",\"trace_id\":\"4e819c0c-86a2-44c1-9ca7-2766afd1d5dd\"}\n[2026-05-11 12:42:28] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"33f8ab45-15ea-4b7f-9ad1-01df559b343d\",\"trace_id\":\"c08c5399-b750-4cb5-ba0c-32a1921f22cd\"}\n[2026-05-11 12:42:28] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"33f8ab45-15ea-4b7f-9ad1-01df559b343d\",\"trace_id\":\"c08c5399-b750-4cb5-ba0c-32a1921f22cd\"}\n[2026-05-11 12:42:28] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"33f8ab45-15ea-4b7f-9ad1-01df559b343d\",\"trace_id\":\"c08c5399-b750-4cb5-ba0c-32a1921f22cd\"}\n[2026-05-11 12:42:28] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"33f8ab45-15ea-4b7f-9ad1-01df559b343d\",\"trace_id\":\"c08c5399-b750-4cb5-ba0c-32a1921f22cd\"}\n[2026-05-11 12:42:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"c8d3a419-78c3-484e-8645-bbd58027f19a\",\"trace_id\":\"eca26feb-7f81-4eb3-8b53-7b4ed30f5da7\"}\n[2026-05-11 12:42:31] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 12:40:00, 2026-05-11 12:42:00] {\"correlation_id\":\"c8d3a419-78c3-484e-8645-bbd58027f19a\",\"trace_id\":\"eca26feb-7f81-4eb3-8b53-7b4ed30f5da7\"}\n[2026-05-11 12:42:31] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 12:40:00, 2026-05-11 12:42:00] {\"correlation_id\":\"c8d3a419-78c3-484e-8645-bbd58027f19a\",\"trace_id\":\"eca26feb-7f81-4eb3-8b53-7b4ed30f5da7\"}\n[2026-05-11 12:42:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"c8d3a419-78c3-484e-8645-bbd58027f19a\",\"trace_id\":\"eca26feb-7f81-4eb3-8b53-7b4ed30f5da7\"}\n[2026-05-11 12:42:33] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"04f642bd-b7f8-4f02-8127-f974cfa14ae6\",\"trace_id\":\"c693ab56-5a85-48bd-bece-f723e6498a63\"}\n[2026-05-11 12:42:33] local.WARNING: [HubSpot Journal Polling] Maximum empty results reached, stopping {\"empty_results\":5,\"max_empty_results\":5} {\"correlation_id\":\"04f642bd-b7f8-4f02-8127-f974cfa14ae6\",\"trace_id\":\"c693ab56-5a85-48bd-bece-f723e6498a63\"}\n[2026-05-11 12:42:33] local.WARNING: [HubSpot Journal Polling] Maximum empty results reached, stopping {\"empty_results\":5,\"max_empty_results\":5} {\"correlation_id\":\"04f642bd-b7f8-4f02-8127-f974cfa14ae6\",\"trace_id\":\"c693ab56-5a85-48bd-bece-f723e6498a63\"}\n[2026-05-11 12:42:33] local.INFO: [HubSpot Journal Polling] Service ending {\"runtime_seconds\":57,\"total_cycles\":5,\"files_downloaded\":0,\"empty_files\":0,\"other_portal_skipped\":0,\"total_events\":0,\"events_per_file\":0,\"avg_api_ms\":271.6,\"avg_download_ms\":0.0,\"avg_transform_ms\":0.0,\"avg_process_ms\":0.0,\"peak_memory_mb\":99.73} {\"correlation_id\":\"04f642bd-b7f8-4f02-8127-f974cfa14ae6\",\"trace_id\":\"c693ab56-5a85-48bd-bece-f723e6498a63\"}\n[2026-05-11 12:42:33] local.INFO: [HubSpot Journal Polling] Saved offset to database on cleanup {\"offset\":\"019e15a9-9ea0-7da7-87bc-82592e3ccf0d\"} {\"correlation_id\":\"04f642bd-b7f8-4f02-8127-f974cfa14ae6\",\"trace_id\":\"c693ab56-5a85-48bd-bece-f723e6498a63\"}\n[2026-05-11 12:42:34] local.INFO: [HubSpot Journal Polling] Released polling lock {\"correlation_id\":\"04f642bd-b7f8-4f02-8127-f974cfa14ae6\",\"trace_id\":\"c693ab56-5a85-48bd-bece-f723e6498a63\"}\n[2026-05-11 12:42:44] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"b9253379-3254-4739-9b9f-0b9556302ad4\",\"trace_id\":\"cef517db-84be-4d7b-ad21-70945b37c05b\"}\n[2026-05-11 12:42:44] local.INFO: [EmailSchedule] STARTING batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"b9253379-3254-4739-9b9f-0b9556302ad4\",\"trace_id\":\"cef517db-84be-4d7b-ad21-70945b37c05b\"}\n[2026-05-11 12:42:44] local.INFO: [EmailSchedule] FINISHED batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"b9253379-3254-4739-9b9f-0b9556302ad4\",\"trace_id\":\"cef517db-84be-4d7b-ad21-70945b37c05b\"}\n[2026-05-11 12:42:44] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"b9253379-3254-4739-9b9f-0b9556302ad4\",\"trace_id\":\"cef517db-84be-4d7b-ad21-70945b37c05b\"}\n[2026-05-11 12:42:47] local.INFO: [Jiminny\\Jobs\\Mailbox\\CreateBatches] processed 2 inboxes and created 0 batches {\"userId\":null,\"batchSize\":30,\"maxBatches\":1000} {\"correlation_id\":\"6af0cc6e-d5cc-4ae8-b828-b5a8b502b389\",\"trace_id\":\"cef517db-84be-4d7b-ad21-70945b37c05b\"}\n[2026-05-11 12:43:10] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"c67aae80-ca55-4a7a-8384-9faf868cb136\",\"trace_id\":\"da880439-5556-4f37-9e22-25f92d188f30\"}\n[2026-05-11 12:43:10] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"c67aae80-ca55-4a7a-8384-9faf868cb136\",\"trace_id\":\"da880439-5556-4f37-9e22-25f92d188f30\"}\n[2026-05-11 12:43:10] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"c67aae80-ca55-4a7a-8384-9faf868cb136\",\"trace_id\":\"da880439-5556-4f37-9e22-25f92d188f30\"}\n[2026-05-11 12:43:13] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"186ffd96-525a-4575-a399-0f4d9085ddc3\",\"trace_id\":\"0b4502b2-ba6e-40e5-badb-3186b0b93ee4\"}\n[2026-05-11 12:43:14] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"186ffd96-525a-4575-a399-0f4d9085ddc3\",\"trace_id\":\"0b4502b2-ba6e-40e5-badb-3186b0b93ee4\"}\n[2026-05-11 12:43:23] local.NOTICE: Monitoring start {\"correlation_id\":\"4617b638-c01e-4a69-812e-98ddf9a69737\",\"trace_id\":\"77960c02-0e5a-4434-9fa1-b5b5da7add54\"}\n[2026-05-11 12:43:23] local.NOTICE: Monitoring end {\"correlation_id\":\"4617b638-c01e-4a69-812e-98ddf9a69737\",\"trace_id\":\"77960c02-0e5a-4434-9fa1-b5b5da7add54\"}\n[2026-05-11 12:43:29] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"7836dd33-459f-45c6-a580-d78cbfbfc418\",\"trace_id\":\"8f25dc99-3592-4e5c-8718-c05f6e5ad3b1\"}\n[2026-05-11 12:43:29] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"7836dd33-459f-45c6-a580-d78cbfbfc418\",\"trace_id\":\"8f25dc99-3592-4e5c-8718-c05f6e5ad3b1\"}\n[2026-05-11 12:43:32] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"24ce2536-3bc0-4ebb-a29e-f31ece105663\",\"trace_id\":\"9ceae23a-db8d-4ab9-9f87-fcb9d6a089a0\"}\n[2026-05-11 12:43:32] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"24ce2536-3bc0-4ebb-a29e-f31ece105663\",\"trace_id\":\"9ceae23a-db8d-4ab9-9f87-fcb9d6a089a0\"}\n[2026-05-11 12:43:32] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"24ce2536-3bc0-4ebb-a29e-f31ece105663\",\"trace_id\":\"9ceae23a-db8d-4ab9-9f87-fcb9d6a089a0\"}\n[2026-05-11 12:43:32] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"24ce2536-3bc0-4ebb-a29e-f31ece105663\",\"trace_id\":\"9ceae23a-db8d-4ab9-9f87-fcb9d6a089a0\"}\n[2026-05-11 12:43:43] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"calendar:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:43] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"33c92496-01c9-4dd1-b351-f10f84e3485d\",\"trace_id\":\"771d9995-14e2-4fe7-9229-92927a8a4597\"}\n[2026-05-11 12:43:43] local.NOTICE: Calendar sync start {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:43] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"33c92496-01c9-4dd1-b351-f10f84e3485d\",\"trace_id\":\"771d9995-14e2-4fe7-9229-92927a8a4597\"}\n[2026-05-11 12:43:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1393,\"provider\":\"google\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:43] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1393,\"provider\":\"google\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:43] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1393,\"provider\":\"google\",\"refreshToken\":\"5aa7e2d96b53201cd16fca5d2e4ef3ad03320971fc064781d18aee3ae7b99fbf\",\"state\":\"full-refresh\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:43] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1393,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Account has been deleted\"}} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:43] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:43] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1393,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1387,\"provider\":\"google\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:43] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1387,\"provider\":\"google\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:43] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1387,\"provider\":\"google\",\"refreshToken\":\"8157ac6de94842937194009e9c50e459253600f799dacf6a40755ffdbeb5bba6\",\"state\":\"full-refresh\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:43] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1387,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Account has been deleted\"}} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:43] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:43] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1387,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1348,\"provider\":\"google\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:43] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1348,\"provider\":\"google\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:43] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1348,\"provider\":\"google\",\"refreshToken\":\"9e7d13d3032d0cb1b79d8e95aef01383e8e91eb52ff8ee960c8a0b6b95cd8c73\",\"state\":\"full-refresh\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:43] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1348,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:43] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:44] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1348,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:44] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1361,\"provider\":\"google\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:44] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1361,\"provider\":\"google\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:44] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:44] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1361,\"provider\":\"google\",\"refreshToken\":\"6c843da199c2b9907445329304fcc4ec5057a4ee748d8299641764395c08e1fd\",\"state\":\"full-refresh\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:44] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1361,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Account has been deleted\"}} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:44] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:44] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1361,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:44] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1310,\"provider\":\"google\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:44] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1310,\"provider\":\"google\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:44] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:44] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1310,\"provider\":\"google\",\"refreshToken\":\"e34818922c2830a660813a63f6169a4a9a992ae2cccd7dc8dd7796cfdb470ef1\",\"state\":\"full-refresh\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:44] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1310,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:44] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:44] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1310,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:44] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1333,\"provider\":\"google\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:44] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1333,\"provider\":\"google\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:44] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:44] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1333,\"provider\":\"google\",\"refreshToken\":\"6c902986546d8e8da1dc539b046cdc1d458f519acc972e5b5f1d6a1a295165e0\",\"state\":\"full-refresh\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:44] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1333,\"provider\":\"google\",\"responseBody\":{\"error\":\"unauthorized_client\",\"error_description\":\"Unauthorized\"}} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:44] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:44] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1333,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:44] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1368,\"provider\":\"google\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:44] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1368,\"provider\":\"google\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:44] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:44] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1368,\"provider\":\"google\",\"refreshToken\":\"d2f128898ff8543bd16b69cfae37896ab85119b0f5ed2b431d739593bb600333\",\"state\":\"full-refresh\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:45] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1368,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:45] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:45] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1368,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1365,\"provider\":\"google\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:45] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1365,\"provider\":\"google\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:45] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1365,\"provider\":\"google\",\"refreshToken\":\"7676e4a9afcd082b413248ab5ec6e487021fec6a9bdf315860a59cefad9caad8\",\"state\":\"full-refresh\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:45] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1365,\"provider\":\"google\",\"responseBody\":{\"error\":\"unauthorized_client\",\"error_description\":\"Unauthorized\"}} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:45] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:45] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1365,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1364,\"provider\":\"google\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:45] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1364,\"provider\":\"google\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:45] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1364,\"provider\":\"google\",\"refreshToken\":\"dd5882ebce76e645292ce33ae74238abbb77c0a4ecc6a2bfe723cad82e72ba8e\",\"state\":\"full-refresh\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:46] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1364,\"provider\":\"google\",\"responseBody\":{\"error\":\"unauthorized_client\",\"error_description\":\"Unauthorized\"}} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:46] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:46] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1364,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1370,\"provider\":\"office\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:46] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1370,\"provider\":\"office\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:46] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1370,\"provider\":\"office\",\"refreshToken\":\"b7ee8035306d0043cea6e00e7c4fe14f745e44074a1194db62a31cdf8b70af3e\",\"state\":\"full-refresh\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:46] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1370,\"provider\":\"office\",\"responseBody\":\"{\\\"error\\\":\\\"invalid_client\\\",\\\"error_description\\\":\\\"AADSTS7000215: Invalid client secret provided. Ensure the secret being sent in the request is the client secret value, not the client secret ID, for a secret added to app 'bbcbb2ef-6200-4fae-82bd-d81f5dd738da'. Trace ID: 75cbe23e-e8aa-4dc2-a399-462ee4420200 Correlation ID: b4da2ce2-5084-4711-8a85-e0a84b213adf Timestamp: 2026-05-11 12:43:46Z\\\",\\\"error_codes\\\":[7000215],\\\"timestamp\\\":\\\"2026-05-11 12:43:46Z\\\",\\\"trace_id\\\":\\\"75cbe23e-e8aa-4dc2-a399-462ee4420200\\\",\\\"correlation_id\\\":\\\"b4da2ce2-5084-4711-8a85-e0a84b213adf\\\",\\\"error_uri\\\":\\\"https://login.microsoftonline.com/error?code=7000215\\\"}\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:46] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:46] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1370,\"provider\":\"office\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1202,\"provider\":\"office\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:46] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1202,\"provider\":\"office\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:46] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1202,\"provider\":\"office\",\"refreshToken\":\"b458799ccc29b21a6e2eb5260fdb63e49ccba21bf942a3973fb63799bd7f0afe\",\"state\":\"full-refresh\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:47] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1202,\"provider\":\"office\",\"responseBody\":\"{\\\"error\\\":\\\"invalid_client\\\",\\\"error_description\\\":\\\"AADSTS7000215: Invalid client secret provided. Ensure the secret being sent in the request is the client secret value, not the client secret ID, for a secret added to app 'bbcbb2ef-6200-4fae-82bd-d81f5dd738da'. Trace ID: a6d425e9-17c4-4184-bdce-460d37632900 Correlation ID: a12d7ccb-c8d3-4a1f-9094-e7ebd5ea33dd Timestamp: 2026-05-11 12:43:47Z\\\",\\\"error_codes\\\":[7000215],\\\"timestamp\\\":\\\"2026-05-11 12:43:47Z\\\",\\\"trace_id\\\":\\\"a6d425e9-17c4-4184-bdce-460d37632900\\\",\\\"correlation_id\\\":\\\"a12d7ccb-c8d3-4a1f-9094-e7ebd5ea33dd\\\",\\\"error_uri\\\":\\\"https://login.microsoftonline.com/error?code=7000215\\\"}\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:47] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:47] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1202,\"provider\":\"office\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:47] local.INFO: Calendar sync job dispatched {\"calendar_id\":501} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1300,\"provider\":\"google\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:47] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1300,\"provider\":\"google\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:47] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1300,\"provider\":\"google\",\"refreshToken\":\"4b811db0725fd9602a95943519a7da935e2a5065da7d9ebfcb170752e3e1ddb8\",\"state\":\"full-refresh\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:47] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1300,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Account has been deleted\"}} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:47] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:47] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1300,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1409,\"provider\":\"google\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:47] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1409,\"provider\":\"google\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:47] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1409,\"provider\":\"google\",\"refreshToken\":\"e2a3f2d06894894eed1ee87d9db1ace77d4d42ee6e1288a8940ad2c10333b0c4\",\"state\":\"full-refresh\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:48] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1409,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:48] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:48] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1409,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1352,\"provider\":\"google\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:48] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1352,\"provider\":\"google\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:48] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1352,\"provider\":\"google\",\"refreshToken\":\"dd4b16b00fdc1216da6b717c02338c073636e29162826b2de6db3f064fc029eb\",\"state\":\"full-refresh\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:48] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1352,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Token has been expired or revoked.\"}} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:48] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:48] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1352,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:49] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1296,\"provider\":\"office\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:49] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1296,\"provider\":\"office\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:49] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:49] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1296,\"provider\":\"office\",\"refreshToken\":\"011ae723c9d800c674e0b4be76f49fc046dac7d501b66c59ef0d9549cfa56ae5\",\"state\":\"full-refresh\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:49] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1296,\"provider\":\"office\",\"responseBody\":\"{\\\"error\\\":\\\"invalid_client\\\",\\\"error_description\\\":\\\"AADSTS7000215: Invalid client secret provided. Ensure the secret being sent in the request is the client secret value, not the client secret ID, for a secret added to app 'bbcbb2ef-6200-4fae-82bd-d81f5dd738da'. Trace ID: bbb5ab27-21e7-431e-af22-70d76afd2000 Correlation ID: 54cf5965-e49c-4fe8-aa09-dda16dbff35d Timestamp: 2026-05-11 12:43:49Z\\\",\\\"error_codes\\\":[7000215],\\\"timestamp\\\":\\\"2026-05-11 12:43:49Z\\\",\\\"trace_id\\\":\\\"bbb5ab27-21e7-431e-af22-70d76afd2000\\\",\\\"correlation_id\\\":\\\"54cf5965-e49c-4fe8-aa09-dda16dbff35d\\\",\\\"error_uri\\\":\\\"https://login.microsoftonline.com/error?code=7000215\\\"}\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:49] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:49] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1296,\"provider\":\"office\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:49] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"40fd25b6-942d-452d-a499-5bc1f4c4df76\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:49] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"40fd25b6-942d-452d-a499-5bc1f4c4df76\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:49] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"40fd25b6-942d-452d-a499-5bc1f4c4df76\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:49] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":391,\"provider\":\"office\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:50] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":391,\"provider\":\"office\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:50] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":391,\"provider\":\"office\",\"refreshToken\":\"00045eebae0f39b34887c6d53f92ae78064f7145e1f4b67754aebd03cfb2d881\",\"state\":\"full-refresh\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:50] local.INFO: [Calendar] Processing sync {\"calendarId\":\"a33076c1-8d97-431a-99f0-85c9524e118b\",\"from\":null,\"to\":null,\"delta\":\"CIiFh8TP44kDEIiFh8TP44kDGAUgkZvkzgIokZvkzgI=\",\"last_sync\":\"2024-12-09 07:12:53\",\"dateMode\":\"daily\"} {\"correlation_id\":\"40fd25b6-942d-452d-a499-5bc1f4c4df76\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"integration-app\",\"crm_owner\":1695,\"team_id\":3143} {\"correlation_id\":\"40fd25b6-942d-452d-a499-5bc1f4c4df76\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"40fd25b6-942d-452d-a499-5bc1f4c4df76\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"40fd25b6-942d-452d-a499-5bc1f4c4df76\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"40fd25b6-942d-452d-a499-5bc1f4c4df76\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:51] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":391,\"provider\":\"office\",\"responseBody\":\"{\\\"error\\\":\\\"invalid_client\\\",\\\"error_description\\\":\\\"AADSTS7000215: Invalid client secret provided. Ensure the secret being sent in the request is the client secret value, not the client secret ID, for a secret added to app 'bbcbb2ef-6200-4fae-82bd-d81f5dd738da'. Trace ID: 6339256e-38ea-40db-ac5d-43636f5e2700 Correlation ID: 64f01bfb-a8c3-4ce2-ac10-79d2d9da1c9e Timestamp: 2026-05-11 12:43:51Z\\\",\\\"error_codes\\\":[7000215],\\\"timestamp\\\":\\\"2026-05-11 12:43:51Z\\\",\\\"trace_id\\\":\\\"6339256e-38ea-40db-ac5d-43636f5e2700\\\",\\\"correlation_id\\\":\\\"64f01bfb-a8c3-4ce2-ac10-79d2d9da1c9e\\\",\\\"error_uri\\\":\\\"https://login.microsoftonline.com/error?code=7000215\\\"}\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:51] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:51] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":391,\"provider\":\"office\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:51] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1271,\"provider\":\"office\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:51] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1271,\"provider\":\"office\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:51] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:51] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1271,\"provider\":\"office\",\"refreshToken\":\"118cde2c06993147b07ccaec4cbcd5026a819dea6c71081166a492933e392afb\",\"state\":\"full-refresh\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:52] local.INFO: [Google Calendar] Failed to watch channel for calendar {\"calendarId\":\"a33076c1-8d97-431a-99f0-85c9524e118b\",\"code\":400,\"reason\":\"{\n \\\"error\\\": {\n \\\"errors\\\": [\n {\n \\\"domain\\\": \\\"global\\\",\n \\\"reason\\\": \\\"push.webhookUrlNotHttps\\\",\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n ],\n \\\"code\\\": 400,\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n}\"} {\"correlation_id\":\"40fd25b6-942d-452d-a499-5bc1f4c4df76\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:52] local.WARNING: [Calendar] Sync failed {\"calendarId\":\"a33076c1-8d97-431a-99f0-85c9524e118b\",\"code\":400,\"reason\":\"{\n \\\"error\\\": {\n \\\"errors\\\": [\n {\n \\\"domain\\\": \\\"global\\\",\n \\\"reason\\\": \\\"push.webhookUrlNotHttps\\\",\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n ],\n \\\"code\\\": 400,\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n}\"} {\"correlation_id\":\"40fd25b6-942d-452d-a499-5bc1f4c4df76\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:52] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1271,\"provider\":\"office\",\"responseBody\":\"{\\\"error\\\":\\\"invalid_client\\\",\\\"error_description\\\":\\\"AADSTS7000215: Invalid client secret provided. Ensure the secret being sent in the request is the client secret value, not the client secret ID, for a secret added to app 'bbcbb2ef-6200-4fae-82bd-d81f5dd738da'. Trace ID: 74008ab8-d6b6-462b-bd0e-92074db42800 Correlation ID: 276f953a-0988-461d-9422-a1978e679265 Timestamp: 2026-05-11 12:43:52Z\\\",\\\"error_codes\\\":[7000215],\\\"timestamp\\\":\\\"2026-05-11 12:43:52Z\\\",\\\"trace_id\\\":\\\"74008ab8-d6b6-462b-bd0e-92074db42800\\\",\\\"correlation_id\\\":\\\"276f953a-0988-461d-9422-a1978e679265\\\",\\\"error_uri\\\":\\\"https://login.microsoftonline.com/error?code=7000215\\\"}\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:52] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:52] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1271,\"provider\":\"office\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:52] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1351,\"provider\":\"google\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:52] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1351,\"provider\":\"google\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:52] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:52] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1351,\"provider\":\"google\",\"refreshToken\":\"4271d15b9e60a606439caddc68337f783e472c85b03dacff14d1b6dfded9051c\",\"state\":\"full-refresh\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:52] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1351,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:52] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:52] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1351,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:53] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1366,\"provider\":\"google\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:53] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1366,\"provider\":\"google\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:53] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:53] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1366,\"provider\":\"google\",\"refreshToken\":\"ae21385059b2eebfd43f68aecd56eccd702a1aabb6598f1f7ab594ed8af491b4\",\"state\":\"full-refresh\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:53] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1366,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:53] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:53] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1366,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:53] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:53] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:53] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:53] local.INFO: Calendar sync job dispatched {\"calendar_id\":378} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:53] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1421,\"provider\":\"office\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:53] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1421,\"provider\":\"office\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:53] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:53] local.INFO: Calendar sync job dispatched {\"calendar_id\":504} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:53] local.NOTICE: Calendar sync end {\"retrieved_calendars\":31,\"processed_calendars\":3} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:53] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"calendar:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":62.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:54] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"7cd50d04-9c09-477a-926b-83061b568c0e\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:54] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"7cd50d04-9c09-477a-926b-83061b568c0e\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:54] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7cd50d04-9c09-477a-926b-83061b568c0e\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:54] local.INFO: [Calendar] Processing sync {\"calendarId\":\"2676cb6d-f86c-427e-bf78-591e388e3c1e\",\"from\":null,\"to\":null,\"delta\":\"CJ_x49O3jpIDEJ_x49O3jpIDGAUgw67KlwMow67KlwM=\",\"last_sync\":\"2026-01-19 07:48:40\",\"dateMode\":\"daily\"} {\"correlation_id\":\"7cd50d04-9c09-477a-926b-83061b568c0e\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:54] local.WARNING: [Pipedrive] Account not connected for user {\"userId\":\"e6538737-e7b4-455f-a37a-3e79b665a220\",\"account\":{\"Jiminny\\\\Models\\\\SocialAccount\":{\"id\":1116,\"sociable_id\":241,\"provider_user_id\":\"19555731\",\"expires\":1775683749,\"refresh_token_expires\":null,\"provider\":\"pipedrive\",\"state\":\"full-refresh\",\"auth_scope\":\"base,deals:full,activities:full,contacts:full,search:read\",\"retry_after\":null,\"created_at\":\"2023-09-08 09:44:29\",\"updated_at\":\"2026-04-08 22:58:34\"}}} {\"correlation_id\":\"7cd50d04-9c09-477a-926b-83061b568c0e\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:54] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"pipedrive\",\"crm_owner\":241,\"team_id\":19} {\"correlation_id\":\"7cd50d04-9c09-477a-926b-83061b568c0e\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:55] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"pipedrive\",\"team_id\":19} {\"correlation_id\":\"7cd50d04-9c09-477a-926b-83061b568c0e\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:55] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"pipedrive\",\"team_id\":19} {\"correlation_id\":\"7cd50d04-9c09-477a-926b-83061b568c0e\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:55] local.WARNING: [Calendar] CRM disconnected for user so events will not be matched {\"provider\":\"pipedrive\",\"user_id\":241,\"message\":\"Your Pipedrive account has become disconnected. Please login to Jiminny to reconnect.\"} {\"correlation_id\":\"7cd50d04-9c09-477a-926b-83061b568c0e\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:55] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"7cd50d04-9c09-477a-926b-83061b568c0e\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:55] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"7cd50d04-9c09-477a-926b-83061b568c0e\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:55] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7cd50d04-9c09-477a-926b-83061b568c0e\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:56] local.INFO: [Google Calendar] Failed to watch channel for calendar {\"calendarId\":\"2676cb6d-f86c-427e-bf78-591e388e3c1e\",\"code\":400,\"reason\":\"{\n \\\"error\\\": {\n \\\"errors\\\": [\n {\n \\\"domain\\\": \\\"global\\\",\n \\\"reason\\\": \\\"push.webhookUrlNotHttps\\\",\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n ],\n \\\"code\\\": 400,\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n}\"} {\"correlation_id\":\"7cd50d04-9c09-477a-926b-83061b568c0e\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:56] local.WARNING: [Calendar] Sync failed {\"calendarId\":\"2676cb6d-f86c-427e-bf78-591e388e3c1e\",\"code\":400,\"reason\":\"{\n \\\"error\\\": {\n \\\"errors\\\": [\n {\n \\\"domain\\\": \\\"global\\\",\n \\\"reason\\\": \\\"push.webhookUrlNotHttps\\\",\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n ],\n \\\"code\\\": 400,\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n}\"} {\"correlation_id\":\"7cd50d04-9c09-477a-926b-83061b568c0e\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:56] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1421,\"provider\":\"office\"} {\"correlation_id\":\"6d26c44e-025d-4aa5-9db6-304a3df2e60a\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:56] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1421,\"provider\":\"office\"} {\"correlation_id\":\"6d26c44e-025d-4aa5-9db6-304a3df2e60a\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:56] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"6d26c44e-025d-4aa5-9db6-304a3df2e60a\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:56] local.INFO: [Calendar] Processing sync {\"calendarId\":\"9e8b1a2c-1a8f-42bd-b161-810fc0baf540\",\"from\":null,\"to\":null,\"delta\":\"R0usmcdvmMuZCBYV0hguCLlvcOB4kXlhlC7KgH1SnZwTrZ3faZv1fXPQqJhxe_L9AxWWlb-wASsjGiiWlhsBUg9MFb3ZdlAYerVV_ZirRPbsKWCxEXhybD90arJmok_M4ecGFUQ9_BIGu-c6RAnJy2TRKZ7gPTsJi_8TGceGAuqimlhm4G4mjDLvYVVwImjjU7M3xJvUzL47dLOGNTJCww.k1TST0VEYCgbFOkwa3ysYMi100FtVfkzfqlXLnV6gPg\",\"last_sync\":\"2026-05-11 06:13:36\",\"dateMode\":\"daily\"} {\"correlation_id\":\"6d26c44e-025d-4aa5-9db6-304a3df2e60a\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:56] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6d26c44e-025d-4aa5-9db6-304a3df2e60a\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:56] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6d26c44e-025d-4aa5-9db6-304a3df2e60a\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:56] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"6d26c44e-025d-4aa5-9db6-304a3df2e60a\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:56] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":89,\"team_id\":2} {\"correlation_id\":\"6d26c44e-025d-4aa5-9db6-304a3df2e60a\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:56] local.INFO: [MS Office Calendar] Skipping delta sync for daily mode {\"calendarId\":\"9e8b1a2c-1a8f-42bd-b161-810fc0baf540\"} {\"correlation_id\":\"6d26c44e-025d-4aa5-9db6-304a3df2e60a\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:44:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"8990bbf5-fe82-4fc9-9f98-9bcbfe128b3d\",\"trace_id\":\"963c0e14-5a90-4dc5-897f-999638900693\"}\n[2026-05-11 12:44:12] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"8990bbf5-fe82-4fc9-9f98-9bcbfe128b3d\",\"trace_id\":\"963c0e14-5a90-4dc5-897f-999638900693\"}\n[2026-05-11 12:44:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"8990bbf5-fe82-4fc9-9f98-9bcbfe128b3d\",\"trace_id\":\"963c0e14-5a90-4dc5-897f-999638900693\"}\n[2026-05-11 12:44:20] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"264eaef0-8cf2-49f1-bbbe-f869bf6cb3f6\",\"trace_id\":\"88508bd1-bce7-4b1e-a92c-f419f8a61a05\"}\n[2026-05-11 12:44:21] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"264eaef0-8cf2-49f1-bbbe-f869bf6cb3f6\",\"trace_id\":\"88508bd1-bce7-4b1e-a92c-f419f8a61a05\"}\n[2026-05-11 12:44:27] local.NOTICE: Monitoring start {\"correlation_id\":\"076d8dfb-b606-4b64-ac62-05d43c7a9584\",\"trace_id\":\"08e2935b-b45a-487f-953b-84f192d16c45\"}\n[2026-05-11 12:44:27] local.NOTICE: Monitoring end {\"correlation_id\":\"076d8dfb-b606-4b64-ac62-05d43c7a9584\",\"trace_id\":\"08e2935b-b45a-487f-953b-84f192d16c45\"}\n[2026-05-11 12:44:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"b7d17dde-90f3-4ecc-aaa6-8a93b434400a\",\"trace_id\":\"0e4b70cb-134f-4b43-b2a5-7b69d013955a\"}\n[2026-05-11 12:44:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"b7d17dde-90f3-4ecc-aaa6-8a93b434400a\",\"trace_id\":\"0e4b70cb-134f-4b43-b2a5-7b69d013955a\"}\n[2026-05-11 12:44:36] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"24d2f8b7-8afe-45d0-aa11-bf66316b3396\",\"trace_id\":\"8ba3def8-73d4-42a8-ae24-b873deef890a\"}\n[2026-05-11 12:44:36] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"24d2f8b7-8afe-45d0-aa11-bf66316b3396\",\"trace_id\":\"8ba3def8-73d4-42a8-ae24-b873deef890a\"}\n[2026-05-11 12:44:36] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"24d2f8b7-8afe-45d0-aa11-bf66316b3396\",\"trace_id\":\"8ba3def8-73d4-42a8-ae24-b873deef890a\"}\n[2026-05-11 12:44:36] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"24d2f8b7-8afe-45d0-aa11-bf66316b3396\",\"trace_id\":\"8ba3def8-73d4-42a8-ae24-b873deef890a\"}\n[2026-05-11 12:44:45] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"6cdf9b19-d16c-47c1-b0de-8116efc85c5a\",\"trace_id\":\"94ac9ff3-f5ec-4648-bf9d-3deed123642b\"}\n[2026-05-11 12:44:45] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 12:42:00, 2026-05-11 12:44:00] {\"correlation_id\":\"6cdf9b19-d16c-47c1-b0de-8116efc85c5a\",\"trace_id\":\"94ac9ff3-f5ec-4648-bf9d-3deed123642b\"}\n[2026-05-11 12:44:45] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 12:42:00, 2026-05-11 12:44:00] {\"correlation_id\":\"6cdf9b19-d16c-47c1-b0de-8116efc85c5a\",\"trace_id\":\"94ac9ff3-f5ec-4648-bf9d-3deed123642b\"}\n[2026-05-11 12:44:45] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"6cdf9b19-d16c-47c1-b0de-8116efc85c5a\",\"trace_id\":\"94ac9ff3-f5ec-4648-bf9d-3deed123642b\"}\n[2026-05-11 12:44:52] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:sync-objects\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"3cd389bc-e54a-429e-834e-61b19ac63e23\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:44:53] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:sync-objects\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"3cd389bc-e54a-429e-834e-61b19ac63e23\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:44:54] local.INFO: [SyncObjects] Before memory usage: {\"team\":\"6473c918-d8db-4ded-a52b-4febfd7b7c02\",\"usage\":23826968,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"20627cae-ebc4-490c-84c0-68ffc23207d6\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:44:54] local.WARNING: [Salesforce] Account not connected for user {\"userId\":\"641f1acb-16b8-42d1-8726-df52979dad0e\",\"account\":{\"Jiminny\\\\Models\\\\SocialAccount\":{\"id\":1500,\"sociable_id\":143,\"provider_user_id\":\"0052g000003frelAAA\",\"expires\":null,\"refresh_token_expires\":null,\"provider\":\"salesforce\",\"state\":\"full-refresh\",\"auth_scope\":\"refresh_token web api\",\"retry_after\":null,\"created_at\":\"2026-02-06 08:39:03\",\"updated_at\":\"2026-04-28 06:31:37\"}}} {\"correlation_id\":\"20627cae-ebc4-490c-84c0-68ffc23207d6\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:44:54] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"salesforce\",\"crm_owner\":143,\"team_id\":1} {\"correlation_id\":\"20627cae-ebc4-490c-84c0-68ffc23207d6\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:44:54] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"salesforce\",\"team_id\":1} {\"correlation_id\":\"20627cae-ebc4-490c-84c0-68ffc23207d6\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:44:54] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"salesforce\",\"team_id\":1} {\"correlation_id\":\"20627cae-ebc4-490c-84c0-68ffc23207d6\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:44:54] local.INFO: [SyncObjects] Sync finished {\"team\":\"6473c918-d8db-4ded-a52b-4febfd7b7c02\",\"provider\":\"salesforce\",\"status\":\"disconnected\",\"duration_ms\":245.51,\"usage\":23902576,\"real_usage\":62914560,\"pid\":74083,\"reason\":\"Your Salesforce account has become disconnected. Please login to Jiminny to reconnect.\"} {\"correlation_id\":\"20627cae-ebc4-490c-84c0-68ffc23207d6\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:44:55] local.INFO: [SyncObjects] Before memory usage: {\"team\":\"51467630-d89d-480b-be20-933e64a042f7\",\"usage\":23858368,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"c995f539-efe5-41d5-a336-2c8a67f5c975\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:44:55] local.WARNING: [Pipedrive] Account not connected for user {\"userId\":\"e6538737-e7b4-455f-a37a-3e79b665a220\",\"account\":{\"Jiminny\\\\Models\\\\SocialAccount\":{\"id\":1116,\"sociable_id\":241,\"provider_user_id\":\"19555731\",\"expires\":1775683749,\"refresh_token_expires\":null,\"provider\":\"pipedrive\",\"state\":\"full-refresh\",\"auth_scope\":\"base,deals:full,activities:full,contacts:full,search:read\",\"retry_after\":null,\"created_at\":\"2023-09-08 09:44:29\",\"updated_at\":\"2026-04-08 22:58:34\"}}} {\"correlation_id\":\"c995f539-efe5-41d5-a336-2c8a67f5c975\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:44:55] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"pipedrive\",\"crm_owner\":241,\"team_id\":19} {\"correlation_id\":\"c995f539-efe5-41d5-a336-2c8a67f5c975\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:44:55] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"pipedrive\",\"team_id\":19} {\"correlation_id\":\"c995f539-efe5-41d5-a336-2c8a67f5c975\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:44:55] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"pipedrive\",\"team_id\":19} {\"correlation_id\":\"c995f539-efe5-41d5-a336-2c8a67f5c975\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:44:55] local.INFO: [SyncObjects] Sync finished {\"team\":\"51467630-d89d-480b-be20-933e64a042f7\",\"provider\":\"pipedrive\",\"status\":\"disconnected\",\"duration_ms\":29.94,\"usage\":23933456,\"real_usage\":62914560,\"pid\":74083,\"reason\":\"Your Pipedrive account has become disconnected. Please login to Jiminny to reconnect.\"} {\"correlation_id\":\"c995f539-efe5-41d5-a336-2c8a67f5c975\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:44:57] local.INFO: [SyncObjects] Before memory usage: {\"team\":\"396ed57c-e3c4-49be-8290-37c32955f7c7\",\"usage\":23888624,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"ee83be84-ab68-4f0d-94c9-90e2198525ed\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:44:57] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"copper\",\"crm_owner\":333,\"team_id\":27} {\"correlation_id\":\"ee83be84-ab68-4f0d-94c9-90e2198525ed\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:44:58] local.NOTICE: Leads unavailable {\"method\":\"POST\",\"endpoint\":\"leads/search\",\"options\":[],\"body\":{\"minimum_modified_date\":1778498133,\"sort_by\":\"date_modified\",\"page_number\":1},\"status_code\":403,\"error\":\"{\\\"success\\\":false,\\\"status\\\":403,\\\"message\\\":\\\"Feature not enabled\\\"}\"} {\"correlation_id\":\"ee83be84-ab68-4f0d-94c9-90e2198525ed\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:44:58] local.INFO: [SyncObjects] Sync finished {\"team\":\"396ed57c-e3c4-49be-8290-37c32955f7c7\",\"provider\":\"copper\",\"status\":\"completed\",\"duration_ms\":1373.31,\"usage\":24034976,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"ee83be84-ab68-4f0d-94c9-90e2198525ed\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:44:59] local.INFO: [SyncObjects] Before memory usage: {\"team\":\"fda3cbdf-1117-4ba5-86f8-775f548b3a28\",\"usage\":24016464,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"834e0e1f-df57-4af7-a21d-846b86053c63\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:44:59] local.WARNING: [Pipedrive] Account not connected for user {\"userId\":\"e6538737-e7b4-455f-a37a-3e79b665a220\",\"account\":{\"Jiminny\\\\Models\\\\SocialAccount\":{\"id\":1116,\"sociable_id\":241,\"provider_user_id\":\"19555731\",\"expires\":1775683749,\"refresh_token_expires\":null,\"provider\":\"pipedrive\",\"state\":\"full-refresh\",\"auth_scope\":\"base,deals:full,activities:full,contacts:full,search:read\",\"retry_after\":null,\"created_at\":\"2023-09-08 09:44:29\",\"updated_at\":\"2026-04-08 22:58:34\"}}} {\"correlation_id\":\"834e0e1f-df57-4af7-a21d-846b86053c63\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:44:59] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"pipedrive\",\"crm_owner\":241,\"team_id\":28} {\"correlation_id\":\"834e0e1f-df57-4af7-a21d-846b86053c63\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:44:59] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"pipedrive\",\"team_id\":28} {\"correlation_id\":\"834e0e1f-df57-4af7-a21d-846b86053c63\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:44:59] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"pipedrive\",\"team_id\":28} {\"correlation_id\":\"834e0e1f-df57-4af7-a21d-846b86053c63\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:44:59] local.INFO: [SyncObjects] Sync finished {\"team\":\"fda3cbdf-1117-4ba5-86f8-775f548b3a28\",\"provider\":\"pipedrive\",\"status\":\"disconnected\",\"duration_ms\":22.59,\"usage\":24061248,\"real_usage\":62914560,\"pid\":74083,\"reason\":\"Your Pipedrive account has become disconnected. Please login to Jiminny to reconnect.\"} {\"correlation_id\":\"834e0e1f-df57-4af7-a21d-846b86053c63\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:45:02] local.INFO: [SyncObjects] Before memory usage: {\"team\":\"3ff5a02a-86fb-4357-b1d6-a04e26c38602\",\"usage\":24016592,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"bbdd00c8-2b7f-4e38-aff0-b4fc633883e8\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:45:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1219,\"provider\":\"close\"} {\"correlation_id\":\"bbdd00c8-2b7f-4e38-aff0-b4fc633883e8\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:45:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1219,\"provider\":\"close\"} {\"correlation_id\":\"bbdd00c8-2b7f-4e38-aff0-b4fc633883e8\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:45:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"bbdd00c8-2b7f-4e38-aff0-b4fc633883e8\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:45:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"close\",\"crm_owner\":257,\"team_id\":31} {\"correlation_id\":\"bbdd00c8-2b7f-4e38-aff0-b4fc633883e8\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:45:03] local.INFO: [SyncObjects] Sync finished {\"team\":\"3ff5a02a-86fb-4357-b1d6-a04e26c38602\",\"provider\":\"close\",\"status\":\"completed\",\"duration_ms\":1398.26,\"usage\":24109464,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"bbdd00c8-2b7f-4e38-aff0-b4fc633883e8\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:45:03] local.INFO: [SyncObjects] Before memory usage: {\"team\":\"1640a0ac-19da-4c3b-90f7-87525f07a6d2\",\"usage\":24088104,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"9cd80d28-db07-49ed-a1c2-f8a0e365bf9c\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:45:03] local.WARNING: [Bullhorn] Account not connected for user {\"userId\":\"941d12a6-e84f-4c3a-a4c8-2ef433792095\",\"account\":{\"Jiminny\\\\Models\\\\SocialAccount\":{\"id\":348,\"sociable_id\":121,\"provider_user_id\":null,\"expires\":1733727508,\"refresh_token_expires\":null,\"provider\":\"bullhorn\",\"state\":\"full-refresh\",\"auth_scope\":null,\"retry_after\":null,\"created_at\":\"2021-04-06 11:07:26\",\"updated_at\":\"2024-12-09 15:10:40\"}}} {\"correlation_id\":\"9cd80d28-db07-49ed-a1c2-f8a0e365bf9c\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:45:03] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"bullhorn\",\"crm_owner\":121,\"team_id\":36} {\"correlation_id\":\"9cd80d28-db07-49ed-a1c2-f8a0e365bf9c\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:45:03] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"bullhorn\",\"team_id\":36} {\"correlation_id\":\"9cd80d28-db07-49ed-a1c2-f8a0e365bf9c\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:45:03] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"bullhorn\",\"team_id\":36} {\"correlation_id\":\"9cd80d28-db07-49ed-a1c2-f8a0e365bf9c\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:45:03] local.INFO: [SyncObjects] Sync finished {\"team\":\"1640a0ac-19da-4c3b-90f7-87525f07a6d2\",\"provider\":\"bullhorn\",\"status\":\"disconnected\",\"duration_ms\":31.33,\"usage\":24168832,\"real_usage\":62914560,\"pid\":74083,\"reason\":\"Your Bullhorn account has become disconnected. Please login to Jiminny to reconnect.\"} {\"correlation_id\":\"9cd80d28-db07-49ed-a1c2-f8a0e365bf9c\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:45:05] local.INFO: [SyncObjects] Before memory usage: {\"team\":\"0c33bf2d-1c77-4200-8ed6-6147ad444c30\",\"usage\":24125848,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"d4d95c14-a0d0-4b77-8132-cf61a864d641\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:45:05] local.WARNING: [Salesforce] Account not connected for user {\"userId\":\"ed89227b-e364-4dfb-b4bf-343f154bf21e\",\"account\":{\"Jiminny\\\\Models\\\\SocialAccount\":{\"id\":1360,\"sociable_id\":245,\"provider_user_id\":\"0052g000003frZNAAY\",\"expires\":null,\"refresh_token_expires\":null,\"provider\":\"salesforce\",\"state\":\"full-refresh\",\"auth_scope\":\"refresh_token web api\",\"retry_after\":null,\"created_at\":\"2024-09-02 06:11:55\",\"updated_at\":\"2024-12-11 08:50:23\"}}} {\"correlation_id\":\"d4d95c14-a0d0-4b77-8132-cf61a864d641\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:45:05] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"salesforce\",\"crm_owner\":245,\"team_id\":59} {\"correlation_id\":\"d4d95c14-a0d0-4b77-8132-cf61a864d641\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:45:05] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"salesforce\",\"team_id\":59} {\"correlation_id\":\"d4d95c14-a0d0-4b77-8132-cf61a864d641\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:45:05] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"salesforce\",\"team_id\":59} {\"correlation_id\":\"d4d95c14-a0d0-4b77-8132-cf61a864d641\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:45:05] local.INFO: [SyncObjects] Sync finished {\"team\":\"0c33bf2d-1c77-4200-8ed6-6147ad444c30\",\"provider\":\"salesforce\",\"status\":\"disconnected\",\"duration_ms\":61.68,\"usage\":24167888,\"real_usage\":62914560,\"pid\":74083,\"reason\":\"Your Salesforce account has become disconnected. Please login to Jiminny to reconnect.\"} {\"correlation_id\":\"d4d95c14-a0d0-4b77-8132-cf61a864d641\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:45:07] local.INFO: [SyncObjects] Before memory usage: {\"team\":\"1ece66c8-feb1-4df1-b321-21607daf4623\",\"usage\":24126032,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"e215d2bc-60f6-4dc5-b809-f670db7857a7\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:45:07] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"integration-app\",\"crm_owner\":1695,\"team_id\":3143} {\"correlation_id\":\"e215d2bc-60f6-4dc5-b809-f670db7857a7\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:45:07] local.INFO: [integration-app] Syncing opportunities {\"parameters\":{\"since\":\"2026-05-11 11:15:42\",\"strategy\":\"lastModified\"},\"team_id\":3143} {\"correlation_id\":\"e215d2bc-60f6-4dc5-b809-f670db7857a7\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:45:08] local.INFO: [integration-app] Request {\"request\":\"POST connections/zohocrm/actions/query-deals/run\",\"full_target\":\"connections/zohocrm/actions/query-deals/run\"} {\"correlation_id\":\"e215d2bc-60f6-4dc5-b809-f670db7857a7\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:45:09] local.INFO: [integration-app] Syncing opportunities finished successfully {\"parameters\":{\"since\":\"2026-05-11 11:15:42\",\"strategy\":\"lastModified\"},\"team_id\":3143} {\"correlation_id\":\"e215d2bc-60f6-4dc5-b809-f670db7857a7\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:45:09] local.INFO: [integration-app] Syncing accounts {\"since\":\"2026-05-11 11:15:42\",\"to\":null,\"team_id\":3143} {\"correlation_id\":\"e215d2bc-60f6-4dc5-b809-f670db7857a7\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:45:09] local.INFO: [integration-app] Request {\"request\":\"POST connections/zohocrm/actions/query-companies/run\",\"full_target\":\"connections/zohocrm/actions/query-companies/run\"} {\"correlation_id\":\"e215d2bc-60f6-4dc5-b809-f670db7857a7\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:45:10] local.INFO: [integration-app] Syncing accounts finished successfully {\"since\":\"2026-05-11 11:15:42\",\"to\":null,\"team_id\":3143} {\"correlation_id\":\"e215d2bc-60f6-4dc5-b809-f670db7857a7\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:45:10] local.INFO: [integration-app] Syncing contacts {\"since\":\"2026-05-11 11:15:42\",\"to\":null,\"team_id\":3143} {\"correlation_id\":\"e215d2bc-60f6-4dc5-b809-f670db7857a7\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:45:10] local.INFO: [integration-app] Request {\"request\":\"POST connections/zohocrm/actions/query-contacts/run\",\"full_target\":\"connections/zohocrm/actions/query-contacts/run\"} {\"correlation_id\":\"e215d2bc-60f6-4dc5-b809-f670db7857a7\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:45:11] local.INFO: [integration-app] Syncing contacts finished successfully {\"since\":\"2026-05-11 11:15:42\",\"to\":null,\"team_id\":3143} {\"correlation_id\":\"e215d2bc-60f6-4dc5-b809-f670db7857a7\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:45:11] local.INFO: [integration-app] Syncing leads {\"since\":\"2026-05-11 11:15:42\",\"to\":null,\"crm_profile_id\":null,\"team_id\":3143} {\"correlation_id\":\"e215d2bc-60f6-4dc5-b809-f670db7857a7\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:45:11] local.INFO: [integration-app] Request {\"request\":\"POST connections/zohocrm/actions/get-converted-leads/run\",\"full_target\":\"connections/zohocrm/actions/get-converted-leads/run\"} {\"correlation_id\":\"e215d2bc-60f6-4dc5-b809-f670db7857a7\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:45:13] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"86d4039f-24a6-43fd-bdda-752cae55b075\",\"trace_id\":\"7be880af-d46e-49f8-82b8-5924fe620442\"}\n[2026-05-11 12:45:13] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"86d4039f-24a6-43fd-bdda-752cae55b075\",\"trace_id\":\"7be880af-d46e-49f8-82b8-5924fe620442\"}\n[2026-05-11 12:45:13] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"86d4039f-24a6-43fd-bdda-752cae55b075\",\"trace_id\":\"7be880af-d46e-49f8-82b8-5924fe620442\"}\n[2026-05-11 12:45:13] local.INFO: [integration-app] Syncing leads finished successfully {\"since\":\"2026-05-11 11:15:42\",\"to\":null,\"team_id\":3143} {\"correlation_id\":\"e215d2bc-60f6-4dc5-b809-f670db7857a7\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:45:13] local.INFO: [SyncObjects] Sync finished {\"team\":\"1ece66c8-feb1-4df1-b321-21607daf4623\",\"provider\":\"integration-app\",\"status\":\"completed\",\"duration_ms\":5628.24,\"usage\":24337344,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"e215d2bc-60f6-4dc5-b809-f670db7857a7\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:45:17] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"408e342b-f48d-464d-84a3-8a4fccff3720\",\"trace_id\":\"f72d4043-f5b5-4773-85ed-ca1d8da6b7e7\"}\n[2026-05-11 12:45:17] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"408e342b-f48d-464d-84a3-8a4fccff3720\",\"trace_id\":\"f72d4043-f5b5-4773-85ed-ca1d8da6b7e7\"}\n[2026-05-11 12:45:20] local.NOTICE: Monitoring start {\"correlation_id\":\"2d30be47-b0b1-4e0a-b8b5-cd450202880d\",\"trace_id\":\"2812bffa-9229-43fc-bbf6-79cecea5c925\"}\n[2026-05-11 12:45:20] local.NOTICE: Monitoring end {\"correlation_id\":\"2d30be47-b0b1-4e0a-b8b5-cd450202880d\",\"trace_id\":\"2812bffa-9229-43fc-bbf6-79cecea5c925\"}\n[2026-05-11 12:45:30] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"d3db8cbc-bb9a-4a2d-a094-4ea0466c8b3b\",\"trace_id\":\"90cf3c4c-ab26-4577-8c9f-afeec6330cf3\"}\n[2026-05-11 12:45:30] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"d3db8cbc-bb9a-4a2d-a094-4ea0466c8b3b\",\"trace_id\":\"90cf3c4c-ab26-4577-8c9f-afeec6330cf3\"}\n[2026-05-11 12:45:33] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"dcaeedfa-13dc-4116-b8ea-dcf12e1c01fc\",\"trace_id\":\"ff022c79-082a-428f-bafb-ffb1c1cfa583\"}\n[2026-05-11 12:45:33] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"dcaeedfa-13dc-4116-b8ea-dcf12e1c01fc\",\"trace_id\":\"ff022c79-082a-428f-bafb-ffb1c1cfa583\"}\n[2026-05-11 12:45:33] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"dcaeedfa-13dc-4116-b8ea-dcf12e1c01fc\",\"trace_id\":\"ff022c79-082a-428f-bafb-ffb1c1cfa583\"}\n[2026-05-11 12:45:33] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"dcaeedfa-13dc-4116-b8ea-dcf12e1c01fc\",\"trace_id\":\"ff022c79-082a-428f-bafb-ffb1c1cfa583\"}\n[2026-05-11 12:45:36] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"966e4c44-087d-46a6-9cc1-d9cbe31fee7e\",\"trace_id\":\"20472a61-b6d1-4335-a91a-368fbafc452e\"}\n[2026-05-11 12:45:36] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"966e4c44-087d-46a6-9cc1-d9cbe31fee7e\",\"trace_id\":\"20472a61-b6d1-4335-a91a-368fbafc452e\"}\n[2026-05-11 12:45:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"120cd5e3-0824-43eb-ac78-cfc38ef99d73\",\"trace_id\":\"5977250c-3d95-4c04-baf7-55d5f2c12db6\"}\n[2026-05-11 12:45:43] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"120cd5e3-0824-43eb-ac78-cfc38ef99d73\",\"trace_id\":\"5977250c-3d95-4c04-baf7-55d5f2c12db6\"}\n[2026-05-11 12:45:47] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"cae42dcc-2dd3-430c-8a91-ce40ceebaa20\",\"trace_id\":\"ee5c0be6-abb6-4129-b0f6-02a803f536b7\"}\n[2026-05-11 12:45:47] local.INFO: Running pre-meeting notification command {\"correlation_id\":\"cae42dcc-2dd3-430c-8a91-ce40ceebaa20\",\"trace_id\":\"ee5c0be6-abb6-4129-b0f6-02a803f536b7\"}\n[2026-05-11 12:45:47] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"cae42dcc-2dd3-430c-8a91-ce40ceebaa20\",\"trace_id\":\"ee5c0be6-abb6-4129-b0f6-02a803f536b7\"}\n[2026-05-11 12:45:50] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"ff52302f-91b3-46fa-b1e0-08224760b4f6\",\"trace_id\":\"50fa0fa6-afa3-475a-ba2d-d823f5597ede\"}\n[2026-05-11 12:45:50] local.INFO: Running conference:monitor:start command for activities in (2026-05-11 12:35:00, 2026-05-11 12:40:00] {\"correlation_id\":\"ff52302f-91b3-46fa-b1e0-08224760b4f6\",\"trace_id\":\"50fa0fa6-afa3-475a-ba2d-d823f5597ede\"}\n[2026-05-11 12:45:50] local.INFO: [conference:monitor:start] No activities found in (2026-05-11 12:35:00, 2026-05-11 12:40:00] {\"correlation_id\":\"ff52302f-91b3-46fa-b1e0-08224760b4f6\",\"trace_id\":\"50fa0fa6-afa3-475a-ba2d-d823f5597ede\"}\n[2026-05-11 12:45:50] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"ff52302f-91b3-46fa-b1e0-08224760b4f6\",\"trace_id\":\"50fa0fa6-afa3-475a-ba2d-d823f5597ede\"}\n[2026-05-11 12:45:57] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"767c4ea3-2863-4b86-bddd-47d0d543b9cd\",\"trace_id\":\"b8d4a913-b7f0-476b-a2f7-587a6d25dbc2\"}\n[2026-05-11 12:45:57] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesEnded {\"from\":\"12:40\",\"to\":\"12:45\"} {\"correlation_id\":\"767c4ea3-2863-4b86-bddd-47d0d543b9cd\",\"trace_id\":\"b8d4a913-b7f0-476b-a2f7-587a6d25dbc2\"}\n[2026-05-11 12:45:57] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesWithUnfinishedSession {\"from\":\"02:35\",\"to\":\"02:40\"} {\"correlation_id\":\"767c4ea3-2863-4b86-bddd-47d0d543b9cd\",\"trace_id\":\"b8d4a913-b7f0-476b-a2f7-587a6d25dbc2\"}\n[2026-05-11 12:45:57] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"767c4ea3-2863-4b86-bddd-47d0d543b9cd\",\"trace_id\":\"b8d4a913-b7f0-476b-a2f7-587a6d25dbc2\"}\n[2026-05-11 12:46:01] local.NOTICE: Repairing HubSpot tokens start {\"correlation_id\":\"888ff0f2-b31e-4121-8fc1-8f057f6c550b\",\"trace_id\":\"1d45272b-e1eb-4904-b319-678f93f40f58\"}\n[2026-05-11 12:46:01] local.INFO: Trying to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\"} {\"correlation_id\":\"888ff0f2-b31e-4121-8fc1-8f057f6c550b\",\"trace_id\":\"1d45272b-e1eb-4904-b319-678f93f40f58\"}\n[2026-05-11 12:46:01] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"888ff0f2-b31e-4121-8fc1-8f057f6c550b\",\"trace_id\":\"1d45272b-e1eb-4904-b319-678f93f40f58\"}\n[2026-05-11 12:46:01] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":59,\"provider\":\"hubspot\",\"refreshToken\":\"97b78f6e2cc49965c00c2492b602b02708b1392551e6b3f113fbaa48992af90b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"888ff0f2-b31e-4121-8fc1-8f057f6c550b\",\"trace_id\":\"1d45272b-e1eb-4904-b319-678f93f40f58\"}\n[2026-05-11 12:46:02] local.ERROR: Failed to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"888ff0f2-b31e-4121-8fc1-8f057f6c550b\",\"trace_id\":\"1d45272b-e1eb-4904-b319-678f93f40f58\"}\n[2026-05-11 12:46:02] local.INFO: Trying to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\"} {\"correlation_id\":\"888ff0f2-b31e-4121-8fc1-8f057f6c550b\",\"trace_id\":\"1d45272b-e1eb-4904-b319-678f93f40f58\"}\n[2026-05-11 12:46:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"888ff0f2-b31e-4121-8fc1-8f057f6c550b\",\"trace_id\":\"1d45272b-e1eb-4904-b319-678f93f40f58\"}\n[2026-05-11 12:46:02] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":306,\"provider\":\"hubspot\",\"refreshToken\":\"6fa6aa8cc641d131231acc3470f5c03cb3b07b2e580fb18f8acb3b1dbb72549b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"888ff0f2-b31e-4121-8fc1-8f057f6c550b\",\"trace_id\":\"1d45272b-e1eb-4904-b319-678f93f40f58\"}\n[2026-05-11 12:46:02] local.ERROR: Failed to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"888ff0f2-b31e-4121-8fc1-8f057f6c550b\",\"trace_id\":\"1d45272b-e1eb-4904-b319-678f93f40f58\"}\n[2026-05-11 12:46:02] local.INFO: Trying to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\"} {\"correlation_id\":\"888ff0f2-b31e-4121-8fc1-8f057f6c550b\",\"trace_id\":\"1d45272b-e1eb-4904-b319-678f93f40f58\"}\n[2026-05-11 12:46:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"888ff0f2-b31e-4121-8fc1-8f057f6c550b\",\"trace_id\":\"1d45272b-e1eb-4904-b319-678f93f40f58\"}\n[2026-05-11 12:46:02] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1372,\"provider\":\"hubspot\",\"refreshToken\":\"9aa73948c761da29dce46c177cf9aee1fde483a44169ca38723f9f0597d7a8c4\",\"state\":\"full-refresh\"} {\"correlation_id\":\"888ff0f2-b31e-4121-8fc1-8f057f6c550b\",\"trace_id\":\"1d45272b-e1eb-4904-b319-678f93f40f58\"}\n[2026-05-11 12:46:02] local.ERROR: Failed to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"888ff0f2-b31e-4121-8fc1-8f057f6c550b\",\"trace_id\":\"1d45272b-e1eb-4904-b319-678f93f40f58\"}\n[2026-05-11 12:46:02] local.NOTICE: Repairing HubSpot tokens end {\"total\":3,\"fixed\":0,\"failed\":3} {\"correlation_id\":\"888ff0f2-b31e-4121-8fc1-8f057f6c550b\",\"trace_id\":\"1d45272b-e1eb-4904-b319-678f93f40f58\"}\n[2026-05-11 12:46:09] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"90466c54-393f-4c2e-a698-9e7f83b50b53\",\"trace_id\":\"cf333f1c-f9d1-429f-83cb-463a4485d10b\"}\n[2026-05-11 12:46:09] local.INFO: [HubSpot Journal Command] Starting polling service {\"correlation_id\":\"7bd9aaef-eaa2-4ead-9b6a-a9ac5745fde7\",\"trace_id\":\"0c0fd329-f61e-4a18-8770-7b7214f3ce1e\"}\n[2026-05-11 12:46:09] local.INFO: [HubSpot Journal Polling] Service starting {\"memory_limit\":\"256M\",\"max_execution_time\":\"0\",\"initial_memory_mb\":60.0} {\"correlation_id\":\"7bd9aaef-eaa2-4ead-9b6a-a9ac5745fde7\",\"trace_id\":\"0c0fd329-f61e-4a18-8770-7b7214f3ce1e\"}\n[2026-05-11 12:46:09] local.INFO: [HubSpot Journal Polling] Acquired polling lock {\"expires_at\":\"2026-05-11T12:48:09.496609Z\"} {\"correlation_id\":\"7bd9aaef-eaa2-4ead-9b6a-a9ac5745fde7\",\"trace_id\":\"0c0fd329-f61e-4a18-8770-7b7214f3ce1e\"}\n[2026-05-11 12:46:09] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"90466c54-393f-4c2e-a698-9e7f83b50b53\",\"trace_id\":\"cf333f1c-f9d1-429f-83cb-463a4485d10b\"}\n[2026-05-11 12:46:09] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"7bd9aaef-eaa2-4ead-9b6a-a9ac5745fde7\",\"trace_id\":\"0c0fd329-f61e-4a18-8770-7b7214f3ce1e\"}\n[2026-05-11 12:46:15] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"7bd9aaef-eaa2-4ead-9b6a-a9ac5745fde7\",\"trace_id\":\"0c0fd329-f61e-4a18-8770-7b7214f3ce1e\"}\n[2026-05-11 12:46:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"e14cd84c-cf16-4462-99d7-b402b767783c\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:16] local.INFO: Dispatching activity sync job {\"import_id\":812738,\"provider\":\"twilio-flex\",\"team\":\"jiminny\"} {\"correlation_id\":\"e14cd84c-cf16-4462-99d7-b402b767783c\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:16] local.INFO: Dispatching activity sync job {\"import_id\":812739,\"provider\":\"xant\",\"team\":\"jiminny\"} {\"correlation_id\":\"e14cd84c-cf16-4462-99d7-b402b767783c\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:16] local.INFO: Dispatching activity sync job {\"import_id\":812740,\"provider\":\"apollo\",\"team\":\"jiminny\"} {\"correlation_id\":\"e14cd84c-cf16-4462-99d7-b402b767783c\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:16] local.INFO: Dispatching activity sync job {\"import_id\":812741,\"provider\":\"groove\",\"team\":\"jiminny\"} {\"correlation_id\":\"e14cd84c-cf16-4462-99d7-b402b767783c\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:16] local.INFO: Dispatching activity sync job {\"import_id\":812742,\"provider\":\"twilio-video\",\"team\":\"jiminny\"} {\"correlation_id\":\"e14cd84c-cf16-4462-99d7-b402b767783c\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:16] local.INFO: Dispatching activity sync job {\"import_id\":812743,\"provider\":\"hubspot\",\"team\":\"hubspot\"} {\"correlation_id\":\"e14cd84c-cf16-4462-99d7-b402b767783c\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"e14cd84c-cf16-4462-99d7-b402b767783c\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:19] local.WARNING: [Salesforce] Account not connected for user {\"userId\":\"cdf8b554-d951-4758-bc2b-c1b85d1cd0b9\",\"account\":null} {\"correlation_id\":\"314ab941-a2cf-4bf4-9fa6-75630ce5d14f\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:19] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"salesforce\",\"crm_owner\":3,\"team_id\":1} {\"correlation_id\":\"314ab941-a2cf-4bf4-9fa6-75630ce5d14f\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:19] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"salesforce\",\"team_id\":1} {\"correlation_id\":\"314ab941-a2cf-4bf4-9fa6-75630ce5d14f\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:19] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"salesforce\",\"team_id\":1} {\"correlation_id\":\"314ab941-a2cf-4bf4-9fa6-75630ce5d14f\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:19] local.ALERT: [SyncActivity] Failed {\"import_id\":812738,\"provider\":\"twilio-flex\",\"provider_id\":317,\"team\":\"jiminny\",\"team_id\":1,\"reason\":\"Social account for Salesforce cannot be found. Please login to Jiminny to connect.\",\"file\":\"/home/jiminny/app/Services/Crm/BaseService.php\",\"line\":646} {\"correlation_id\":\"314ab941-a2cf-4bf4-9fa6-75630ce5d14f\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:19] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"4a597ad0-48b3-45bc-8317-ec5987c035ee\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:19] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"4a597ad0-48b3-45bc-8317-ec5987c035ee\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:19] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4a597ad0-48b3-45bc-8317-ec5987c035ee\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:20] local.ALERT: [SyncActivity] Failed {\"import_id\":812739,\"provider\":\"xant\",\"provider_id\":161,\"team\":\"jiminny\",\"team_id\":1,\"reason\":\"Activity Provider account not connected.\",\"file\":\"/home/jiminny/app/Services/Activity/ActivityProviderService.php\",\"line\":174} {\"correlation_id\":\"4a597ad0-48b3-45bc-8317-ec5987c035ee\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"438da0cc-e01d-445c-895b-5346839e3876\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:20] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"438da0cc-e01d-445c-895b-5346839e3876\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"438da0cc-e01d-445c-895b-5346839e3876\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:20] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"7bd9aaef-eaa2-4ead-9b6a-a9ac5745fde7\",\"trace_id\":\"0c0fd329-f61e-4a18-8770-7b7214f3ce1e\"}\n[2026-05-11 12:46:21] local.ALERT: [SyncActivity] Failed {\"import_id\":812740,\"provider\":\"apollo\",\"provider_id\":441,\"team\":\"jiminny\",\"team_id\":1,\"reason\":\"Activity Provider account not connected.\",\"file\":\"/home/jiminny/app/Services/Activity/ActivityProviderService.php\",\"line\":174} {\"correlation_id\":\"438da0cc-e01d-445c-895b-5346839e3876\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:22] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"e272e968-331f-4a66-b4a7-f6f9f08c3515\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:22] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"e272e968-331f-4a66-b4a7-f6f9f08c3515\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:22] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e272e968-331f-4a66-b4a7-f6f9f08c3515\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:22] local.ALERT: [SyncActivity] Failed {\"import_id\":812741,\"provider\":\"groove\",\"provider_id\":228,\"team\":\"jiminny\",\"team_id\":1,\"reason\":\"Activity Provider account not connected.\",\"file\":\"/home/jiminny/app/Services/Activity/ActivityProviderService.php\",\"line\":174} {\"correlation_id\":\"e272e968-331f-4a66-b4a7-f6f9f08c3515\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:23] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"b9150205-8a0f-43b6-856e-2bff769ec03b\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:23] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"b9150205-8a0f-43b6-856e-2bff769ec03b\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:23] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b9150205-8a0f-43b6-856e-2bff769ec03b\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:24] local.ALERT: [SyncActivity] Failed {\"import_id\":812742,\"provider\":\"twilio-video\",\"provider_id\":243,\"team\":\"jiminny\",\"team_id\":1,\"reason\":\"Activity Provider account not connected.\",\"file\":\"/home/jiminny/app/Services/Activity/ActivityProviderService.php\",\"line\":174} {\"correlation_id\":\"b9150205-8a0f-43b6-856e-2bff769ec03b\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:24] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c7c02bd3-e1e5-4734-b70f-f6eb089120d1\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:24] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c7c02bd3-e1e5-4734-b70f-f6eb089120d1\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:24] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"c7c02bd3-e1e5-4734-b70f-f6eb089120d1\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:24] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":89,\"team_id\":2} {\"correlation_id\":\"c7c02bd3-e1e5-4734-b70f-f6eb089120d1\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:24] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":408,\"provider\":\"hubspot\"} {\"correlation_id\":\"c7c02bd3-e1e5-4734-b70f-f6eb089120d1\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:24] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":408,\"provider\":\"hubspot\"} {\"correlation_id\":\"c7c02bd3-e1e5-4734-b70f-f6eb089120d1\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:24] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"c7c02bd3-e1e5-4734-b70f-f6eb089120d1\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:24] local.INFO: [SyncActivity] Start {\"import_id\":812743,\"provider\":\"hubspot\",\"provider_id\":31,\"team\":\"hubspot\",\"team_id\":2} {\"correlation_id\":\"c7c02bd3-e1e5-4734-b70f-f6eb089120d1\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:24] local.INFO: [HubSpot] Search calls for period {\"from\":\"2026-05-11 12:29:00\",\"to\":\"2026-05-11 12:45:00\"} {\"correlation_id\":\"c7c02bd3-e1e5-4734-b70f-f6eb089120d1\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:25] local.INFO: [SyncActivity] End {\"import_id\":812743,\"provider\":\"hubspot\",\"provider_id\":31,\"team\":\"hubspot\",\"team_id\":2} {\"correlation_id\":\"c7c02bd3-e1e5-4734-b70f-f6eb089120d1\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:25] local.INFO: [SyncActivity] Memory usage {\"import_id\":812743,\"provider\":\"hubspot\",\"provider_id\":31,\"team\":\"hubspot\",\"team_id\":2,\"memory_usage\":25442000,\"memory_real_usage\":67108864,\"pid\":74086} {\"correlation_id\":\"c7c02bd3-e1e5-4734-b70f-f6eb089120d1\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:28] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"0346e786-2563-44fc-a13c-5f1787538233\",\"trace_id\":\"d839f681-855d-4f8d-a2ac-f6af79b8dca1\"}\n[2026-05-11 12:46:29] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"0346e786-2563-44fc-a13c-5f1787538233\",\"trace_id\":\"d839f681-855d-4f8d-a2ac-f6af79b8dca1\"}\n[2026-05-11 12:46:36] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"7bd9aaef-eaa2-4ead-9b6a-a9ac5745fde7\",\"trace_id\":\"0c0fd329-f61e-4a18-8770-7b7214f3ce1e\"}\n[2026-05-11 12:46:36] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"nudges:send\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"dee73d2c-bdd6-4e73-8303-9b915466101c\",\"trace_id\":\"8fb41652-d98b-4387-95ae-378e191d4765\"}\n[2026-05-11 12:46:36] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"nudges:send\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"dee73d2c-bdd6-4e73-8303-9b915466101c\",\"trace_id\":\"8fb41652-d98b-4387-95ae-378e191d4765\"}\n[2026-05-11 12:46:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"jiminny:playlists:normalize-sort\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"7f4c99a0-a910-4165-b826-2fec7c4111df\",\"trace_id\":\"f498d542-27b5-4668-8f81-9c19f3b82469\"}\n[2026-05-11 12:46:42] local.INFO: [Jiminny\\Component\\Playlist\\Command\\NormalizeSortCommand::handle] starting. {\"playlists\":[]} {\"correlation_id\":\"7f4c99a0-a910-4165-b826-2fec7c4111df\",\"trace_id\":\"f498d542-27b5-4668-8f81-9c19f3b82469\"}\n[2026-05-11 12:46:42] local.INFO: [Jiminny\\Component\\Playlist\\Command\\NormalizeSortCommand::handle] finished. {\"normalizedPlaylists\":[],\"deletedPlaylists\":[]} {\"correlation_id\":\"7f4c99a0-a910-4165-b826-2fec7c4111df\",\"trace_id\":\"f498d542-27b5-4668-8f81-9c19f3b82469\"}\n[2026-05-11 12:46:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"jiminny:playlists:normalize-sort\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"7f4c99a0-a910-4165-b826-2fec7c4111df\",\"trace_id\":\"f498d542-27b5-4668-8f81-9c19f3b82469\"}\n[2026-05-11 12:47:06] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"7bd9aaef-eaa2-4ead-9b6a-a9ac5745fde7\",\"trace_id\":\"0c0fd329-f61e-4a18-8770-7b7214f3ce1e\"}\n[2026-05-11 12:47:06] local.WARNING: [HubSpot Journal Polling] Maximum empty results reached, stopping {\"empty_results\":5,\"max_empty_results\":5} {\"correlation_id\":\"7bd9aaef-eaa2-4ead-9b6a-a9ac5745fde7\",\"trace_id\":\"0c0fd329-f61e-4a18-8770-7b7214f3ce1e\"}\n[2026-05-11 12:47:06] local.WARNING: [HubSpot Journal Polling] Maximum empty results reached, stopping {\"empty_results\":5,\"max_empty_results\":5} {\"correlation_id\":\"7bd9aaef-eaa2-4ead-9b6a-a9ac5745fde7\",\"trace_id\":\"0c0fd329-f61e-4a18-8770-7b7214f3ce1e\"}\n[2026-05-11 12:47:06] local.INFO: [HubSpot Journal Polling] Service ending {\"runtime_seconds\":57,\"total_cycles\":5,\"files_downloaded\":0,\"empty_files\":0,\"other_portal_skipped\":0,\"total_events\":0,\"events_per_file\":0,\"avg_api_ms\":228.7,\"avg_download_ms\":0.0,\"avg_transform_ms\":0.0,\"avg_process_ms\":0.0,\"peak_memory_mb\":99.73} {\"correlation_id\":\"7bd9aaef-eaa2-4ead-9b6a-a9ac5745fde7\",\"trace_id\":\"0c0fd329-f61e-4a18-8770-7b7214f3ce1e\"}\n[2026-05-11 12:47:07] local.INFO: [HubSpot Journal Polling] Saved offset to database on cleanup {\"offset\":\"019e15a9-9ea0-7da7-87bc-82592e3ccf0d\"} {\"correlation_id\":\"7bd9aaef-eaa2-4ead-9b6a-a9ac5745fde7\",\"trace_id\":\"0c0fd329-f61e-4a18-8770-7b7214f3ce1e\"}\n[2026-05-11 12:47:07] local.INFO: [HubSpot Journal Polling] Released polling lock {\"correlation_id\":\"7bd9aaef-eaa2-4ead-9b6a-a9ac5745fde7\",\"trace_id\":\"0c0fd329-f61e-4a18-8770-7b7214f3ce1e\"}\n[2026-05-11 12:47:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"1ae04424-dc91-4c3e-a688-a8a520c7c2e2\",\"trace_id\":\"97d7aa88-b42b-42cf-9f6b-b9d54e232360\"}\n[2026-05-11 12:47:15] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"1ae04424-dc91-4c3e-a688-a8a520c7c2e2\",\"trace_id\":\"97d7aa88-b42b-42cf-9f6b-b9d54e232360\"}\n[2026-05-11 12:47:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"1ae04424-dc91-4c3e-a688-a8a520c7c2e2\",\"trace_id\":\"97d7aa88-b42b-42cf-9f6b-b9d54e232360\"}\n[2026-05-11 12:47:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"6f760468-fc36-4508-adfe-c5f240cb0fec\",\"trace_id\":\"8f86bc50-8b95-4533-84b0-1e8ab0c04546\"}\n[2026-05-11 12:47:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"6f760468-fc36-4508-adfe-c5f240cb0fec\",\"trace_id\":\"8f86bc50-8b95-4533-84b0-1e8ab0c04546\"}\n[2026-05-11 12:47:22] local.NOTICE: Monitoring start {\"correlation_id\":\"489089ce-8bf4-4ed8-aaed-83c8ac3b3b3e\",\"trace_id\":\"261b4f71-0350-4b65-97d9-9004e023fab3\"}\n[2026-05-11 12:47:22] local.NOTICE: Monitoring end {\"correlation_id\":\"489089ce-8bf4-4ed8-aaed-83c8ac3b3b3e\",\"trace_id\":\"261b4f71-0350-4b65-97d9-9004e023fab3\"}\n[2026-05-11 12:47:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"f1fa5112-897f-49a0-8939-13e593afc447\",\"trace_id\":\"fa69dca2-8695-49a2-b9fa-114d05e3f387\"}\n[2026-05-11 12:47:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"f1fa5112-897f-49a0-8939-13e593afc447\",\"trace_id\":\"fa69dca2-8695-49a2-b9fa-114d05e3f387\"}\n[2026-05-11 12:47:34] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a090d8fe-acd3-4b32-aa48-08772ad5bf37\",\"trace_id\":\"f01944c9-a3a5-4c79-bee4-63e4317f5dfb\"}\n[2026-05-11 12:47:34] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"a090d8fe-acd3-4b32-aa48-08772ad5bf37\",\"trace_id\":\"f01944c9-a3a5-4c79-bee4-63e4317f5dfb\"}\n[2026-05-11 12:47:34] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"a090d8fe-acd3-4b32-aa48-08772ad5bf37\",\"trace_id\":\"f01944c9-a3a5-4c79-bee4-63e4317f5dfb\"}\n[2026-05-11 12:47:34] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a090d8fe-acd3-4b32-aa48-08772ad5bf37\",\"trace_id\":\"f01944c9-a3a5-4c79-bee4-63e4317f5dfb\"}\n[2026-05-11 12:47:40] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"e9cf7f2a-85a0-49fa-b634-b06bf83554c0\",\"trace_id\":\"6876026f-1013-4a0a-9b17-914a3ae58d04\"}\n[2026-05-11 12:47:40] local.INFO: [EmailSchedule] STARTING batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"e9cf7f2a-85a0-49fa-b634-b06bf83554c0\",\"trace_id\":\"6876026f-1013-4a0a-9b17-914a3ae58d04\"}\n[2026-05-11 12:47:40] local.INFO: [EmailSchedule] FINISHED batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"e9cf7f2a-85a0-49fa-b634-b06bf83554c0\",\"trace_id\":\"6876026f-1013-4a0a-9b17-914a3ae58d04\"}\n[2026-05-11 12:47:40] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"e9cf7f2a-85a0-49fa-b634-b06bf83554c0\",\"trace_id\":\"6876026f-1013-4a0a-9b17-914a3ae58d04\"}\n[2026-05-11 12:47:41] local.INFO: [Jiminny\\Jobs\\Mailbox\\CreateBatches] processed 2 inboxes and created 0 batches {\"userId\":null,\"batchSize\":30,\"maxBatches\":1000} {\"correlation_id\":\"0574fa9b-5bc5-4486-8f14-eff5332fc4a3\",\"trace_id\":\"6876026f-1013-4a0a-9b17-914a3ae58d04\"}\n[2026-05-11 12:48:11] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"4d776ef6-38be-4ab8-8bce-f7982f89bdee\",\"trace_id\":\"ac6bd687-ca1b-4f51-8960-f0582a9f03c4\"}\n[2026-05-11 12:48:11] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"4d776ef6-38be-4ab8-8bce-f7982f89bdee\",\"trace_id\":\"ac6bd687-ca1b-4f51-8960-f0582a9f03c4\"}\n[2026-05-11 12:48:11] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"4d776ef6-38be-4ab8-8bce-f7982f89bdee\",\"trace_id\":\"ac6bd687-ca1b-4f51-8960-f0582a9f03c4\"}\n[2026-05-11 12:48:14] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"50783c0e-040a-41d8-a097-b48d6fe5e789\",\"trace_id\":\"eddd1fb7-6e33-42a2-bc96-20b36fbd4218\"}\n[2026-05-11 12:48:14] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"50783c0e-040a-41d8-a097-b48d6fe5e789\",\"trace_id\":\"eddd1fb7-6e33-42a2-bc96-20b36fbd4218\"}\n[2026-05-11 12:48:17] local.NOTICE: Monitoring start {\"correlation_id\":\"74523c44-c5c2-41ae-a071-0a855253c2a4\",\"trace_id\":\"7b6ae353-a43f-48c2-a4f2-ea36886f0095\"}\n[2026-05-11 12:48:17] local.NOTICE: Monitoring end {\"correlation_id\":\"74523c44-c5c2-41ae-a071-0a855253c2a4\",\"trace_id\":\"7b6ae353-a43f-48c2-a4f2-ea36886f0095\"}\n[2026-05-11 12:48:20] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"769235ff-adf4-47cd-adca-67b5b8ac7b23\",\"trace_id\":\"82cb4a65-4fdf-4c66-ab18-6ea2537798f2\"}\n[2026-05-11 12:48:20] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"769235ff-adf4-47cd-adca-67b5b8ac7b23\",\"trace_id\":\"82cb4a65-4fdf-4c66-ab18-6ea2537798f2\"}\n[2026-05-11 12:48:23] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"0cb41424-1ae5-4d5e-94b6-47f4430a8193\",\"trace_id\":\"b8cdf2e0-aa0c-429f-bea2-2ee6bc64b311\"}\n[2026-05-11 12:48:23] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"0cb41424-1ae5-4d5e-94b6-47f4430a8193\",\"trace_id\":\"b8cdf2e0-aa0c-429f-bea2-2ee6bc64b311\"}\n[2026-05-11 12:48:23] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"0cb41424-1ae5-4d5e-94b6-47f4430a8193\",\"trace_id\":\"b8cdf2e0-aa0c-429f-bea2-2ee6bc64b311\"}\n[2026-05-11 12:48:23] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"0cb41424-1ae5-4d5e-94b6-47f4430a8193\",\"trace_id\":\"b8cdf2e0-aa0c-429f-bea2-2ee6bc64b311\"}\n[2026-05-11 12:48:26] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"06a20de6-c66f-4c0d-90d3-5d9168d5fef8\",\"trace_id\":\"43bd5483-44ec-42e0-84b4-92edd7d084e7\"}\n[2026-05-11 12:48:26] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 12:46:00, 2026-05-11 12:48:00] {\"correlation_id\":\"06a20de6-c66f-4c0d-90d3-5d9168d5fef8\",\"trace_id\":\"43bd5483-44ec-42e0-84b4-92edd7d084e7\"}\n[2026-05-11 12:48:26] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 12:46:00, 2026-05-11 12:48:00] {\"correlation_id\":\"06a20de6-c66f-4c0d-90d3-5d9168d5fef8\",\"trace_id\":\"43bd5483-44ec-42e0-84b4-92edd7d084e7\"}\n[2026-05-11 12:48:26] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"06a20de6-c66f-4c0d-90d3-5d9168d5fef8\",\"trace_id\":\"43bd5483-44ec-42e0-84b4-92edd7d084e7\"}\n[2026-05-11 12:48:34] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"f9f326d2-a491-49a5-b7d0-e8dea3dbb227\",\"trace_id\":\"790d4388-07d6-4b23-b0b8-1be65299ab66\"}\n[2026-05-11 12:48:34] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"f9f326d2-a491-49a5-b7d0-e8dea3dbb227\",\"trace_id\":\"790d4388-07d6-4b23-b0b8-1be65299ab66\"}\n[2026-05-11 12:49:07] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"228be68f-ffcd-44b0-806e-d1d1175abd7f\",\"trace_id\":\"e5f8da62-3f7f-4f47-b8d9-8deba993ae36\"}\n[2026-05-11 12:49:07] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"228be68f-ffcd-44b0-806e-d1d1175abd7f\",\"trace_id\":\"e5f8da62-3f7f-4f47-b8d9-8deba993ae36\"}\n[2026-05-11 12:49:07] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"228be68f-ffcd-44b0-806e-d1d1175abd7f\",\"trace_id\":\"e5f8da62-3f7f-4f47-b8d9-8deba993ae36\"}\n[2026-05-11 12:49:10] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"f8b64fda-f106-426e-8b95-c2c7139f228c\",\"trace_id\":\"452d2a22-10d2-43ac-a8d1-9e2dcc5cab0b\"}\n[2026-05-11 12:49:10] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"f8b64fda-f106-426e-8b95-c2c7139f228c\",\"trace_id\":\"452d2a22-10d2-43ac-a8d1-9e2dcc5cab0b\"}\n[2026-05-11 12:49:17] local.NOTICE: Monitoring start {\"correlation_id\":\"ed2e5750-f4f0-41c4-ba71-9b85d4eabd0f\",\"trace_id\":\"0d06e89f-e00e-42e3-a8cb-09fd88372eab\"}\n[2026-05-11 12:49:18] local.NOTICE: Monitoring end {\"correlation_id\":\"ed2e5750-f4f0-41c4-ba71-9b85d4eabd0f\",\"trace_id\":\"0d06e89f-e00e-42e3-a8cb-09fd88372eab\"}\n[2026-05-11 12:49:22] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a00c0435-18a1-4061-8227-eb8f878e29d0\",\"trace_id\":\"6f1342e2-e9c7-4e1a-b177-322a920d53df\"}\n[2026-05-11 12:49:23] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a00c0435-18a1-4061-8227-eb8f878e29d0\",\"trace_id\":\"6f1342e2-e9c7-4e1a-b177-322a920d53df\"}\n[2026-05-11 12:49:26] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"86e3c595-3411-48c4-a0f7-c54940677141\",\"trace_id\":\"21c88c03-af75-4f8d-aa32-b09e1f594a06\"}\n[2026-05-11 12:49:26] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"86e3c595-3411-48c4-a0f7-c54940677141\",\"trace_id\":\"21c88c03-af75-4f8d-aa32-b09e1f594a06\"}\n[2026-05-11 12:49:26] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"86e3c595-3411-48c4-a0f7-c54940677141\",\"trace_id\":\"21c88c03-af75-4f8d-aa32-b09e1f594a06\"}\n[2026-05-11 12:49:26] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"86e3c595-3411-48c4-a0f7-c54940677141\",\"trace_id\":\"21c88c03-af75-4f8d-aa32-b09e1f594a06\"}\n[2026-05-11 12:50:08] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"0b57497a-53b1-4a32-a6da-06fcf73b0b2a\",\"trace_id\":\"2ba53a97-280f-4669-8974-69726a819fa9\"}\n[2026-05-11 12:50:08] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"0b57497a-53b1-4a32-a6da-06fcf73b0b2a\",\"trace_id\":\"2ba53a97-280f-4669-8974-69726a819fa9\"}\n[2026-05-11 12:50:08] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"0b57497a-53b1-4a32-a6da-06fcf73b0b2a\",\"trace_id\":\"2ba53a97-280f-4669-8974-69726a819fa9\"}\n[2026-05-11 12:50:20] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"5852b3e5-9f90-4a2b-a431-77efe6947819\",\"trace_id\":\"20005c85-902e-49ae-ac11-33e437461d28\"}\n[2026-05-11 12:50:21] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"5852b3e5-9f90-4a2b-a431-77efe6947819\",\"trace_id\":\"20005c85-902e-49ae-ac11-33e437461d28\"}\n[2026-05-11 12:50:31] local.NOTICE: Monitoring start {\"correlation_id\":\"92c9c3cb-3e72-4e9e-b9ab-9bc420d1bdd8\",\"trace_id\":\"21345f63-83e6-44b6-b0e5-950dd5daae14\"}\n[2026-05-11 12:50:31] local.NOTICE: Monitoring end {\"correlation_id\":\"92c9c3cb-3e72-4e9e-b9ab-9bc420d1bdd8\",\"trace_id\":\"21345f63-83e6-44b6-b0e5-950dd5daae14\"}\n[2026-05-11 12:50:38] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"3722715c-5634-4e21-be1f-b9761a11f92d\",\"trace_id\":\"655a02f1-2476-4c79-9ebb-70136a54989c\"}\n[2026-05-11 12:50:38] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"3722715c-5634-4e21-be1f-b9761a11f92d\",\"trace_id\":\"655a02f1-2476-4c79-9ebb-70136a54989c\"}\n[2026-05-11 12:50:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a0ae6c4d-bee8-4247-9247-0bd4b4e54d16\",\"trace_id\":\"f12308b8-6240-4f0f-8001-eb991af7a449\"}\n[2026-05-11 12:50:42] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"a0ae6c4d-bee8-4247-9247-0bd4b4e54d16\",\"trace_id\":\"f12308b8-6240-4f0f-8001-eb991af7a449\"}\n[2026-05-11 12:50:42] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"a0ae6c4d-bee8-4247-9247-0bd4b4e54d16\",\"trace_id\":\"f12308b8-6240-4f0f-8001-eb991af7a449\"}\n[2026-05-11 12:50:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a0ae6c4d-bee8-4247-9247-0bd4b4e54d16\",\"trace_id\":\"f12308b8-6240-4f0f-8001-eb991af7a449\"}\n[2026-05-11 12:50:49] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"1aef586a-70e6-472c-8855-be25a1bcebd4\",\"trace_id\":\"7383dc14-1423-4c19-8188-43d954f198f0\"}\n[2026-05-11 12:50:49] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 12:48:00, 2026-05-11 12:50:00] {\"correlation_id\":\"1aef586a-70e6-472c-8855-be25a1bcebd4\",\"trace_id\":\"7383dc14-1423-4c19-8188-43d954f198f0\"}\n[2026-05-11 12:50:49] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 12:48:00, 2026-05-11 12:50:00] {\"correlation_id\":\"1aef586a-70e6-472c-8855-be25a1bcebd4\",\"trace_id\":\"7383dc14-1423-4c19-8188-43d954f198f0\"}\n[2026-05-11 12:50:49] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"1aef586a-70e6-472c-8855-be25a1bcebd4\",\"trace_id\":\"7383dc14-1423-4c19-8188-43d954f198f0\"}\n[2026-05-11 12:50:53] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"8a6d095d-5220-484e-860b-26ff21bcd305\",\"trace_id\":\"cf9ff408-c72e-4b98-9f67-fb7e2a9abbe3\"}\n[2026-05-11 12:50:53] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"8a6d095d-5220-484e-860b-26ff21bcd305\",\"trace_id\":\"cf9ff408-c72e-4b98-9f67-fb7e2a9abbe3\"}\n[2026-05-11 12:50:57] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"391dea49-ed4f-41e3-97fb-17e2a305cc66\",\"trace_id\":\"61ccab53-6ded-42c1-ba75-91308adcc0bf\"}\n[2026-05-11 12:50:58] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"391dea49-ed4f-41e3-97fb-17e2a305cc66\",\"trace_id\":\"61ccab53-6ded-42c1-ba75-91308adcc0bf\"}\n[2026-05-11 12:51:04] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"94dc8912-6e32-4085-b4f5-923d235942dd\",\"trace_id\":\"7f9da85c-9fea-4331-8f60-9faf3555e9e7\"}\n[2026-05-11 12:51:05] local.INFO: Running pre-meeting notification command {\"correlation_id\":\"94dc8912-6e32-4085-b4f5-923d235942dd\",\"trace_id\":\"7f9da85c-9fea-4331-8f60-9faf3555e9e7\"}\n[2026-05-11 12:51:05] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"94dc8912-6e32-4085-b4f5-923d235942dd\",\"trace_id\":\"7f9da85c-9fea-4331-8f60-9faf3555e9e7\"}\n[2026-05-11 12:51:08] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"d99e2e78-6104-404c-a4c3-843eeb7dabc1\",\"trace_id\":\"869fd24f-6bab-4088-94f1-fc8ac03084b2\"}\n[2026-05-11 12:51:08] local.INFO: Running conference:monitor:start command for activities in (2026-05-11 12:41:00, 2026-05-11 12:46:00] {\"correlation_id\":\"d99e2e78-6104-404c-a4c3-843eeb7dabc1\",\"trace_id\":\"869fd24f-6bab-4088-94f1-fc8ac03084b2\"}\n[2026-05-11 12:51:08] local.INFO: [conference:monitor:start] No activities found in (2026-05-11 12:41:00, 2026-05-11 12:46:00] {\"correlation_id\":\"d99e2e78-6104-404c-a4c3-843eeb7dabc1\",\"trace_id\":\"869fd24f-6bab-4088-94f1-fc8ac03084b2\"}\n[2026-05-11 12:51:08] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"d99e2e78-6104-404c-a4c3-843eeb7dabc1\",\"trace_id\":\"869fd24f-6bab-4088-94f1-fc8ac03084b2\"}\n[2026-05-11 12:51:11] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"58a88182-b00c-4494-8cbf-4ee0929e201b\",\"trace_id\":\"0e2515cf-09ef-45d1-8919-9fe046a474b8\"}\n[2026-05-11 12:51:11] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesEnded {\"from\":\"12:46\",\"to\":\"12:51\"} {\"correlation_id\":\"58a88182-b00c-4494-8cbf-4ee0929e201b\",\"trace_id\":\"0e2515cf-09ef-45d1-8919-9fe046a474b8\"}\n[2026-05-11 12:51:11] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesWithUnfinishedSession {\"from\":\"02:41\",\"to\":\"02:46\"} {\"correlation_id\":\"58a88182-b00c-4494-8cbf-4ee0929e201b\",\"trace_id\":\"0e2515cf-09ef-45d1-8919-9fe046a474b8\"}\n[2026-05-11 12:51:11] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"58a88182-b00c-4494-8cbf-4ee0929e201b\",\"trace_id\":\"0e2515cf-09ef-45d1-8919-9fe046a474b8\"}\n[2026-05-11 12:51:13] local.NOTICE: Repairing HubSpot tokens start {\"correlation_id\":\"3e88b7cd-4af9-4222-8354-4b8f697285f3\",\"trace_id\":\"0c0c71e6-0143-43e7-bb56-412dd2c2e0ea\"}\n[2026-05-11 12:51:13] local.INFO: Trying to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\"} {\"correlation_id\":\"3e88b7cd-4af9-4222-8354-4b8f697285f3\",\"trace_id\":\"0c0c71e6-0143-43e7-bb56-412dd2c2e0ea\"}\n[2026-05-11 12:51:13] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"3e88b7cd-4af9-4222-8354-4b8f697285f3\",\"trace_id\":\"0c0c71e6-0143-43e7-bb56-412dd2c2e0ea\"}\n[2026-05-11 12:51:13] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":59,\"provider\":\"hubspot\",\"refreshToken\":\"97b78f6e2cc49965c00c2492b602b02708b1392551e6b3f113fbaa48992af90b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"3e88b7cd-4af9-4222-8354-4b8f697285f3\",\"trace_id\":\"0c0c71e6-0143-43e7-bb56-412dd2c2e0ea\"}\n[2026-05-11 12:51:14] local.ERROR: Failed to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"3e88b7cd-4af9-4222-8354-4b8f697285f3\",\"trace_id\":\"0c0c71e6-0143-43e7-bb56-412dd2c2e0ea\"}\n[2026-05-11 12:51:14] local.INFO: Trying to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\"} {\"correlation_id\":\"3e88b7cd-4af9-4222-8354-4b8f697285f3\",\"trace_id\":\"0c0c71e6-0143-43e7-bb56-412dd2c2e0ea\"}\n[2026-05-11 12:51:14] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"3e88b7cd-4af9-4222-8354-4b8f697285f3\",\"trace_id\":\"0c0c71e6-0143-43e7-bb56-412dd2c2e0ea\"}\n[2026-05-11 12:51:14] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":306,\"provider\":\"hubspot\",\"refreshToken\":\"6fa6aa8cc641d131231acc3470f5c03cb3b07b2e580fb18f8acb3b1dbb72549b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"3e88b7cd-4af9-4222-8354-4b8f697285f3\",\"trace_id\":\"0c0c71e6-0143-43e7-bb56-412dd2c2e0ea\"}\n[2026-05-11 12:51:14] local.ERROR: Failed to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"3e88b7cd-4af9-4222-8354-4b8f697285f3\",\"trace_id\":\"0c0c71e6-0143-43e7-bb56-412dd2c2e0ea\"}\n[2026-05-11 12:51:14] local.INFO: Trying to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\"} {\"correlation_id\":\"3e88b7cd-4af9-4222-8354-4b8f697285f3\",\"trace_id\":\"0c0c71e6-0143-43e7-bb56-412dd2c2e0ea\"}\n[2026-05-11 12:51:14] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"3e88b7cd-4af9-4222-8354-4b8f697285f3\",\"trace_id\":\"0c0c71e6-0143-43e7-bb56-412dd2c2e0ea\"}\n[2026-05-11 12:51:14] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1372,\"provider\":\"hubspot\",\"refreshToken\":\"9aa73948c761da29dce46c177cf9aee1fde483a44169ca38723f9f0597d7a8c4\",\"state\":\"full-refresh\"} {\"correlation_id\":\"3e88b7cd-4af9-4222-8354-4b8f697285f3\",\"trace_id\":\"0c0c71e6-0143-43e7-bb56-412dd2c2e0ea\"}\n[2026-05-11 12:51:15] local.ERROR: Failed to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"3e88b7cd-4af9-4222-8354-4b8f697285f3\",\"trace_id\":\"0c0c71e6-0143-43e7-bb56-412dd2c2e0ea\"}\n[2026-05-11 12:51:15] local.NOTICE: Repairing HubSpot tokens end {\"total\":3,\"fixed\":0,\"failed\":3} {\"correlation_id\":\"3e88b7cd-4af9-4222-8354-4b8f697285f3\",\"trace_id\":\"0c0c71e6-0143-43e7-bb56-412dd2c2e0ea\"}\n[2026-05-11 12:51:28] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"jiminny:transcription:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"cf3b85e7-bf94-4bad-b034-45899029fb46\",\"trace_id\":\"8ebbced3-1771-4640-8e58-b20c4adc6535\"}\n[2026-05-11 12:51:29] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"62fd3cf7-c6eb-4317-a2e2-56d791e4f57d\",\"trace_id\":\"418ca9b2-4855-4b28-80d2-ea8cf2de6e64\"}\n[2026-05-11 12:51:29] local.INFO: [HubSpot Journal Command] Starting polling service {\"correlation_id\":\"e0275d48-0053-4811-8f69-7a087bdf45dd\",\"trace_id\":\"524c9dd8-6e05-491b-a916-3dc386ced5f0\"}\n[2026-05-11 12:51:29] local.INFO: [HubSpot Journal Polling] Service starting {\"memory_limit\":\"256M\",\"max_execution_time\":\"0\",\"initial_memory_mb\":60.0} {\"correlation_id\":\"e0275d48-0053-4811-8f69-7a087bdf45dd\",\"trace_id\":\"524c9dd8-6e05-491b-a916-3dc386ced5f0\"}\n[2026-05-11 12:51:29] local.INFO: [HubSpot Journal Polling] Acquired polling lock {\"expires_at\":\"2026-05-11T12:53:29.135827Z\"} {\"correlation_id\":\"e0275d48-0053-4811-8f69-7a087bdf45dd\",\"trace_id\":\"524c9dd8-6e05-491b-a916-3dc386ced5f0\"}\n[2026-05-11 12:51:29] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"jiminny:transcription:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"cf3b85e7-bf94-4bad-b034-45899029fb46\",\"trace_id\":\"8ebbced3-1771-4640-8e58-b20c4adc6535\"}\n[2026-05-11 12:51:29] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"62fd3cf7-c6eb-4317-a2e2-56d791e4f57d\",\"trace_id\":\"418ca9b2-4855-4b28-80d2-ea8cf2de6e64\"}\n[2026-05-11 12:51:29] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"e0275d48-0053-4811-8f69-7a087bdf45dd\",\"trace_id\":\"524c9dd8-6e05-491b-a916-3dc386ced5f0\"}\n[2026-05-11 12:51:34] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"e0275d48-0053-4811-8f69-7a087bdf45dd\",\"trace_id\":\"524c9dd8-6e05-491b-a916-3dc386ced5f0\"}\n[2026-05-11 12:51:38] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:reset-governor\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"3512a58e-9efe-4da2-ab9f-d0b735484d23\",\"trace_id\":\"5b35f66c-dd63-4a02-8f64-f0ba72826a3d\"}\n[2026-05-11 12:51:39] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:reset-governor\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"3512a58e-9efe-4da2-ab9f-d0b735484d23\",\"trace_id\":\"5b35f66c-dd63-4a02-8f64-f0ba72826a3d\"}\n[2026-05-11 12:51:41] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"e0275d48-0053-4811-8f69-7a087bdf45dd\",\"trace_id\":\"524c9dd8-6e05-491b-a916-3dc386ced5f0\"}\n[2026-05-11 12:51:45] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"877bbe1f-4978-420b-aa01-402fd93724be\",\"trace_id\":\"43b46046-4624-4d9e-b200-fff7749a1176\"}\n[2026-05-11 12:51:45] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"877bbe1f-4978-420b-aa01-402fd93724be\",\"trace_id\":\"43b46046-4624-4d9e-b200-fff7749a1176\"}\n[2026-05-11 12:51:56] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"e0275d48-0053-4811-8f69-7a087bdf45dd\",\"trace_id\":\"524c9dd8-6e05-491b-a916-3dc386ced5f0\"}\n[2026-05-11 12:52:09] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"99c962d1-418e-4057-a69f-f1a2b13ccbd1\",\"trace_id\":\"0bb36197-97de-43ca-b6f1-7b1a0ef8c1ad\"}\n[2026-05-11 12:52:09] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"99c962d1-418e-4057-a69f-f1a2b13ccbd1\",\"trace_id\":\"0bb36197-97de-43ca-b6f1-7b1a0ef8c1ad\"}\n[2026-05-11 12:52:09] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"99c962d1-418e-4057-a69f-f1a2b13ccbd1\",\"trace_id\":\"0bb36197-97de-43ca-b6f1-7b1a0ef8c1ad\"}\n[2026-05-11 12:52:11] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"49b1f4c7-d423-4c4f-89a2-aba08db5f01b\",\"trace_id\":\"14a9780f-5a8b-4d3a-a3be-fdd344601c64\"}\n[2026-05-11 12:52:11] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"49b1f4c7-d423-4c4f-89a2-aba08db5f01b\",\"trace_id\":\"14a9780f-5a8b-4d3a-a3be-fdd344601c64\"}\n[2026-05-11 12:52:13] local.NOTICE: Monitoring start {\"correlation_id\":\"f223a6d1-1e7b-44a0-bbf2-bbd78f108896\",\"trace_id\":\"e4deb44e-091c-426b-a629-4dde9218fa6f\"}\n[2026-05-11 12:52:13] local.NOTICE: Monitoring end {\"correlation_id\":\"f223a6d1-1e7b-44a0-bbf2-bbd78f108896\",\"trace_id\":\"e4deb44e-091c-426b-a629-4dde9218fa6f\"}\n[2026-05-11 12:52:14] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"656854f1-fc28-4cf7-956d-bba8814b7942\",\"trace_id\":\"ce62f2be-a071-4705-8528-e83a32e7db82\"}\n[2026-05-11 12:52:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"656854f1-fc28-4cf7-956d-bba8814b7942\",\"trace_id\":\"ce62f2be-a071-4705-8528-e83a32e7db82\"}\n[2026-05-11 12:52:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"e13d1652-7bca-4996-9f9d-1b9f10d86b4f\",\"trace_id\":\"17c0a491-4ca3-4624-aee9-475b1907e223\"}\n[2026-05-11 12:52:18] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"e13d1652-7bca-4996-9f9d-1b9f10d86b4f\",\"trace_id\":\"17c0a491-4ca3-4624-aee9-475b1907e223\"}\n[2026-05-11 12:52:18] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"e13d1652-7bca-4996-9f9d-1b9f10d86b4f\",\"trace_id\":\"17c0a491-4ca3-4624-aee9-475b1907e223\"}\n[2026-05-11 12:52:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"e13d1652-7bca-4996-9f9d-1b9f10d86b4f\",\"trace_id\":\"17c0a491-4ca3-4624-aee9-475b1907e223\"}\n[2026-05-11 12:52:24] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"db306fdc-8027-4055-83c9-3d71b6d7ef4d\",\"trace_id\":\"d311460e-32d5-47a0-b1f2-07f643b95fd9\"}\n[2026-05-11 12:52:24] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 12:50:00, 2026-05-11 12:52:00] {\"correlation_id\":\"db306fdc-8027-4055-83c9-3d71b6d7ef4d\",\"trace_id\":\"d311460e-32d5-47a0-b1f2-07f643b95fd9\"}\n[2026-05-11 12:52:24] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 12:50:00, 2026-05-11 12:52:00] {\"correlation_id\":\"db306fdc-8027-4055-83c9-3d71b6d7ef4d\",\"trace_id\":\"d311460e-32d5-47a0-b1f2-07f643b95fd9\"}\n[2026-05-11 12:52:24] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"db306fdc-8027-4055-83c9-3d71b6d7ef4d\",\"trace_id\":\"d311460e-32d5-47a0-b1f2-07f643b95fd9\"}\n[2026-05-11 12:52:26] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"e0275d48-0053-4811-8f69-7a087bdf45dd\",\"trace_id\":\"524c9dd8-6e05-491b-a916-3dc386ced5f0\"}\n[2026-05-11 12:52:26] local.WARNING: [HubSpot Journal Polling] Maximum empty results reached, stopping {\"empty_results\":5,\"max_empty_results\":5} {\"correlation_id\":\"e0275d48-0053-4811-8f69-7a087bdf45dd\",\"trace_id\":\"524c9dd8-6e05-491b-a916-3dc386ced5f0\"}\n[2026-05-11 12:52:26] local.WARNING: [HubSpot Journal Polling] Maximum empty results reached, stopping {\"empty_results\":5,\"max_empty_results\":5} {\"correlation_id\":\"e0275d48-0053-4811-8f69-7a087bdf45dd\",\"trace_id\":\"524c9dd8-6e05-491b-a916-3dc386ced5f0\"}\n[2026-05-11 12:52:26] local.INFO: [HubSpot Journal Polling] Service ending {\"runtime_seconds\":57,\"total_cycles\":5,\"files_downloaded\":0,\"empty_files\":0,\"other_portal_skipped\":0,\"total_events\":0,\"events_per_file\":0,\"avg_api_ms\":474.3,\"avg_download_ms\":0.0,\"avg_transform_ms\":0.0,\"avg_process_ms\":0.0,\"peak_memory_mb\":99.73} {\"correlation_id\":\"e0275d48-0053-4811-8f69-7a087bdf45dd\",\"trace_id\":\"524c9dd8-6e05-491b-a916-3dc386ced5f0\"}\n[2026-05-11 12:52:27] local.INFO: [HubSpot Journal Polling] Saved offset to database on cleanup {\"offset\":\"019e15a9-9ea0-7da7-87bc-82592e3ccf0d\"} {\"correlation_id\":\"e0275d48-0053-4811-8f69-7a087bdf45dd\",\"trace_id\":\"524c9dd8-6e05-491b-a916-3dc386ced5f0\"}\n[2026-05-11 12:52:27] local.INFO: [HubSpot Journal Polling] Released polling lock {\"correlation_id\":\"e0275d48-0053-4811-8f69-7a087bdf45dd\",\"trace_id\":\"524c9dd8-6e05-491b-a916-3dc386ced5f0\"}\n[2026-05-11 12:52:27] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"db456441-150c-40da-95d4-307c467e8940\",\"trace_id\":\"f3a9a065-32db-4cee-a227-a0c28480d165\"}\n[2026-05-11 12:52:27] local.INFO: [EmailSchedule] STARTING batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"db456441-150c-40da-95d4-307c467e8940\",\"trace_id\":\"f3a9a065-32db-4cee-a227-a0c28480d165\"}\n[2026-05-11 12:52:27] local.INFO: [EmailSchedule] FINISHED batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"db456441-150c-40da-95d4-307c467e8940\",\"trace_id\":\"f3a9a065-32db-4cee-a227-a0c28480d165\"}\n[2026-05-11 12:52:27] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"db456441-150c-40da-95d4-307c467e8940\",\"trace_id\":\"f3a9a065-32db-4cee-a227-a0c28480d165\"}\n[2026-05-11 12:52:30] local.INFO: [Jiminny\\Jobs\\Mailbox\\CreateBatches] processed 2 inboxes and created 0 batches {\"userId\":null,\"batchSize\":30,\"maxBatches\":1000} {\"correlation_id\":\"865b33b6-fb6d-4657-84ab-e27244c6acae\",\"trace_id\":\"f3a9a065-32db-4cee-a227-a0c28480d165\"}\n[2026-05-11 12:52:33] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"95aefcc4-5bf7-44b1-ac66-7d2fd7be751e\",\"trace_id\":\"f920ad20-28f0-4dec-a7a0-009d23fbecab\"}\n[2026-05-11 12:52:33] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"95aefcc4-5bf7-44b1-ac66-7d2fd7be751e\",\"trace_id\":\"f920ad20-28f0-4dec-a7a0-009d23fbecab\"}\n[2026-05-11 12:53:13] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"d1af4629-83a3-420d-8795-1fd7b573fd28\",\"trace_id\":\"2f540cb3-3d8f-405a-9000-6d588ea71f98\"}\n[2026-05-11 12:53:13] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"d1af4629-83a3-420d-8795-1fd7b573fd28\",\"trace_id\":\"2f540cb3-3d8f-405a-9000-6d588ea71f98\"}\n[2026-05-11 12:53:13] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"d1af4629-83a3-420d-8795-1fd7b573fd28\",\"trace_id\":\"2f540cb3-3d8f-405a-9000-6d588ea71f98\"}\n[2026-05-11 12:53:20] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"2e1089dc-a722-4232-a615-33af8ab158cd\",\"trace_id\":\"917c2cb2-7539-4639-8b69-b27d3970802f\"}\n[2026-05-11 12:53:20] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"2e1089dc-a722-4232-a615-33af8ab158cd\",\"trace_id\":\"917c2cb2-7539-4639-8b69-b27d3970802f\"}\n[2026-05-11 12:53:31] local.NOTICE: Monitoring start {\"correlation_id\":\"7bc6d997-0433-498e-97fb-aac4b561b244\",\"trace_id\":\"ef13f2b5-1cd0-4974-88bd-c8c8787787f6\"}\n[2026-05-11 12:53:31] local.NOTICE: Monitoring end {\"correlation_id\":\"7bc6d997-0433-498e-97fb-aac4b561b244\",\"trace_id\":\"ef13f2b5-1cd0-4974-88bd-c8c8787787f6\"}\n[2026-05-11 12:53:41] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"4687678a-41b0-4f1e-8c5c-9c6332e3170a\",\"trace_id\":\"fbbd336e-0585-49db-830b-c0ce2e97c266\"}\n[2026-05-11 12:53:41] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"4687678a-41b0-4f1e-8c5c-9c6332e3170a\",\"trace_id\":\"fbbd336e-0585-49db-830b-c0ce2e97c266\"}\n[2026-05-11 12:53:46] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"7dc5d803-54b3-4b2a-948a-074efb29f7a7\",\"trace_id\":\"256c7fbf-a236-4bd0-a30d-225da1a5e183\"}\n[2026-05-11 12:53:46] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"7dc5d803-54b3-4b2a-948a-074efb29f7a7\",\"trace_id\":\"256c7fbf-a236-4bd0-a30d-225da1a5e183\"}\n[2026-05-11 12:53:46] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"7dc5d803-54b3-4b2a-948a-074efb29f7a7\",\"trace_id\":\"256c7fbf-a236-4bd0-a30d-225da1a5e183\"}\n[2026-05-11 12:53:46] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"7dc5d803-54b3-4b2a-948a-074efb29f7a7\",\"trace_id\":\"256c7fbf-a236-4bd0-a30d-225da1a5e183\"}\n[2026-05-11 12:53:52] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"c63f42c6-afeb-42cd-87b0-eb08bc02b6e7\",\"trace_id\":\"057700b6-09b6-4f02-8ab9-afc12b53f13e\"}\n[2026-05-11 12:53:53] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"c63f42c6-afeb-42cd-87b0-eb08bc02b6e7\",\"trace_id\":\"057700b6-09b6-4f02-8ab9-afc12b53f13e\"}\n[2026-05-11 12:54:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"b0c9bb87-d145-449a-aedf-793897d9c4c8\",\"trace_id\":\"4d08e2ce-dcde-44e7-a59d-3f494af0bd32\"}\n[2026-05-11 12:54:16] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"b0c9bb87-d145-449a-aedf-793897d9c4c8\",\"trace_id\":\"4d08e2ce-dcde-44e7-a59d-3f494af0bd32\"}\n[2026-05-11 12:54:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"b0c9bb87-d145-449a-aedf-793897d9c4c8\",\"trace_id\":\"4d08e2ce-dcde-44e7-a59d-3f494af0bd32\"}\n[2026-05-11 12:54:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"00ff82b8-6e74-44ef-85d5-ff12e7b42467\",\"trace_id\":\"1efd4a91-0a42-4b09-9241-9e2beae99e88\"}\n[2026-05-11 12:54:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"00ff82b8-6e74-44ef-85d5-ff12e7b42467\",\"trace_id\":\"1efd4a91-0a42-4b09-9241-9e2beae99e88\"}\n[2026-05-11 12:54:33] testing.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":1,\"remote_search\":false,\"set_configuration\":5,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":null,\"opportunity_id\":null,\"stage_id\":null}} {\"correlation_id\":\"f8db6dff-a3af-4785-855d-bd04ed3ed096\",\"trace_id\":\"f24b6e85-6f89-42b8-b4e4-91b2a82e1a7d\"}\n[2026-05-11 12:54:33] testing.INFO: [MatchActivityCrmData] Switching CRM configuration {\"activity\":1,\"old_configuration\":10,\"new_configuration\":5} {\"correlation_id\":\"f8db6dff-a3af-4785-855d-bd04ed3ed096\",\"trace_id\":\"f24b6e85-6f89-42b8-b4e4-91b2a82e1a7d\"}\n[2026-05-11 12:54:33] testing.INFO: [MatchActivityCrmData] No CRM match found {\"activity\":1,\"remote_search\":false} {\"correlation_id\":\"f8db6dff-a3af-4785-855d-bd04ed3ed096\",\"trace_id\":\"f24b6e85-6f89-42b8-b4e4-91b2a82e1a7d\"}\n[2026-05-11 12:54:34] testing.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":123,\"remote_search\":false,\"set_configuration\":5,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":null,\"opportunity_id\":null,\"stage_id\":null}} {\"correlation_id\":\"37dd4a6c-1fc8-4331-ad24-b1cb13b583ce\",\"trace_id\":\"d39aa1e8-6b1c-48eb-a6fa-f38c876ca543\"}\n[2026-05-11 12:54:34] testing.INFO: [MatchActivityCrmData] No CRM match found {\"activity\":123,\"remote_search\":false} {\"correlation_id\":\"37dd4a6c-1fc8-4331-ad24-b1cb13b583ce\",\"trace_id\":\"d39aa1e8-6b1c-48eb-a6fa-f38c876ca543\"}\n[2026-05-11 12:54:34] testing.ERROR: [MatchActivityCrmData] Failed to match CRM data {\"activity\":1,\"remote_search\":false,\"exception\":\"Test exception\",\"trace\":\"#0 /home/jiminny/vendor/phpunit/phpunit/src/Framework/TestCase.php(1667): Tests\\\\Unit\\\\Jobs\\\\Crm\\\\MatchActivityCrmDataTest->testTransactionRollbackOnException()\n#1 /home/jiminny/vendor/phpunit/phpunit/src/Framework/TestCase.php(519): PHPUnit\\\\Framework\\\\TestCase->runTest()\n#2 /home/jiminny/vendor/phpunit/phpunit/src/Framework/TestRunner/TestRunner.php(87): PHPUnit\\\\Framework\\\\TestCase->runBare()\n#3 /home/jiminny/vendor/phpunit/phpunit/src/Framework/TestCase.php(365): PHPUnit\\\\Framework\\\\TestRunner->run(Object(Tests\\\\Unit\\\\Jobs\\\\Crm\\\\MatchActivityCrmDataTest))\n#4 /home/jiminny/vendor/phpunit/phpunit/src/Framework/TestSuite.php(369): PHPUnit\\\\Framework\\\\TestCase->run()\n#5 /home/jiminny/vendor/phpunit/phpunit/src/Framework/TestSuite.php(369): PHPUnit\\\\Framework\\\\TestSuite->run()\n#6 /home/jiminny/vendor/phpunit/phpunit/src/TextUI/TestRunner.php(64): PHPUnit\\\\Framework\\\\TestSuite->run()\n#7 /home/jiminny/vendor/phpunit/phpunit/src/TextUI/Application.php(211): PHPUnit\\\\TextUI\\\\TestRunner->run(Object(PHPUnit\\\\TextUI\\\\Configuration\\\\Configuration), Object(PHPUnit\\\\Runner\\\\ResultCache\\\\DefaultResultCache), Object(PHPUnit\\\\Framework\\\\TestSuite))\n#8 /home/jiminny/vendor/phpunit/phpunit/phpunit(104): PHPUnit\\\\TextUI\\\\Application->run(Array)\n#9 /home/jiminny/vendor/bin/phpunit(122): include('/home/jiminny/v...')\n#10 {main}\"} {\"correlation_id\":\"e1f9dd5e-db18-4167-a3d9-d6a017f64442\",\"trace_id\":\"64407c7f-5ad5-4d40-a02b-e06c3988f345\"}\n[2026-05-11 12:54:34] testing.ERROR: [MatchActivityCrmData] Job permanently failed after all retries {\"activity\":123,\"remote_search\":true,\"from_configuration\":null,\"exception\":\"Test failure\",\"attempts\":1} {\"correlation_id\":\"abdea40d-435e-4d87-b225-38b24cc6344b\",\"trace_id\":\"3b31770a-e7c6-4b45-872d-e4391cb4278d\"}\n[2026-05-11 12:54:35] testing.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":123,\"remote_search\":false,\"set_configuration\":null,\"old_state\":{\"lead_id\":456,\"contact_id\":null,\"account_id\":null,\"opportunity_id\":null,\"stage_id\":null}} {\"correlation_id\":\"571d5566-2335-4bdb-920d-c55467ca1712\",\"trace_id\":\"599aca3d-a7b4-424d-89b8-da6461cab370\"}\n[2026-05-11 12:54:35] testing.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":123,\"remote_search\":false,\"lead_id\":456,\"contact_id\":null,\"account_id\":null,\"opportunity_id\":null,\"stage_id\":null} {\"correlation_id\":\"571d5566-2335-4bdb-920d-c55467ca1712\",\"trace_id\":\"599aca3d-a7b4-424d-89b8-da6461cab370\"}\n[2026-05-11 12:54:35] testing.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":123,\"remote_search\":true,\"set_configuration\":null,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":null,\"opportunity_id\":null,\"stage_id\":null}} {\"correlation_id\":\"e954700b-88a6-4955-9977-edcd8e5c93a4\",\"trace_id\":\"84ae5b92-3c87-4a95-ad91-7353e0cff15d\"}\n[2026-05-11 12:54:35] testing.INFO: [MatchActivityCrmData] No CRM match found {\"activity\":123,\"remote_search\":true} {\"correlation_id\":\"e954700b-88a6-4955-9977-edcd8e5c93a4\",\"trace_id\":\"84ae5b92-3c87-4a95-ad91-7353e0cff15d\"}\n[2026-05-11 12:54:35] testing.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":999,\"remote_search\":false,\"set_configuration\":null,\"old_state\":{\"lead_id\":111,\"contact_id\":222,\"account_id\":333,\"opportunity_id\":444,\"stage_id\":555}} {\"correlation_id\":\"fcdf2f28-0489-4742-9561-c2a20665c51e\",\"trace_id\":\"8d3fbbbf-56c9-456f-ad9e-ffd2ad6cfd3b\"}\n[2026-05-11 12:54:35] testing.INFO: [MatchActivityCrmData] Participants old state {\"activity\":999,\"participants\":[{\"id\":10,\"user_id\":100,\"contact_id\":200,\"lead_id\":null},{\"id\":20,\"user_id\":null,\"contact_id\":null,\"lead_id\":300}]} {\"correlation_id\":\"fcdf2f28-0489-4742-9561-c2a20665c51e\",\"trace_id\":\"8d3fbbbf-56c9-456f-ad9e-ffd2ad6cfd3b\"}\n[2026-05-11 12:54:35] testing.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":999,\"remote_search\":false,\"lead_id\":111,\"contact_id\":222,\"account_id\":333,\"opportunity_id\":444,\"stage_id\":555} {\"correlation_id\":\"fcdf2f28-0489-4742-9561-c2a20665c51e\",\"trace_id\":\"8d3fbbbf-56c9-456f-ad9e-ffd2ad6cfd3b\"}\n[2026-05-11 12:54:38] local.NOTICE: Monitoring start {\"correlation_id\":\"a8be3ef9-4dcf-4730-8dc6-509a8dc93ace\",\"trace_id\":\"e383025b-076b-46f1-8dd7-5d9143ad3695\"}\n[2026-05-11 12:54:39] local.NOTICE: Monitoring end {\"correlation_id\":\"a8be3ef9-4dcf-4730-8dc6-509a8dc93ace\",\"trace_id\":\"e383025b-076b-46f1-8dd7-5d9143ad3695\"}\n[2026-05-11 12:54:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"1921e478-1c59-44bd-a25d-38938aab926a\",\"trace_id\":\"519f3980-38c3-4dc2-b158-3999ee8f47be\"}\n[2026-05-11 12:54:49] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"1921e478-1c59-44bd-a25d-38938aab926a\",\"trace_id\":\"519f3980-38c3-4dc2-b158-3999ee8f47be\"}\n[2026-05-11 12:54:55] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"c2eca233-9902-4414-95d9-edd6f425bcbd\",\"trace_id\":\"29e6d9bc-e635-4e28-be97-8da6b20a5ab7\"}\n[2026-05-11 12:54:55] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"c2eca233-9902-4414-95d9-edd6f425bcbd\",\"trace_id\":\"29e6d9bc-e635-4e28-be97-8da6b20a5ab7\"}\n[2026-05-11 12:54:55] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"c2eca233-9902-4414-95d9-edd6f425bcbd\",\"trace_id\":\"29e6d9bc-e635-4e28-be97-8da6b20a5ab7\"}\n[2026-05-11 12:54:55] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"c2eca233-9902-4414-95d9-edd6f425bcbd\",\"trace_id\":\"29e6d9bc-e635-4e28-be97-8da6b20a5ab7\"}\n[2026-05-11 12:54:58] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"5797ace0-2829-4b5b-8598-1a58d489cca4\",\"trace_id\":\"8d5b31cb-bc2b-4bda-acc3-b64c5ced70eb\"}\n[2026-05-11 12:54:58] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 12:52:00, 2026-05-11 12:54:00] {\"correlation_id\":\"5797ace0-2829-4b5b-8598-1a58d489cca4\",\"trace_id\":\"8d5b31cb-bc2b-4bda-acc3-b64c5ced70eb\"}\n[2026-05-11 12:54:58] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 12:52:00, 2026-05-11 12:54:00] {\"correlation_id\":\"5797ace0-2829-4b5b-8598-1a58d489cca4\",\"trace_id\":\"8d5b31cb-bc2b-4bda-acc3-b64c5ced70eb\"}\n[2026-05-11 12:54:58] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"5797ace0-2829-4b5b-8598-1a58d489cca4\",\"trace_id\":\"8d5b31cb-bc2b-4bda-acc3-b64c5ced70eb\"}\n[2026-05-11 12:55:01] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:aircall:check-and-renew\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"bbbd3f61-3f69-427a-ad42-e0bf21f332fb\",\"trace_id\":\"1ed1d0aa-0b53-42db-8898-bc6028dcf6b5\"}\n[2026-05-11 12:55:01] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1496,\"provider\":\"aircall\"} {\"correlation_id\":\"bbbd3f61-3f69-427a-ad42-e0bf21f332fb\",\"trace_id\":\"1ed1d0aa-0b53-42db-8898-bc6028dcf6b5\"}\n[2026-05-11 12:55:01] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1496,\"provider\":\"aircall\"} {\"correlation_id\":\"bbbd3f61-3f69-427a-ad42-e0bf21f332fb\",\"trace_id\":\"1ed1d0aa-0b53-42db-8898-bc6028dcf6b5\"}\n[2026-05-11 12:55:01] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"bbbd3f61-3f69-427a-ad42-e0bf21f332fb\",\"trace_id\":\"1ed1d0aa-0b53-42db-8898-bc6028dcf6b5\"}\n[2026-05-11 12:55:02] local.ERROR: [Aircall] Re-activating webhooks failed {\"team_id\":1,\"reason\":\"{\\\"message\\\":\\\"Forbidden\\\"}\"} {\"correlation_id\":\"bbbd3f61-3f69-427a-ad42-e0bf21f332fb\",\"trace_id\":\"1ed1d0aa-0b53-42db-8898-bc6028dcf6b5\"}\n[2026-05-11 12:55:02] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:aircall:check-and-renew\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"bbbd3f61-3f69-427a-ad42-e0bf21f332fb\",\"trace_id\":\"1ed1d0aa-0b53-42db-8898-bc6028dcf6b5\"}\n[2026-05-11 12:55:06] local.INFO: [RetryFailedDownloads] Starting {\"options\":{\"from\":null,\"to\":null,\"help\":false,\"silent\":false,\"quiet\":false,\"verbose\":false,\"version\":false,\"ansi\":null,\"no-interaction\":false,\"env\":null}} {\"correlation_id\":\"0bba9dee-e11e-486c-a2b0-9c5cc7727dd8\",\"trace_id\":\"503f418b-706e-4530-9d36-8d8963a7052b\"}\n[2026-05-11 12:56:05] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"d9e3c7fa-c23d-4eca-b031-433e040b9c83\",\"trace_id\":\"fbee6315-3879-4beb-9238-dc7868160885\"}\n[2026-05-11 12:56:05] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"d9e3c7fa-c23d-4eca-b031-433e040b9c83\",\"trace_id\":\"fbee6315-3879-4beb-9238-dc7868160885\"}\n[2026-05-11 12:56:05] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"d9e3c7fa-c23d-4eca-b031-433e040b9c83\",\"trace_id\":\"fbee6315-3879-4beb-9238-dc7868160885\"}\n[2026-05-11 12:56:07] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"6811a21c-320f-40e4-adf5-e4a973024886\",\"trace_id\":\"ba63e30f-517e-4031-89f3-9cc39e6e5ea7\"}\n[2026-05-11 12:56:07] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"6811a21c-320f-40e4-adf5-e4a973024886\",\"trace_id\":\"ba63e30f-517e-4031-89f3-9cc39e6e5ea7\"}\n[2026-05-11 12:56:12] local.NOTICE: Monitoring start {\"correlation_id\":\"3c2a21d5-8845-4b23-afb8-6f094d5c9fba\",\"trace_id\":\"e6fff20c-4066-4c1e-9d20-54c2da5f7f44\"}\n[2026-05-11 12:56:12] local.NOTICE: Monitoring end {\"correlation_id\":\"3c2a21d5-8845-4b23-afb8-6f094d5c9fba\",\"trace_id\":\"e6fff20c-4066-4c1e-9d20-54c2da5f7f44\"}\n[2026-05-11 12:56:14] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"ae60dfc4-8687-4853-a0b2-0f96f1c2a489\",\"trace_id\":\"7d37e315-814b-47b2-a512-585a2eb66f15\"}\n[2026-05-11 12:56:14] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"ae60dfc4-8687-4853-a0b2-0f96f1c2a489\",\"trace_id\":\"7d37e315-814b-47b2-a512-585a2eb66f15\"}\n[2026-05-11 12:56:17] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"51e7381b-58c5-4f6c-87cf-d087a982652a\",\"trace_id\":\"6534a7b7-6305-41d5-a643-f3c0e14c0b26\"}\n[2026-05-11 12:56:17] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"51e7381b-58c5-4f6c-87cf-d087a982652a\",\"trace_id\":\"6534a7b7-6305-41d5-a643-f3c0e14c0b26\"}\n[2026-05-11 12:56:17] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"51e7381b-58c5-4f6c-87cf-d087a982652a\",\"trace_id\":\"6534a7b7-6305-41d5-a643-f3c0e14c0b26\"}\n[2026-05-11 12:56:17] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"51e7381b-58c5-4f6c-87cf-d087a982652a\",\"trace_id\":\"6534a7b7-6305-41d5-a643-f3c0e14c0b26\"}\n[2026-05-11 12:56:20] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"e1f63aef-2af6-4823-9ceb-b7d4da7f0329\",\"trace_id\":\"73724fe8-11af-41cb-b55c-8a31638b379e\"}\n[2026-05-11 12:56:20] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 12:54:00, 2026-05-11 12:56:00] {\"correlation_id\":\"e1f63aef-2af6-4823-9ceb-b7d4da7f0329\",\"trace_id\":\"73724fe8-11af-41cb-b55c-8a31638b379e\"}\n[2026-05-11 12:56:20] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 12:54:00, 2026-05-11 12:56:00] {\"correlation_id\":\"e1f63aef-2af6-4823-9ceb-b7d4da7f0329\",\"trace_id\":\"73724fe8-11af-41cb-b55c-8a31638b379e\"}\n[2026-05-11 12:56:20] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"e1f63aef-2af6-4823-9ceb-b7d4da7f0329\",\"trace_id\":\"73724fe8-11af-41cb-b55c-8a31638b379e\"}\n[2026-05-11 12:56:22] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:sync-hubspot-objects\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"2a027ef1-d1bc-46b9-9aa7-37d2ef3c4bf1\",\"trace_id\":\"562958bd-7185-4e4d-9127-ece685e5015c\"}\n[2026-05-11 12:56:22] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:sync-hubspot-objects\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"2a027ef1-d1bc-46b9-9aa7-37d2ef3c4bf1\",\"trace_id\":\"562958bd-7185-4e4d-9127-ece685e5015c\"}\n[2026-05-11 12:56:23] local.INFO: [SyncHubspotObjects] Starting sync {\"team\":\"abae74b8-bfa8-4383-9a7f-89f4bf2bdbb4\",\"usage\":24323216,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"05af9baa-9cc7-4520-aaca-a16765976dce\",\"trace_id\":\"562958bd-7185-4e4d-9127-ece685e5015c\"}\n[2026-05-11 12:56:23] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05af9baa-9cc7-4520-aaca-a16765976dce\",\"trace_id\":\"562958bd-7185-4e4d-9127-ece685e5015c\"}\n[2026-05-11 12:56:23] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05af9baa-9cc7-4520-aaca-a16765976dce\",\"trace_id\":\"562958bd-7185-4e4d-9127-ece685e5015c\"}\n[2026-05-11 12:56:23] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"05af9baa-9cc7-4520-aaca-a16765976dce\",\"trace_id\":\"562958bd-7185-4e4d-9127-ece685e5015c\"}\n[2026-05-11 12:56:23] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1499,\"provider\":\"hubspot\",\"refreshToken\":\"96f94c623a404e02ebdbf07f1b75707bb6cdbf848cbf45d418baf608c41a8d86\",\"state\":\"connected\"} {\"correlation_id\":\"05af9baa-9cc7-4520-aaca-a16765976dce\",\"trace_id\":\"562958bd-7185-4e4d-9127-ece685e5015c\"}\n[2026-05-11 12:56:23] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"05af9baa-9cc7-4520-aaca-a16765976dce\",\"trace_id\":\"562958bd-7185-4e4d-9127-ece685e5015c\"}\n[2026-05-11 12:56:23] local.INFO: [SocialAccountObserver] Access token was modified, encrypting {\"correlation_id\":\"05af9baa-9cc7-4520-aaca-a16765976dce\",\"trace_id\":\"562958bd-7185-4e4d-9127-ece685e5015c\"}\n[2026-05-11 12:56:24] local.INFO: [SocialAccountService] Token refreshed {\"socialAccountId\":1499,\"provider\":\"hubspot\",\"state\":\"connected\"} {\"correlation_id\":\"05af9baa-9cc7-4520-aaca-a16765976dce\",\"trace_id\":\"562958bd-7185-4e4d-9127-ece685e5015c\"}\n[2026-05-11 12:56:24] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"05af9baa-9cc7-4520-aaca-a16765976dce\",\"trace_id\":\"562958bd-7185-4e4d-9127-ece685e5015c\"}\n[2026-05-11 12:56:24] local.INFO: [HubSpot] Syncing opportunities using strategy: lastModified {\"team\":2} {\"correlation_id\":\"05af9baa-9cc7-4520-aaca-a16765976dce\",\"trace_id\":\"562958bd-7185-4e4d-9127-ece685e5015c\"}\n[2026-05-11 12:56:24] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.38,\"average_seconds_per_request\":0.38} {\"correlation_id\":\"05af9baa-9cc7-4520-aaca-a16765976dce\",\"trace_id\":\"562958bd-7185-4e4d-9127-ece685e5015c\"}\n[2026-05-11 12:56:24] local.INFO: [HubSpot] Synced opportunities {\"team\":2,\"strategies\":\"lastModified\",\"sync_count\":0,\"total\":0,\"last_synced_id\":null,\"duration_ms\":425.55} {\"correlation_id\":\"05af9baa-9cc7-4520-aaca-a16765976dce\",\"trace_id\":\"562958bd-7185-4e4d-9127-ece685e5015c\"}\n[2026-05-11 12:56:24] local.INFO: [SyncHubspotObjects] Sync finished {\"team\":\"abae74b8-bfa8-4383-9a7f-89f4bf2bdbb4\",\"provider\":\"hubspot\",\"status\":\"completed\",\"duration_ms\":1641.74,\"usage\":24523328,\"real_usage\":65011712,\"pid\":74083} {\"correlation_id\":\"05af9baa-9cc7-4520-aaca-a16765976dce\",\"trace_id\":\"562958bd-7185-4e4d-9127-ece685e5015c\"}\n[2026-05-11 12:56:24] local.INFO: [SyncHubspotObjects] Starting sync {\"team\":\"b2d49a54-b645-4637-a7ae-a86cfce6e8e4\",\"usage\":24497992,\"real_usage\":65011712,\"pid\":74083} {\"correlation_id\":\"781b74c2-a11c-475f-b2b9-62c36145f8ec\",\"trace_id\":\"562958bd-7185-4e4d-9127-ece685e5015c\"}\n[2026-05-11 12:56:24] local.WARNING: [HubSpot] Account not connected for user {\"userId\":\"2ac0447f-3c8c-4ce0-baeb-b63ddb76fa9b\",\"account\":null} {\"correlation_id\":\"781b74c2-a11c-475f-b2b9-62c36145f8ec\",\"trace_id\":\"562958bd-7185-4e4d-9127-ece685e5015c\"}\n[2026-05-11 12:56:24] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"hubspot\",\"crm_owner\":130,\"team_id\":42} {\"correlation_id\":\"781b74c2-a11c-475f-b2b9-62c36145f8ec\",\"trace_id\":\"562958bd-7185-4e4d-9127-ece685e5015c\"}\n[2026-05-11 12:56:24] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":42} {\"correlation_id\":\"781b74c2-a11c-475f-b2b9-62c36145f8ec\",\"trace_id\":\"562958bd-7185-4e4d-9127-ece685e5015c\"}\n[2026-05-11 12:56:24] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":42} {\"correlation_id\":\"781b74c2-a11c-475f-b2b9-62c36145f8ec\",\"trace_id\":\"562958bd-7185-4e4d-9127-ece685e5015c\"}\n[2026-05-11 12:56:24] local.INFO: [SyncHubspotObjects] Sync finished {\"team\":\"b2d49a54-b645-4637-a7ae-a86cfce6e8e4\",\"provider\":\"hubspot\",\"status\":\"disconnected\",\"duration_ms\":133.88,\"usage\":24475192,\"real_usage\":65011712,\"pid\":74083,\"reason\":\"Social account for HubSpot cannot be found. Please login to Jiminny to connect.\"} {\"correlation_id\":\"781b74c2-a11c-475f-b2b9-62c36145f8ec\",\"trace_id\":\"562958bd-7185-4e4d-9127-ece685e5015c\"}\n[2026-05-11 12:56:24] local.INFO: [SyncHubspotObjects] Starting sync {\"team\":\"b2b115eb-93ce-4d1b-929c-173757df8fba\",\"usage\":24435944,\"real_usage\":65011712,\"pid\":74083} {\"correlation_id\":\"0b248ea5-6124-4c86-9340-975e5add6c66\",\"trace_id\":\"562958bd-7185-4e4d-9127-ece685e5015c\"}\n[2026-05-11 12:56:24] local.WARNING: [HubSpot] Account not connected for user {\"userId\":\"33e34a7a-1c02-4f04-87ac-22c3a385e6e3\",\"account\":{\"Jiminny\\\\Models\\\\SocialAccount\":{\"id\":306,\"sociable_id\":109,\"provider_user_id\":\"11348452\",\"expires\":1701077403,\"refresh_token_expires\":null,\"provider\":\"hubspot\",\"state\":\"full-refresh\",\"auth_scope\":null,\"retry_after\":null,\"created_at\":\"2020-09-01 16:59:04\",\"updated_at\":\"2023-11-27 09:30:03\"}}} {\"correlation_id\":\"0b248ea5-6124-4c86-9340-975e5add6c66\",\"trace_id\":\"562958bd-7185-4e4d-9127-ece685e5015c\"}\n[2026-05-11 12:56:25] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"hubspot\",\"crm_owner\":109,\"team_id\":29} {\"correlation_id\":\"0b248ea5-6124-4c86-9340-975e5add6c66\",\"trace_id\":\"562958bd-7185-4e4d-9127-ece685e5015c\"}\n[2026-05-11 12:56:25] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":29} {\"correlation_id\":\"0b248ea5-6124-4c86-9340-975e5add6c66\",\"trace_id\":\"562958bd-7185-4e4d-9127-ece685e5015c\"}\n[2026-05-11 12:56:25] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":29} {\"correlation_id\":\"0b248ea5-6124-4c86-9340-975e5add6c66\",\"trace_id\":\"562958bd-7185-4e4d-9127-ece685e5015c\"}\n[2026-05-11 12:56:25] local.INFO: [SyncHubspotObjects] Sync finished {\"team\":\"b2b115eb-93ce-4d1b-929c-173757df8fba\",\"provider\":\"hubspot\",\"status\":\"disconnected\",\"duration_ms\":279.28,\"usage\":24497984,\"real_usage\":65011712,\"pid\":74083,\"reason\":\"Your HubSpot account has become disconnected. Please login to Jiminny to reconnect.\"} {\"correlation_id\":\"0b248ea5-6124-4c86-9340-975e5add6c66\",\"trace_id\":\"562958bd-7185-4e4d-9127-ece685e5015c\"}\n[2026-05-11 12:56:25] local.INFO: [SyncHubspotObjects] Starting sync {\"team\":\"c6b9d6b0-b48d-4832-a68c-a57d60651888\",\"usage\":24455488,\"real_usage\":65011712,\"pid\":74083} {\"correlation_id\":\"8a90cba2-a8b2-44ba-8715-ea3515ab1934\",\"trace_id\":\"562958bd-7185-4e4d-9127-ece685e5015c\"}\n[2026-05-11 12:56:25] local.WARNING: [HubSpot] Account not connected for user {\"userId\":\"71e3aac5-fb66-47c5-a236-2d051ae3e319\",\"account\":null} {\"correlation_id\":\"8a90cba2-a8b2-44ba-8715-ea3515ab1934\",\"trace_id\":\"562958bd-7185-4e4d-9127-ece685e5015c\"}\n[2026-05-11 12:56:25] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"hubspot\",\"crm_owner\":256,\"team_id\":49} {\"correlation_id\":\"8a90cba2-a8b2-44ba-8715-ea3515ab1934\",\"trace_id\":\"562958bd-7185-4e4d-9127-ece685e5015c\"}\n[2026-05-11 12:56:25] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":49} {\"correlation_id\":\"8a90cba2-a8b2-44ba-8715-ea3515ab1934\",\"trace_id\":\"562958bd-7185-4e4d-9127-ece685e5015c\"}\n[2026-05-11 12:56:25] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":49} {\"correlation_id\":\"8a90cba2-a8b2-44ba-8715-ea3515ab1934\",\"trace_id\":\"562958bd-7185-4e4d-9127-ece685e5015c\"}\n[2026-05-11 12:56:25] local.INFO: [SyncHubspotObjects] Sync finished {\"team\":\"c6b9d6b0-b48d-4832-a68c-a57d60651888\",\"provider\":\"hubspot\",\"status\":\"disconnected\",\"duration_ms\":100.02,\"usage\":24471608,\"real_usage\":65011712,\"pid\":74083,\"reason\":\"Social account for HubSpot cannot be found. Please login to Jiminny to connect.\"} {\"correlation_id\":\"8a90cba2-a8b2-44ba-8715-ea3515ab1934\",\"trace_id\":\"562958bd-7185-4e4d-9127-ece685e5015c\"}\n[2026-05-11 12:56:28] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:notify-not-logged\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"de0629ae-2f96-4bdd-8828-9238ab100a4b\",\"trace_id\":\"ec67a07b-f71a-47e4-a047-93cfc5c875bb\"}\n[2026-05-11 12:56:29] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:notify-not-logged\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"de0629ae-2f96-4bdd-8828-9238ab100a4b\",\"trace_id\":\"ec67a07b-f71a-47e4-a047-93cfc5c875bb\"}\n[2026-05-11 12:56:35] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"c702a967-f054-4d71-bc81-35306b2464ae\",\"trace_id\":\"bae43efd-c04a-42db-8082-6116d320b676\"}\n[2026-05-11 12:56:35] local.INFO: [EmailSchedule] STARTING Inbox Sync {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"c702a967-f054-4d71-bc81-35306b2464ae\",\"trace_id\":\"bae43efd-c04a-42db-8082-6116d320b676\"}\n[2026-05-11 12:56:35] local.INFO: [EmailSchedule] FINISHED Inbox Sync {\"host\":\"docker_lamp_1\",\"events\":2} {\"correlation_id\":\"c702a967-f054-4d71-bc81-35306b2464ae\",\"trace_id\":\"bae43efd-c04a-42db-8082-6116d320b676\"}\n[2026-05-11 12:56:35] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"c702a967-f054-4d71-bc81-35306b2464ae\",\"trace_id\":\"bae43efd-c04a-42db-8082-6116d320b676\"}\n[2026-05-11 12:56:38] local.INFO: [Sync Mailbox] Sync start {\"inbox_id\":59} {\"correlation_id\":\"d714d7ca-7da0-4e1f-9847-ce912092716b\",\"trace_id\":\"bae43efd-c04a-42db-8082-6116d320b676\"}\n[2026-05-11 12:56:38] local.INFO: [Inbox service] Skipping METADATA SYNC for inbox 59 due to unauthorized access to the mailbox {\"correlation_id\":\"d714d7ca-7da0-4e1f-9847-ce912092716b\",\"trace_id\":\"bae43efd-c04a-42db-8082-6116d320b676\"}\n[2026-05-11 12:56:38] local.INFO: [Sync Mailbox] Sync complete {\"inbox_id\":59} {\"correlation_id\":\"d714d7ca-7da0-4e1f-9847-ce912092716b\",\"trace_id\":\"bae43efd-c04a-42db-8082-6116d320b676\"}\n[2026-05-11 12:56:38] local.INFO: [Sync Mailbox] Sync start {\"inbox_id\":212} {\"correlation_id\":\"33be6d30-2ce9-43fd-b1cd-b09b8db09e50\",\"trace_id\":\"bae43efd-c04a-42db-8082-6116d320b676\"}\n[2026-05-11 12:56:38] local.INFO: [Inbox service] Skipping METADATA SYNC for inbox 212 due to unauthorized access to the mailbox {\"correlation_id\":\"33be6d30-2ce9-43fd-b1cd-b09b8db09e50\",\"trace_id\":\"bae43efd-c04a-42db-8082-6116d320b676\"}\n[2026-05-11 12:56:38] local.INFO: [Sync Mailbox] Sync complete {\"inbox_id\":212} {\"correlation_id\":\"33be6d30-2ce9-43fd-b1cd-b09b8db09e50\",\"trace_id\":\"bae43efd-c04a-42db-8082-6116d320b676\"}\n[2026-05-11 12:57:06] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"3cd76c2b-1df2-46f4-80ca-11116e49faa7\",\"trace_id\":\"3ebaa5f1-a345-4004-ac87-212a4cb725d0\"}\n[2026-05-11 12:57:06] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"3cd76c2b-1df2-46f4-80ca-11116e49faa7\",\"trace_id\":\"3ebaa5f1-a345-4004-ac87-212a4cb725d0\"}\n[2026-05-11 12:57:06] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"3cd76c2b-1df2-46f4-80ca-11116e49faa7\",\"trace_id\":\"3ebaa5f1-a345-4004-ac87-212a4cb725d0\"}\n[2026-05-11 12:57:09] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"03bc3c99-69f1-4522-be3f-562f793c5073\",\"trace_id\":\"de921d11-d6ab-4b89-b22a-50abe1e9a9bd\"}\n[2026-05-11 12:57:09] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"03bc3c99-69f1-4522-be3f-562f793c5073\",\"trace_id\":\"de921d11-d6ab-4b89-b22a-50abe1e9a9bd\"}\n[2026-05-11 12:57:17] local.NOTICE: Monitoring start {\"correlation_id\":\"113f8d3a-8b62-4b20-9d0a-7697a887342e\",\"trace_id\":\"fdd0489d-da38-4e7e-a86e-03cd51f4b8b0\"}\n[2026-05-11 12:57:17] local.NOTICE: Monitoring end {\"correlation_id\":\"113f8d3a-8b62-4b20-9d0a-7697a887342e\",\"trace_id\":\"fdd0489d-da38-4e7e-a86e-03cd51f4b8b0\"}\n[2026-05-11 12:57:20] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"b31f6833-5840-4515-a57c-52cb790bdde3\",\"trace_id\":\"3093819c-1a7a-4c22-9aa4-8e2d26b0fd02\"}\n[2026-05-11 12:57:21] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"b31f6833-5840-4515-a57c-52cb790bdde3\",\"trace_id\":\"3093819c-1a7a-4c22-9aa4-8e2d26b0fd02\"}\n[2026-05-11 12:57:27] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"d6dd12d3-a4d6-4a6d-9154-dd0ed404133b\",\"trace_id\":\"737774ee-74d4-4cb6-961c-af938c3dee95\"}\n[2026-05-11 12:57:27] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"d6dd12d3-a4d6-4a6d-9154-dd0ed404133b\",\"trace_id\":\"737774ee-74d4-4cb6-961c-af938c3dee95\"}\n[2026-05-11 12:57:27] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"d6dd12d3-a4d6-4a6d-9154-dd0ed404133b\",\"trace_id\":\"737774ee-74d4-4cb6-961c-af938c3dee95\"}\n[2026-05-11 12:57:27] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"d6dd12d3-a4d6-4a6d-9154-dd0ed404133b\",\"trace_id\":\"737774ee-74d4-4cb6-961c-af938c3dee95\"}\n[2026-05-11 12:57:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"f9c36853-5dcb-4606-bfc1-9a4101d735b3\",\"trace_id\":\"d1b9ac7f-39c0-4858-a72b-e304627b1f4d\"}\n[2026-05-11 12:57:31] local.INFO: [EmailSchedule] STARTING batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"f9c36853-5dcb-4606-bfc1-9a4101d735b3\",\"trace_id\":\"d1b9ac7f-39c0-4858-a72b-e304627b1f4d\"}\n[2026-05-11 12:57:32] local.INFO: [EmailSchedule] FINISHED batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"f9c36853-5dcb-4606-bfc1-9a4101d735b3\",\"trace_id\":\"d1b9ac7f-39c0-4858-a72b-e304627b1f4d\"}\n[2026-05-11 12:57:32] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"f9c36853-5dcb-4606-bfc1-9a4101d735b3\",\"trace_id\":\"d1b9ac7f-39c0-4858-a72b-e304627b1f4d\"}\n[2026-05-11 12:57:32] local.INFO: [Jiminny\\Jobs\\Mailbox\\CreateBatches] processed 2 inboxes and created 0 batches {\"userId\":null,\"batchSize\":30,\"maxBatches\":1000} {\"correlation_id\":\"c6145b9c-1c18-4073-ae56-415227cda914\",\"trace_id\":\"d1b9ac7f-39c0-4858-a72b-e304627b1f4d\"}","depth":4,"on_screen":true,"value":"[2026-05-11 11:17:21] local.NOTICE: Monitoring start {\"correlation_id\":\"885fde59-3852-4120-a620-af3da7ecce17\",\"trace_id\":\"4cc10f53-5d39-418d-8e98-fe53d9bbff5f\"}\n[2026-05-11 11:17:21] local.NOTICE: Monitoring end {\"correlation_id\":\"885fde59-3852-4120-a620-af3da7ecce17\",\"trace_id\":\"4cc10f53-5d39-418d-8e98-fe53d9bbff5f\"}\n[2026-05-11 11:17:34] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90\",\"trace_id\":\"fb6d8028-db7d-4ef2-b175-740f0a7b8b39\"}\n[2026-05-11 11:17:35] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90\",\"trace_id\":\"fb6d8028-db7d-4ef2-b175-740f0a7b8b39\"}\n[2026-05-11 11:17:37] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":615092,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":615092} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":615092,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":615092,\"participants\":[{\"id\":1004102,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1004103,\"user_id\":89,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:37] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"nikolay.nikolov@jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/nikolay.nikolov%40jiminny.com?properties=email%2Cfirstname%2Clastname%2Ccountry%2Cphone%2Cmobilephone%2Cjobtitle%2Chubspot_owner_id%2Cassociatedcompanyid%2Cphoto&archived=0&idProperty=email` resulted in a `404 Not Found` response\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"reason\":\"Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response:\n{\\\"status\\\":\\\"error\\\",\\\"message\\\":\\\"You have reached your secondly limit.\\\",\\\"errorType\\\":\\\"RATE_LIMIT\\\",\\\"correlationId\\\":\\\"019e16c1-c (truncated...)\n\"} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":4} {\"correlation_id\":\"01554272-3758-416d-bcd8-0b07cf17fce3\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":614436,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614436} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614436,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":614436,\"participants\":[{\"id\":1002751,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1002752,\"user_id\":89,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:38] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":3} {\"correlation_id\":\"6f97c580-31f1-4723-80d8-b1046a615d37\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":614382,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614382} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614382,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":614382,\"participants\":[{\"id\":1002632,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1002633,\"user_id\":89,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":1} {\"correlation_id\":\"80fe8576-047a-495f-b42a-d75cb83d9591\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":614381,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614381} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614381,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":614381,\"participants\":[{\"id\":1002630,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1002631,\"user_id\":89,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"reason\":\"Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response:\n{\\\"status\\\":\\\"error\\\",\\\"message\\\":\\\"You have reached your secondly limit.\\\",\\\"errorType\\\":\\\"RATE_LIMIT\\\",\\\"correlationId\\\":\\\"019e16c1-c (truncated...)\n\"} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":2} {\"correlation_id\":\"55cd98de-2b2f-4dd6-b0d5-36af698ea32d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":614378,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":6167,\"account_id\":null,\"opportunity_id\":null,\"stage_id\":null}} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614378} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614378,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":614378,\"participants\":[{\"id\":1002623,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1002624,\"user_id\":null,\"contact_id\":6167,\"lead_id\":null},{\"id\":1002625,\"user_id\":89,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":3} {\"correlation_id\":\"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613840,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613840} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613840,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613840,\"participants\":[{\"id\":1001764,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001765,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":261} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":299} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613840,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613840,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613840} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613840,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613840,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613833,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613833} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613833,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613833,\"participants\":[{\"id\":1001750,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001751,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":1.0,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613833,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613833,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613833} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613833,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613833,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613827,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613827} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613827,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613827,\"participants\":[{\"id\":1001734,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001735,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613827,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613827,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613827} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613827,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613827,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"d1d42ab0-5c87-42e8-a91f-a56b538619ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613826,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613826} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613826,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613826,\"participants\":[{\"id\":1001732,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001733,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613826,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613826,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613826} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613826,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613826,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"861e79c7-b5d3-4476-b429-0f1b4cf196a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613820,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613820} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613820,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613820,\"participants\":[{\"id\":1001721,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001722,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613820,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613820,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613820} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613820,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613820,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"97a99ff2-5956-4d77-837b-790c01b09967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613818,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613818} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613818,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:40] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613818,\"participants\":[{\"id\":1001717,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001718,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613818,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613818,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613818} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613818,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613818,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"300f80c3-6a45-4372-85a9-9fe439206596\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613812,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613812} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613812,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613812,\"participants\":[{\"id\":1001705,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001706,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613812,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613812,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613812} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613812,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613812,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"7a348156-9d36-4f25-ad5e-4fbfce8fd82a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613807,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4484,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613807} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613807,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613807,\"participants\":[{\"id\":1001690,\"user_id\":253,\"contact_id\":null,\"lead_id\":null},{\"id\":1001691,\"user_id\":null,\"contact_id\":4484,\"lead_id\":null}]} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613807,\"team_id\":2,\"email\":\"preslava.ivanova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4484,\"owner_id\":253} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4484} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4484,\"opportunity_id\":276} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"tsvetomir.banovski@gmail.com\"} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613807,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613807} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613807,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613807,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4484,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"499c94c1-2716-49a2-9cdf-d5eb84f68ac6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613806,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34}} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613806} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613806,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613806,\"participants\":[{\"id\":1001688,\"user_id\":253,\"contact_id\":null,\"lead_id\":null},{\"id\":1001689,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613806,\"team_id\":2,\"email\":\"preslava.ivanova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":253} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613806,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613806} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613806,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613806,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"7ce06f3c-60ee-46e5-a4dd-5b2b95b5bb64\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613805,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34}} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613805} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613805,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613805,\"participants\":[{\"id\":1001686,\"user_id\":253,\"contact_id\":null,\"lead_id\":null},{\"id\":1001687,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613805,\"team_id\":2,\"email\":\"preslava.ivanova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613805,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613805} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613805,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613805,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"9d268b15-7a74-40a7-a15c-f91054c54d96\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613698,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613698} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613698,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613698,\"participants\":[{\"id\":1001667,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001668,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613698,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613698,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613698} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613698,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613698,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"b347b4f8-2099-4fd0-86a2-735eb4d1c5a0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613697,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613697} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613697,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613697,\"participants\":[{\"id\":1001665,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001666,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613697,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613697,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613697} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613697,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613697,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"bbd8f44b-f8df-4187-889c-55f3536e4b2b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613696,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613696} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613696,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:41] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613696,\"participants\":[{\"id\":1001663,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001664,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613696,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613696,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613696} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613696,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613696,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"a49ef1a2-1961-4831-8425-89bedec362f9\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613695,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613695} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613695,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613695,\"participants\":[{\"id\":1001661,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001662,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613695,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613695,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613695} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613695,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613695,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"5a448789-544e-4bf0-906d-aa7745a76fa7\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613694,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613694} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613694,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613694,\"participants\":[{\"id\":1001659,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1001660,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613694,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613694,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613694} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613694,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613694,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"816a5557-12ef-4f10-964e-fb5da4d1024b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613157,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34}} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613157} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613157,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613157,\"participants\":[{\"id\":1000746,\"user_id\":253,\"contact_id\":null,\"lead_id\":null},{\"id\":1000747,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613157,\"team_id\":2,\"email\":\"preslava.ivanova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613157,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613157} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613157,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613157,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"03eaee80-dad2-4f52-b0c4-ca587c0bd5a1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613156,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34}} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613156} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613156,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613156,\"participants\":[{\"id\":1000744,\"user_id\":253,\"contact_id\":null,\"lead_id\":null},{\"id\":1000745,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613156,\"team_id\":2,\"email\":\"preslava.ivanova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613156,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613156} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613156,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613156,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"0e646a90-8a23-4b8f-bef7-d4404cdc448e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613155,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34}} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613155} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613155,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613155,\"participants\":[{\"id\":1000742,\"user_id\":253,\"contact_id\":null,\"lead_id\":null},{\"id\":1000743,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613155,\"team_id\":2,\"email\":\"preslava.ivanova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613155,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613155} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613155,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613155,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"e5deb2bc-6198-453a-bc77-dfc3b86ed330\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"859a4ec6-5c81-4283-bb96-c3ebaf5ff599\",\"trace_id\":\"f8a2783e-c54a-4d43-8cf6-61594479b0e7\"}\n[2026-05-11 11:17:42] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":613130,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613130} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613130,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":613130,\"participants\":[{\"id\":1000693,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1000694,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":613130,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":613130,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":613130} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":613130,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:42] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":613130,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"82d063fd-d6ec-4181-b9db-f7a3ef17fdaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612924,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":165,\"stage_id\":89}} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612924} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612924,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612924,\"participants\":[{\"id\":1000290,\"user_id\":19,\"contact_id\":null,\"lead_id\":null},{\"id\":1000291,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612924,\"team_id\":2,\"email\":\"james.graham@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":69,\"contact_id\":97,\"owner_id\":19} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":69,\"contact_id\":97,\"opportunity_id\":165} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612924,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612924} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612924,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612924,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":165,\"stage_id\":89} {\"correlation_id\":\"cb00d0fd-ad25-43c5-8390-7596ea614d43\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612923,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":165,\"stage_id\":89}} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612923} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612923,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612923,\"participants\":[{\"id\":1000288,\"user_id\":19,\"contact_id\":null,\"lead_id\":null},{\"id\":1000289,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612923,\"team_id\":2,\"email\":\"james.graham@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612923,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612923} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612923,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612923,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":165,\"stage_id\":89} {\"correlation_id\":\"2c16c154-a215-4582-9980-ebd7ee64044a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612922,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":165,\"stage_id\":89}} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612922} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612922,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612922,\"participants\":[{\"id\":1000286,\"user_id\":19,\"contact_id\":null,\"lead_id\":null},{\"id\":1000287,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612922,\"team_id\":2,\"email\":\"james.graham@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612922,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612922} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612922,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612922,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":165,\"stage_id\":89} {\"correlation_id\":\"4b1d2748-24b2-4a6b-8e7a-2fef29e92699\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612847,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612847} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612847,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612847,\"participants\":[{\"id\":1000130,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1000131,\"user_id\":261,\"contact_id\":null,\"lead_id\":null},{\"id\":1000151,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:43] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"adelina.petrova@jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/adelina.petrova%40jiminny.com?properties=email%2Cfirstname%2Clastname%2Ccountry%2Cphone%2Cmobilephone%2Cjobtitle%2Chubspot_owner_id%2Cassociatedcompanyid%2Cphoto&archived=0&idProperty=email` resulted in a `404 Not Found` response\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"reason\":\"Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response:\n{\\\"status\\\":\\\"error\\\",\\\"message\\\":\\\"You have reached your secondly limit.\\\",\\\"errorType\\\":\\\"RATE_LIMIT\\\",\\\"correlationId\\\":\\\"019e16c1-d (truncated...)\n\"} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":5} {\"correlation_id\":\"370e35c5-d81b-4c82-987e-e6bfe92913c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612822,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612822} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612822,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:44] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612822,\"participants\":[{\"id\":1000080,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1000081,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612822,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612822,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612822} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612822,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612822,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"629c3489-2741-42d3-872d-118c8ddef317\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612819,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612819} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612819,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612819,\"participants\":[{\"id\":1000073,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1000074,\"user_id\":261,\"contact_id\":null,\"lead_id\":null},{\"id\":1000075,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612819,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:47] local.WARNING: [Hubspot] Received 429 from API {\"team_id\":2,\"config_id\":2,\"retry_after\":1,\"reason\":\"Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response:\n{\\\"status\\\":\\\"error\\\",\\\"message\\\":\\\"You have reached your secondly limit.\\\",\\\"errorType\\\":\\\"RATE_LIMIT\\\",\\\"correlationId\\\":\\\"019e16c1-e (truncated...)\n\"} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:47] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {\"job_class\":\"Jiminny\\\\Jobs\\\\Crm\\\\MatchActivityCrmData\",\"attempts\":1,\"retry_after\":1,\"delay\":4} {\"correlation_id\":\"275577f1-42f7-466e-9ce6-c17b3f2fa4ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612673,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612673} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612673,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612673,\"participants\":[{\"id\":999993,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999994,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612673,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612673,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612673} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612673,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612673,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"7d0f2fd2-918d-403e-a6ce-e803fbdc5b08\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612642,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612642} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612642,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612642,\"participants\":[{\"id\":999935,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999936,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:49] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612642,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612642,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612642} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612642,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612642,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"97ce283e-ee51-4404-bc23-21d951bddd4b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612598,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612598} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612598,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612598,\"participants\":[{\"id\":999857,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999858,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4491,\"owner_id\":206} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4491} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4491,\"opportunity_id\":276} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612598,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612598,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612598} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612598,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:51] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612598,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"dd9259e7-418a-47a0-8057-6d73eb23b66f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612597,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612597} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612597,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612597,\"participants\":[{\"id\":999855,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999856,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612597,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:53] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612597,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612597} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612597,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:54] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612597,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"e3420252-13cf-48c2-bb64-835fa0b7a4a4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612596,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612596} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612596,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612596,\"participants\":[{\"id\":999853,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999854,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612596,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612596,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612596} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612596,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:55] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612596,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"0a7ad0b2-4fbb-4bc6-ac63-ab9a3755668d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612595,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612595} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612595,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612595,\"participants\":[{\"id\":999851,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999852,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612595,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612595,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612595} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612595,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:56] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612595,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"ab7b332f-3248-47be-ae07-2194ad2db67f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612594,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612594} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612594,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612594,\"participants\":[{\"id\":999849,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999850,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612594,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612594,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612594} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612594,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:57] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612594,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"3e75582e-1c8d-4a79-b2f5-c5b402351b6e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612593,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612593} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612593,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612593,\"participants\":[{\"id\":999847,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999848,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612593,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612593,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612593} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612593,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612593,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"aa3bcf96-a28f-41da-9705-9ed54e0c2102\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612592,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612592} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612592,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:58] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612592,\"participants\":[{\"id\":999845,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999846,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612592,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612592,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612592} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612592,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612592,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"26135f3d-da44-4d76-a60f-10382d2fb967\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612591,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612591} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612591,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:17:59] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612591,\"participants\":[{\"id\":999843,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999844,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612591,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612591,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612591} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612591,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612591,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"b8d871e8-9441-4887-b52c-673ba317b86f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612590,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612590} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612590,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612590,\"participants\":[{\"id\":999841,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999842,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612590,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612590,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612590} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612590,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:00] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612590,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"a5db6a27-7474-478f-ae10-588189dcf4c5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612589,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612589} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612589,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612589,\"participants\":[{\"id\":999839,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999840,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612589,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612589,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612589} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612589,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612589,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"cf2e7822-f4b9-4a8d-8a4f-191d404ca5d8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612588,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612588} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612588,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:01] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612588,\"participants\":[{\"id\":999837,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999838,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612588,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612588,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612588} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612588,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612588,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"48ab04f3-8832-412a-b14d-ef2d05d438c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":16.99,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:02] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612587,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612587} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612587,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612587,\"participants\":[{\"id\":999835,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999836,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612587,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612587,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612587} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612587,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612587,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"ddc565df-f051-4082-9bd2-4eb892b2bed2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612586,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612586} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612586,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612586,\"participants\":[{\"id\":999833,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999834,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612586,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612586,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612586} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612586,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:02] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612586,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"0ec5d5d4-7b90-4702-86a4-3dd3318a0456\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612585,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612585} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612585,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612585,\"participants\":[{\"id\":999831,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999832,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:03] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612585,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612585,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612585} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612585,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612585,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"06ce1669-8714-4bd5-b110-0d8905e544eb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612584,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:04] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612584} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612584,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612584,\"participants\":[{\"id\":999829,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999830,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:05] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612584,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612584,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612584} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612584,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612584,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"9e046bb0-fe09-4981-90d8-9e4e1a2d9821\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612583,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612583} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612583,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:06] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612583,\"participants\":[{\"id\":999827,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999828,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612583,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612583,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612583} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:07] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612583,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:08] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612583,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"4bb39316-5956-491d-9643-e85e3a2d2295\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612582,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612582} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612582,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612582,\"participants\":[{\"id\":999825,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999826,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612582,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612582,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612582} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:09] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612582,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:10] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612582,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"233ce7c6-8ba8-4646-b04e-55dc11e56023\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612581,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612581} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612581,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612581,\"participants\":[{\"id\":999823,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999824,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":4.14,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:11] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:11] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612581,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612581,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612581} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612581,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:12] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612581,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"225d184a-6550-4e96-b55f-b2f6affc3f72\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612565,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612565} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612565,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612565,\"participants\":[{\"id\":999789,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999790,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null}]} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:15] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612565,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612565,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612565} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:15] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612565,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612565,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"b86ac27b-8e79-4924-8480-832bda0a162c\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] local.INFO: [EmailSchedule] STARTING batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:16] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612563,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34}} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612563} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612563,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:16] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612563,\"participants\":[{\"id\":999784,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999785,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612563,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":206} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:17] local.INFO: [EmailSchedule] FINISHED batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"feff8215-75fe-40b2-916e-951435e048aa\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:18] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612563,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612563} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612563,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612563,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"8e17d06e-8ffc-4d65-80f6-6b11aa27d46e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:19] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":3.06,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:19] local.INFO: [Jiminny\\Jobs\\Mailbox\\CreateBatches] processed 2 inboxes and created 0 batches {\"userId\":null,\"batchSize\":30,\"maxBatches\":1000} {\"correlation_id\":\"5a640073-717d-40da-ad67-be02e37c56a2\",\"trace_id\":\"46d069ed-7c2b-4fdc-9679-9ec571a88271\"}\n[2026-05-11 11:18:20] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612562,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612562} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612562,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612562,\"participants\":[{\"id\":999782,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":999783,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:20] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:21] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"447782589921@txt.staging.jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/447782589921%40txt.staging.jiminny.com?properties=email%2Cfirstname%2Clastname%2Ccountry%2Cphone%2Cmobilephone%2Cjobtitle%2Chubspot_owner_id%2Cassociatedcompanyid%2Cphoto&archived=0&idProperty=email` resulted in a `404 Not Found` response\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:21] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:21] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.24,\"average_seconds_per_request\":0.24} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"447782589921@txt.staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:22] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.32,\"average_seconds_per_request\":0.32} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612562,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612562,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612562} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612562,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612562,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"dd25d3ff-8533-4fac-bf1d-a0656234ea85\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612561,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612561} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612561,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612561,\"participants\":[{\"id\":999780,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999781,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:23] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612561,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"447700174614.447782589921.OeREojLVnk@txt.staging.jiminny.com\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"447700174614.447782589921.OeREojLVnk@txt.staging.jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/447700174614.447782589921.OeREojLVnk%40txt.staging.jiminny.com?properties=email%2Cfirstname%2Clastname%2Ccountry%2Cphone%2Cmobilephone%2Cjobtitle%2Chubspot_owner_id%2Cassociatedcompanyid%2Cphoto&archived=0&idProperty=email` resulted in a `404 Not Found` response\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"447700174614.447782589921.OeREojLVnk@txt.staging.jiminny.com\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"447700174614.447782589921.OeREojLVnk@txt.staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612561,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612561} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612561,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612561,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"726b3674-684a-493a-8b19-6872339717d0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612560,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612560} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612560,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612560,\"participants\":[{\"id\":999778,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":999779,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"447782589921@txt.staging.jiminny.com\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"447782589921@txt.staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612560,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612560,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612560} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612560,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:24] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612560,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"028beef2-7b15-4dd5-80e0-0629fd918aaf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612559,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":1.89,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:26] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612559} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612559,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612559,\"participants\":[{\"id\":999776,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999777,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612559,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":69,\"contact_id\":97,\"owner_id\":206} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":69,\"contact_id\":97} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":69,\"contact_id\":97,\"opportunity_id\":5011} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612559,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612559} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612559,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:26] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612559,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"4e01dc54-b912-46cc-bf4c-c6a0fd5627f0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612558,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612558} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612558,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612558,\"participants\":[{\"id\":999774,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999775,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612558,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612558,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612558} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612558,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612558,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"49d539c3-0bf6-4b41-a98a-fbca0ca960cd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612557,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612557} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612557,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612557,\"participants\":[{\"id\":999772,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999773,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612557,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612557,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612557} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612557,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612557,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"d6767fbf-b735-4480-843b-1d9d574b133d\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612556,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612556} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612556,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612556,\"participants\":[{\"id\":999770,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999771,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612556,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612556,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612556} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612556,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:27] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612556,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"04fa4b73-a2e0-4804-8722-18bdec56afab\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612555,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612555} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612555,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612555,\"participants\":[{\"id\":999768,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999769,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612555,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612555,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612555} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612555,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612555,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"1b1e56f6-7c50-4a00-988b-fcfda312d1c8\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612554,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612554} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612554,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612554,\"participants\":[{\"id\":999766,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999767,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612554,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612554,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612554} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612554,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612554,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"9ab5fb67-2687-4495-84e5-d9492e1ad9ae\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612553,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612553} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612553,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:28] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612553,\"participants\":[{\"id\":999764,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999765,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612553,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612553,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612553} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612553,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:29] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612553,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"95dabb64-e2cf-4104-9858-8b381c71b4d6\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612552,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612552} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612552,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612552,\"participants\":[{\"id\":999762,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999763,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612552,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612552,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612552} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612552,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612552,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"cdcd7a84-bff0-4af9-b585-aa58265b4692\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612551,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612551} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612551,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612551,\"participants\":[{\"id\":999760,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999761,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612551,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612551,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612551} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612551,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612551,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"3e0c6785-d4f6-48e6-a6b2-8289e6764698\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612550,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612550} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612550,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612550,\"participants\":[{\"id\":999758,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999759,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612550,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612550,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612550} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612550,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612550,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"e1db7837-d58d-4bd7-b7e5-f6263da1cf69\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612549,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34}} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612549} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612549,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612549,\"participants\":[{\"id\":999756,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999757,\"user_id\":null,\"contact_id\":97,\"lead_id\":null}]} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612549,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinsoncrusoe@test.com\"} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612549,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612549} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612549,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612549,\"remote_search\":true,\"lead_id\":null,\"contact_id\":97,\"account_id\":69,\"opportunity_id\":5011,\"stage_id\":34} {\"correlation_id\":\"bc7e6057-3b4a-446f-8989-b0c166f4bec0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612365,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612365} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612365,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612365,\"participants\":[{\"id\":999563,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999564,\"user_id\":206,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":243,\"contact_id\":4491,\"owner_id\":206} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":243,\"contact_id\":4491} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:30] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":243,\"contact_id\":4491,\"opportunity_id\":276} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612365,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612365,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612365} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612365,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612365,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"8e7dd343-a500-4f4c-9e6d-55a13cdb2112\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612360,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612360} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612360,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612360,\"participants\":[{\"id\":999552,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999553,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999565,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612360,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.29,\"average_seconds_per_request\":0.29} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612360,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612360} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612360,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612360,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"21abffc3-5241-4708-b3e0-abd2dd288cde\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612340,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612340} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612340,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612340,\"participants\":[{\"id\":999516,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999517,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999518,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":999519,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:31] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612340,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.34,\"average_seconds_per_request\":0.34} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612340,\"participants_processed\":4,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612340} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612340,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612340,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"1b3ea0b3-7411-4358-9981-f09a275a33dd\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.75,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612339,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612339} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612339,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612339,\"participants\":[{\"id\":999514,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999515,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999540,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612339,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612339,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612339} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612339,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612339,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"9361adaf-f558-47e1-8c17-29624076d6b0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612336,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36}} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612336} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612336,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612336,\"participants\":[{\"id\":999508,\"user_id\":null,\"contact_id\":4491,\"lead_id\":null},{\"id\":999509,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":999512,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":999513,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"horencho@gmail.com\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612336,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612336,\"participants_processed\":4,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612336} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612336,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612336,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4491,\"account_id\":243,\"opportunity_id\":276,\"stage_id\":36} {\"correlation_id\":\"df588253-5bf4-461b-848b-24cdc4f6b9ce\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612183,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612183} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612183,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612183,\"participants\":[{\"id\":999227,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999228,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":261} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":299} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612183,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612183,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612183} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:32] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612183,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612183,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"1a3a820f-a56a-4ab6-a0b0-1a27257889a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612182,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612182} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612182,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612182,\"participants\":[{\"id\":999225,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999226,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612182,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612182,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612182} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612182,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612182,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"0ddb68fc-c275-46bd-98a1-95de8b8b0f8e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612181,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612181} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612181,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612181,\"participants\":[{\"id\":999223,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999224,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612181,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612181,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612181} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612181,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612181,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"1a86dfbb-2141-4f4a-940b-43fbd1f8ddf1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612180,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612180} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612180,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612180,\"participants\":[{\"id\":999221,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":999222,\"user_id\":261,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612180,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612180,\"participants_processed\":2,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612180} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612180,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:33] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612180,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"correlation_id\":\"4f63b5e4-5027-4921-92f6-5421affdb43f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611455,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611455} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611455,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611455,\"participants\":[{\"id\":997961,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997962,\"user_id\":1460,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"support@staging.jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/support%40staging.jiminny.com?properties=email%2Cfirstname%2Clastname%2Ccountry%2Cphone%2Cmobilephone%2Cjobtitle%2Chubspot_owner_id%2Cassociatedcompanyid%2Cphoto&archived=0&idProperty=email` resulted in a `404 Not Found` response\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.23,\"average_seconds_per_request\":0.23} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:34] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:35] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:35] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:35] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.27,\"average_seconds_per_request\":0.27} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611455,\"team_id\":2,\"email\":\"aneliya.angelova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611455,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611455} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611455,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611455,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"05046735-5c60-4f00-bdf3-b8c4869f818e\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611451,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611451} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611451,\"participants\":[{\"id\":997955,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997956,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"support@staging.jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/support%40staging.jiminny.com?properties=email%2Cfirstname%2Clastname%2Ccountry%2Cphone%2Cmobilephone%2Cjobtitle%2Chubspot_owner_id%2Cassociatedcompanyid%2Cphoto&archived=0&idProperty=email` resulted in a `404 Not Found` response\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:36] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.25,\"average_seconds_per_request\":0.25} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:37] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:38] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.44,\"average_seconds_per_request\":0.44} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611451,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":3.16,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:40] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611451,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611451} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611451,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"471d15bb-ac2d-44a9-ad19-7e4dcffe21a5\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611087,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611087} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611087,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611087,\"participants\":[{\"id\":997368,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997369,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:40] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611087,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611087,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611087} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611087,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611087,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"57ae5f63-477d-4d91-a9a3-8706092bf1e1\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":611076,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611076} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611076,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":611076,\"participants\":[{\"id\":997346,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997347,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":611076,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":611076,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":611076} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":611076,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:41] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":611076,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"2f7ba226-575b-41a7-a3d7-85c8b1fbe96b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610935,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610935} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610935,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610935,\"participants\":[{\"id\":997141,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997142,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610935,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610935,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610935} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610935,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610935,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"f2e5be67-dc9b-4211-994b-4582b631e128\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610915,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610915} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610915,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610915,\"participants\":[{\"id\":997104,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997105,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610915,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610915,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610915} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610915,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610915,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"b9f7b83f-19d2-4fc2-812d-a9d4dbaa6169\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610900,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610900} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610900,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610900,\"participants\":[{\"id\":997081,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997082,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610900,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610900,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610900} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610900,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:42] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610900,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"c45e3abe-1c98-4191-89dc-06c37af6a89a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610885,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610885} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610885,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610885,\"participants\":[{\"id\":997051,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997052,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610885,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610885,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610885} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610885,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610885,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"71c5715e-33f9-4ac4-a037-3f8d92f9323f\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610878,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610878} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610878,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610878,\"participants\":[{\"id\":997035,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997036,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610878,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610878,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610878} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610878,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:43] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610878,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"981ea94d-43c4-4549-a61a-38c0e6168aa4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610874,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610874} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610874,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610874,\"participants\":[{\"id\":997025,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997026,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610874,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610874,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610874} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610874,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610874,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"85e22bcd-46df-43fd-af31-f1fd6ea93304\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610867,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610867} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610867,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610867,\"participants\":[{\"id\":997011,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":997012,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610867,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610867,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610867} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:44] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610867,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610867,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"20f53637-e428-4d97-9c00-77128a6693bf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610764,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610764} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610764,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610764,\"participants\":[{\"id\":996951,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996952,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610764,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610764,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610764} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610764,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610764,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"31fb51e4-214a-4331-9ccb-e88251c31d23\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610617,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610617} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610617,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610617,\"participants\":[{\"id\":996641,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996642,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610617,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610617,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610617} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610617,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610617,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"1195ea0b-ff6f-4868-85b8-00e5910a6ebb\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610539,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610539} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610539,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610539,\"participants\":[{\"id\":996485,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996486,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610539,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610539,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610539} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610539,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610539,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"a12553b5-487b-4fe5-9f92-b4f1ea60e934\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:45] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.4,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610528,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610528} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610528,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610528,\"participants\":[{\"id\":996463,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996464,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610528,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610528,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610528} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610528,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610528,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"2cbcee52-8293-4463-b697-38db65d9f9c0\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610506,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610506} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610506,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610506,\"participants\":[{\"id\":996419,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996420,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610506,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610506,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610506} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610506,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610506,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"ef47bda9-11c9-43e9-9486-e279b2651ddf\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610497,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610497} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610497,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610497,\"participants\":[{\"id\":996401,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996402,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610497,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610497,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610497} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610497,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610497,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"5c552582-cc35-429e-a270-3c590292f4d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610490,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610490} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610490,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610490,\"participants\":[{\"id\":996385,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996386,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:46] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610490,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610490,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610490} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610490,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610490,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"1d9665e5-1818-48ff-9e74-77325bc59987\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610470,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610470} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610470,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610470,\"participants\":[{\"id\":996369,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996370,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610470,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610470,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610470} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610470,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610470,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"d7791858-9c04-4d8c-9509-dd01f1eae66b\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610462,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610462} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610462,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610462,\"participants\":[{\"id\":996353,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996354,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610462,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610462,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610462} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610462,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610462,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"7eda1fd5-8bda-4f9e-94d0-866e72813503\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610451,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610451} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610451,\"participants\":[{\"id\":996340,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996341,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610451,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610451,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610451} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610451,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610451,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"13f3d6e6-73ba-4280-ae4d-1687fc9104d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610438,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610438} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610438,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610438,\"participants\":[{\"id\":996320,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996321,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610438,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610438,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610438} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610438,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610438,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"107b5e13-81e1-4cb5-b64e-174334224d3a\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610426,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610426} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610426,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:47] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610426,\"participants\":[{\"id\":996306,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996307,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610426,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610426,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610426} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610426,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610426,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"f048c662-0e8e-4156-905b-0e237663e017\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610403,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610403} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610403,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610403,\"participants\":[{\"id\":996282,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":996283,\"user_id\":18,\"contact_id\":null,\"lead_id\":null}]} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"support@staging.jiminny.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"support@staging.jiminny.com\",\"domain\":\"jiminny.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610403,\"team_id\":2,\"email\":\"veselin.kulov@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610403,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610403} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610403,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610403,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"correlation_id\":\"0bf21e74-7810-4594-8fa0-ac9df6a5b1c4\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":610400,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34}} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610400} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610400,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":610400,\"participants\":[{\"id\":996275,\"user_id\":1460,\"contact_id\":null,\"lead_id\":null},{\"id\":996276,\"user_id\":206,\"contact_id\":null,\"lead_id\":null},{\"id\":996277,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610400,\"team_id\":2,\"email\":\"aneliya.angelova@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":610400,\"team_id\":2,\"email\":\"horen.kirazyan@jiminny.onmicrosoft.com\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: ProspectCache - Searching DB for opportunity by owner {\"account_id\":244,\"contact_id\":4487,\"owner_id\":1460} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: ProspectCache - Fallback DB opportunity search {\"account_id\":244,\"contact_id\":4487} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: ProspectCache - Opportunity DB search results {\"account_id\":244,\"contact_id\":4487,\"opportunity_id\":350} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":610400,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":0,\"best_match_found\":true} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":610400} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":610400,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":610400,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":350,\"stage_id\":34} {\"correlation_id\":\"ddac2edc-3725-4efd-b520-337c200e17d2\",\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":614382,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614382} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614382,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":614382,\"participants\":[{\"id\":1002632,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1002633,\"user_id\":89,\"contact_id\":null,\"lead_id\":null}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"nikolay.nikolov@jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/nikolay.nikolov%40jiminny.com?properties=email%2Cfirstname%2Clastname%2Ccountry%2Cphone%2Cmobilephone%2Cjobtitle%2Chubspot_owner_id%2Cassociatedcompanyid%2Cphoto&archived=0&idProperty=email` resulted in a `404 Not Found` response\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:48] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.51,\"average_seconds_per_request\":0.51} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:49] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.35,\"average_seconds_per_request\":0.35} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614382,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614382,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614382} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614382,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614382,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"adc1eae9-d4cb-481e-922f-179bac5a8934\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":614381,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614381} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614381,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":614381,\"participants\":[{\"id\":1002630,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1002631,\"user_id\":89,\"contact_id\":null,\"lead_id\":null}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614381,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614381,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614381} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614381,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614381,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"7fad664c-6cfc-402b-adac-89a4c8c5f4d1\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":615092,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":615092} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":615092,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":615092,\"participants\":[{\"id\":1004102,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1004103,\"user_id\":89,\"contact_id\":null,\"lead_id\":null}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":615092,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":615092,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":615092} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":615092,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":615092,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8e4b7ef5-6a2b-4f08-8a0d-528e39fe7930\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":614436,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614436} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614436,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":614436,\"participants\":[{\"id\":1002751,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1002752,\"user_id\":89,\"contact_id\":null,\"lead_id\":null}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614436,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614436,\"participants_processed\":2,\"exact_matches\":0,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614436} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614436,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614436,\"remote_search\":true,\"lead_id\":null,\"contact_id\":null,\"account_id\":26,\"opportunity_id\":22,\"stage_id\":89} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"8df9c375-43bc-41b1-a457-36d722a98ea1\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":614378,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":6167,\"account_id\":null,\"opportunity_id\":null,\"stage_id\":null}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:50] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614378} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:50] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614378,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:50] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":614378,\"participants\":[{\"id\":1002623,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1002624,\"user_id\":null,\"contact_id\":6167,\"lead_id\":null},{\"id\":1002625,\"user_id\":89,\"contact_id\":null,\"lead_id\":null}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"nikolay.nikolov@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"nikolay.nikolov@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"nmalchev@gmail.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":614378,\"team_id\":2,\"email\":\"nikolay.nikolov@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":614378,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":614378} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":614378,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":614378,\"remote_search\":true,\"lead_id\":null,\"contact_id\":6167,\"account_id\":null,\"opportunity_id\":null,\"stage_id\":null} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"d586f923-bac1-482b-a699-2c7c262dee65\"}\n[2026-05-11 11:18:51] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612847,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612847} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612847,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612847,\"participants\":[{\"id\":1000130,\"user_id\":null,\"contact_id\":null,\"lead_id\":null},{\"id\":1000131,\"user_id\":261,\"contact_id\":null,\"lead_id\":null},{\"id\":1000151,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.84,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:18:51] local.INFO: [Hubspot] Failed to fetch contact {\"email\":\"adelina.petrova@jiminny.com\",\"reason\":\"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/adelina.petrova%40jiminny.com?properties=email%2Cfirstname%2Clastname%2Ccountry%2Cphone%2Cmobilephone%2Cjobtitle%2Chubspot_owner_id%2Cassociatedcompanyid%2Cphoto&archived=0&idProperty=email` resulted in a `404 Not Found` response\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:51] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/contact/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.28,\"average_seconds_per_request\":0.28} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"adelina.petrova@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Prospect match] Cache miss {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\",\"crm\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [Prospect match] Cache miss, calling the API {\"identifier_type\":\"domain\",\"identifier\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [HubSpot] importAccount {\"crm_provider_id\":\"749766179\",\"config_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:52] local.INFO: [HubSpot] CRM Search requested {\"request\":{\"filterGroups\":[{\"filters\":[{\"propertyName\":\"associations.company\",\"operator\":\"EQ\",\"value\":\"749766179\"},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedwon\",\"4040964\",\"59247967\"]},{\"propertyName\":\"dealstage\",\"operator\":\"NOT_IN\",\"values\":[\"closedlost\",\"4040965\",\"59247968\"]}]}],\"sorts\":[{\"propertyName\":\"modifieddate\",\"direction\":\"DESCENDING\"}],\"properties\":[\"dealname\",\"amount\",\"hubspot_owner_id\",\"pipeline\",\"dealstage\",\"closedate\",\"deal_currency_code\"],\"limit\":200}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":10,\"total_elapsed_seconds\":0.43,\"average_seconds_per_request\":0.43} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612847,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:53] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612847,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612847} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612847,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612847,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"2dfb95b0-e84e-4956-8d2c-59d97cc1a442\"}\n[2026-05-11 11:18:54] local.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":612819,\"remote_search\":true,\"set_configuration\":2,\"old_state\":{\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36}} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612819} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612819,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [MatchActivityCrmData] Participants old state {\"activity\":612819,\"participants\":[{\"id\":1000073,\"user_id\":null,\"contact_id\":4487,\"lead_id\":null},{\"id\":1000074,\"user_id\":261,\"contact_id\":null,\"lead_id\":null},{\"id\":1000075,\"user_id\":null,\"contact_id\":null,\"lead_id\":null}]} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"robinson@crusoe.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {\"activity_id\":612819,\"team_id\":2,\"email\":\"adelina.petrova@jiminny.onmicrosoft.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] Cache / local search hit {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {\"identifier_type\":\"email\",\"identifier\":\"adelina.petrova@jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [Prospect match] Resolved company domain from email {\"email\":\"adelina.petrova@jiminny.com\",\"domain\":\"jiminny.com\"} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [CrmActivityService] CRM matching completed {\"activity_id\":612819,\"participants_processed\":3,\"exact_matches\":1,\"domain_matches\":1,\"best_match_found\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ EsUpdateTarget ] Update single target {\"target\":\"activities\",\"purpose\":\"searchable-observer-update\",\"entityId\":612819} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {\"entityType\":\"activities\",\"entityId\":612819,\"collectionKey\":\"activities-for-update-priority\",\"withPriority\":true} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:54] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":612819,\"remote_search\":true,\"lead_id\":null,\"contact_id\":4487,\"account_id\":244,\"opportunity_id\":299,\"stage_id\":36} {\"trace_id\":\"6cee2988-85fe-44ce-ba47-56fc0392669c\",\"correlation_id\":\"da5b27d2-94da-4c45-a312-1c293b8ad38d\"}\n[2026-05-11 11:18:57] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {\"worker\":\"\",\"peak_memory\":\"99.73 MB\",\"elapsed_seconds\":0.25,\"update_target\":\"activities\",\"should_iterate_again\":false} {\"correlation_id\":\"8c24420c-db53-4450-9cd8-db5d2426bd57\",\"trace_id\":\"5406d133-f6cd-4f5a-b463-9146e1dfb021\"}\n[2026-05-11 11:19:07] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"70d16739-7654-4185-99cb-49559aafc660\",\"trace_id\":\"d100f21a-5975-471a-b245-90b25b177c8f\"}\n[2026-05-11 11:19:07] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"70d16739-7654-4185-99cb-49559aafc660\",\"trace_id\":\"d100f21a-5975-471a-b245-90b25b177c8f\"}\n[2026-05-11 11:19:07] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"70d16739-7654-4185-99cb-49559aafc660\",\"trace_id\":\"d100f21a-5975-471a-b245-90b25b177c8f\"}\n[2026-05-11 11:19:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"91df8068-6c15-4614-947e-90f48574662c\",\"trace_id\":\"a9a86198-7521-4c0c-a89e-d23b34f2f8bf\"}\n[2026-05-11 11:19:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"91df8068-6c15-4614-947e-90f48574662c\",\"trace_id\":\"a9a86198-7521-4c0c-a89e-d23b34f2f8bf\"}\n[2026-05-11 11:19:15] local.NOTICE: Monitoring start {\"correlation_id\":\"6fae005c-3fcd-4718-86b0-f08f140f889c\",\"trace_id\":\"233ad400-a3ad-4093-8660-9e477cd6ca8f\"}\n[2026-05-11 11:19:15] local.NOTICE: Monitoring end {\"correlation_id\":\"6fae005c-3fcd-4718-86b0-f08f140f889c\",\"trace_id\":\"233ad400-a3ad-4093-8660-9e477cd6ca8f\"}\n[2026-05-11 11:19:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"08b79017-e665-425f-8048-21f93b1abf3b\",\"trace_id\":\"bb7a7ea5-30d3-4a13-9c3c-84bc1f9c26e7\"}\n[2026-05-11 11:19:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"08b79017-e665-425f-8048-21f93b1abf3b\",\"trace_id\":\"bb7a7ea5-30d3-4a13-9c3c-84bc1f9c26e7\"}\n[2026-05-11 11:19:21] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:19:21] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:19:22] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:19:22] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"0c31163b-b05f-4d3f-9a66-a2ce01d94010\",\"trace_id\":\"3dfb6352-28a3-4c77-b6ff-a11e0a7821a0\"}\n[2026-05-11 11:20:08] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"cb3a4a64-b00b-4f94-9e00-c190cd7a7a42\",\"trace_id\":\"acd43b75-f255-471f-9563-f03de03c7e23\"}\n[2026-05-11 11:20:08] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"cb3a4a64-b00b-4f94-9e00-c190cd7a7a42\",\"trace_id\":\"acd43b75-f255-471f-9563-f03de03c7e23\"}\n[2026-05-11 11:20:08] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"cb3a4a64-b00b-4f94-9e00-c190cd7a7a42\",\"trace_id\":\"acd43b75-f255-471f-9563-f03de03c7e23\"}\n[2026-05-11 11:20:10] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"8ab6728e-9079-4166-bf97-fed4fb2ac7de\",\"trace_id\":\"508ecd6c-81db-47d4-8fad-d40b1e55cff3\"}\n[2026-05-11 11:20:10] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"8ab6728e-9079-4166-bf97-fed4fb2ac7de\",\"trace_id\":\"508ecd6c-81db-47d4-8fad-d40b1e55cff3\"}\n[2026-05-11 11:20:13] local.NOTICE: Monitoring start {\"correlation_id\":\"98b2a767-ff2a-4f82-866f-bf7dad58fe13\",\"trace_id\":\"ecb25ade-8dda-4d47-8bce-6b84e3c8fd0c\"}\n[2026-05-11 11:20:13] local.NOTICE: Monitoring end {\"correlation_id\":\"98b2a767-ff2a-4f82-866f-bf7dad58fe13\",\"trace_id\":\"ecb25ade-8dda-4d47-8bce-6b84e3c8fd0c\"}\n[2026-05-11 11:20:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"05f19e62-48e4-4c36-9577-648a2dd54abd\",\"trace_id\":\"e3d3acd1-5c23-4f37-9566-32a0cbd7a4eb\"}\n[2026-05-11 11:20:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"05f19e62-48e4-4c36-9577-648a2dd54abd\",\"trace_id\":\"e3d3acd1-5c23-4f37-9566-32a0cbd7a4eb\"}\n[2026-05-11 11:20:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:18] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:18] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"d5c19bc5-1a17-4b6d-9f62-a6715a8005c9\",\"trace_id\":\"451385cf-1bcd-4e06-8412-e5d197f5f567\"}\n[2026-05-11 11:20:23] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:23] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 11:18:00, 2026-05-11 11:20:00] {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:23] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 11:18:00, 2026-05-11 11:20:00] {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:23] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a01c4c40-1c1e-4865-be1f-0aa63b4fd1b9\",\"trace_id\":\"cba182ec-cbe6-4d53-b1c6-253546138cc8\"}\n[2026-05-11 11:20:25] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"b599f338-6a44-44d5-9f81-6fa300c4ea1b\",\"trace_id\":\"c7645418-4758-4410-83f2-8fe71ebf2ec2\"}\n[2026-05-11 11:20:25] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"b599f338-6a44-44d5-9f81-6fa300c4ea1b\",\"trace_id\":\"c7645418-4758-4410-83f2-8fe71ebf2ec2\"}\n[2026-05-11 11:20:28] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"3c9d7674-d005-4372-8a60-2e8ecb587584\",\"trace_id\":\"22a0bdee-d653-4113-963c-043a68a4a8be\"}\n[2026-05-11 11:20:29] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"3c9d7674-d005-4372-8a60-2e8ecb587584\",\"trace_id\":\"22a0bdee-d653-4113-963c-043a68a4a8be\"}\n[2026-05-11 11:20:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"1453203b-bac8-47ba-ac62-6369ac533fc2\",\"trace_id\":\"f176800e-9da8-4580-a332-56fa3402dbb7\"}\n[2026-05-11 11:20:31] local.INFO: Running pre-meeting notification command {\"correlation_id\":\"1453203b-bac8-47ba-ac62-6369ac533fc2\",\"trace_id\":\"f176800e-9da8-4580-a332-56fa3402dbb7\"}\n[2026-05-11 11:20:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"1453203b-bac8-47ba-ac62-6369ac533fc2\",\"trace_id\":\"f176800e-9da8-4580-a332-56fa3402dbb7\"}\n[2026-05-11 11:20:33] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:33] local.INFO: Running conference:monitor:start command for activities in (2026-05-11 11:10:00, 2026-05-11 11:15:00] {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:33] local.INFO: [conference:monitor:start] No activities found in (2026-05-11 11:10:00, 2026-05-11 11:15:00] {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:33] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"2310f110-1f7e-4a28-b0c3-e5f8fc72688f\",\"trace_id\":\"9d6e8217-2f4e-4b23-8f36-8538f57064d9\"}\n[2026-05-11 11:20:37] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:37] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesEnded {\"from\":\"11:15\",\"to\":\"11:20\"} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:38] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesWithUnfinishedSession {\"from\":\"01:10\",\"to\":\"01:15\"} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:38] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"48a2dc23-76e1-4b34-b8a7-a7a957c71373\",\"trace_id\":\"b1788ca3-54cf-4031-b198-102838446996\"}\n[2026-05-11 11:20:41] local.NOTICE: Repairing HubSpot tokens start {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: Trying to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":59,\"provider\":\"hubspot\",\"refreshToken\":\"97b78f6e2cc49965c00c2492b602b02708b1392551e6b3f113fbaa48992af90b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.ERROR: Failed to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: Trying to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":306,\"provider\":\"hubspot\",\"refreshToken\":\"6fa6aa8cc641d131231acc3470f5c03cb3b07b2e580fb18f8acb3b1dbb72549b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.ERROR: Failed to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: Trying to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:42] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1372,\"provider\":\"hubspot\",\"refreshToken\":\"9aa73948c761da29dce46c177cf9aee1fde483a44169ca38723f9f0597d7a8c4\",\"state\":\"full-refresh\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:43] local.ERROR: Failed to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:43] local.NOTICE: Repairing HubSpot tokens end {\"total\":3,\"fixed\":0,\"failed\":3} {\"correlation_id\":\"cb985c75-d47d-45c5-a37a-f6f0c95026fd\",\"trace_id\":\"bde7c5d1-1c73-488b-a11c-a2c8701ef310\"}\n[2026-05-11 11:20:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"jiminny:transcription:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"28cf48be-a629-420c-a0a4-0d20fbd05838\",\"trace_id\":\"4fdaba19-5d8e-45db-a600-da048c8066fb\"}\n[2026-05-11 11:20:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"6a6c06af-94cf-46bf-976e-55e401b3a588\",\"trace_id\":\"338c3b84-fc5a-404b-bed6-97341331ae68\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Command] Starting polling service {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Polling] Service starting {\"memory_limit\":\"256M\",\"max_execution_time\":\"0\",\"initial_memory_mb\":60.0} {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Polling] Acquired polling lock {\"expires_at\":\"2026-05-11T11:22:48.807561Z\"} {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: [HubSpot Journal Auth] Requesting new client credentials token {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"jiminny:transcription:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"28cf48be-a629-420c-a0a4-0d20fbd05838\",\"trace_id\":\"4fdaba19-5d8e-45db-a600-da048c8066fb\"}\n[2026-05-11 11:20:49] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"6a6c06af-94cf-46bf-976e-55e401b3a588\",\"trace_id\":\"338c3b84-fc5a-404b-bed6-97341331ae68\"}\n[2026-05-11 11:20:49] local.INFO: [HubSpot Journal Auth] Successfully obtained new access token {\"expires_in\":1800,\"cached_for\":1500} {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:49] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:53] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:reset-governor\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"c8d52370-b908-428c-b973-699db0be2136\",\"trace_id\":\"fabc1f54-e263-4ba0-b8ff-324f62e84f1f\"}\n[2026-05-11 11:20:53] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:reset-governor\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"c8d52370-b908-428c-b973-699db0be2136\",\"trace_id\":\"fabc1f54-e263-4ba0-b8ff-324f62e84f1f\"}\n[2026-05-11 11:20:54] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:20:56] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"de84a4c9-d2c5-4950-8c2d-f400cee667bf\",\"trace_id\":\"223fd9b2-ed24-4083-98cd-1bc4040dbbd1\"}\n[2026-05-11 11:20:57] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"de84a4c9-d2c5-4950-8c2d-f400cee667bf\",\"trace_id\":\"223fd9b2-ed24-4083-98cd-1bc4040dbbd1\"}\n[2026-05-11 11:20:59] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:21:15] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:21:22] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"0bfe72bb-b4b3-4001-950a-4ff144759ece\",\"trace_id\":\"2278148b-b05e-4dc0-90be-418928a8ce59\"}\n[2026-05-11 11:21:22] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"0bfe72bb-b4b3-4001-950a-4ff144759ece\",\"trace_id\":\"2278148b-b05e-4dc0-90be-418928a8ce59\"}\n[2026-05-11 11:21:22] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"0bfe72bb-b4b3-4001-950a-4ff144759ece\",\"trace_id\":\"2278148b-b05e-4dc0-90be-418928a8ce59\"}\n[2026-05-11 11:21:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"5b86ad86-7514-4e2f-96f3-38c27443e433\",\"trace_id\":\"93cbf126-a6cf-452b-8056-69a67a3c9b0d\"}\n[2026-05-11 11:21:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"5b86ad86-7514-4e2f-96f3-38c27443e433\",\"trace_id\":\"93cbf126-a6cf-452b-8056-69a67a3c9b0d\"}\n[2026-05-11 11:21:37] local.NOTICE: Monitoring start {\"correlation_id\":\"c0c5ae9d-2fb5-4d62-9edf-08ff810f36d4\",\"trace_id\":\"797998aa-d80e-4a50-826b-c67d573968bd\"}\n[2026-05-11 11:21:37] local.NOTICE: Monitoring end {\"correlation_id\":\"c0c5ae9d-2fb5-4d62-9edf-08ff810f36d4\",\"trace_id\":\"797998aa-d80e-4a50-826b-c67d573968bd\"}\n[2026-05-11 11:21:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a9ef0b83-7162-48d6-91a3-a38717b8f61f\",\"trace_id\":\"a2ab36b2-1cd0-4e98-8b49-48078ef572db\"}\n[2026-05-11 11:21:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a9ef0b83-7162-48d6-91a3-a38717b8f61f\",\"trace_id\":\"a2ab36b2-1cd0-4e98-8b49-48078ef572db\"}\n[2026-05-11 11:21:45] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:21:45] local.WARNING: [HubSpot Journal Polling] Maximum empty results reached, stopping {\"empty_results\":5,\"max_empty_results\":5} {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:21:45] local.WARNING: [HubSpot Journal Polling] Maximum empty results reached, stopping {\"empty_results\":5,\"max_empty_results\":5} {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:21:45] local.INFO: [HubSpot Journal Polling] Service ending {\"runtime_seconds\":57,\"total_cycles\":5,\"files_downloaded\":0,\"empty_files\":0,\"other_portal_skipped\":0,\"total_events\":0,\"events_per_file\":0,\"avg_api_ms\":329.4,\"avg_download_ms\":0.0,\"avg_transform_ms\":0.0,\"avg_process_ms\":0.0,\"peak_memory_mb\":99.73} {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:21:46] local.INFO: [HubSpot Journal Polling] Saved offset to database on cleanup {\"offset\":\"019e15a9-9ea0-7da7-87bc-82592e3ccf0d\"} {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:21:46] local.INFO: [HubSpot Journal Polling] Released polling lock {\"correlation_id\":\"954d156d-8a4f-4592-a046-e16c5dd7d3bf\",\"trace_id\":\"ecc7aeb5-a4e6-4a0d-9ebd-4aeb260f5d55\"}\n[2026-05-11 11:21:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"241421de-745e-44a3-a65f-377d105b241e\",\"trace_id\":\"c3b9e86b-adf4-459b-9ec1-f106c8ed60ff\"}\n[2026-05-11 11:21:48] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"241421de-745e-44a3-a65f-377d105b241e\",\"trace_id\":\"c3b9e86b-adf4-459b-9ec1-f106c8ed60ff\"}\n[2026-05-11 11:21:48] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"241421de-745e-44a3-a65f-377d105b241e\",\"trace_id\":\"c3b9e86b-adf4-459b-9ec1-f106c8ed60ff\"}\n[2026-05-11 11:21:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"241421de-745e-44a3-a65f-377d105b241e\",\"trace_id\":\"c3b9e86b-adf4-459b-9ec1-f106c8ed60ff\"}\n[2026-05-11 11:21:59] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:sync-hubspot-objects\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"50fe8230-c5ed-4686-bbf5-bb8aed21b266\",\"trace_id\":\"60cd5a4d-d11d-43f6-9821-483d873cad6d\"}\n[2026-05-11 11:22:00] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:sync-hubspot-objects\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"50fe8230-c5ed-4686-bbf5-bb8aed21b266\",\"trace_id\":\"60cd5a4d-d11d-43f6-9821-483d873cad6d\"}\n[2026-05-11 11:22:00] local.INFO: [SyncHubspotObjects] Starting sync {\"team\":\"b2b115eb-93ce-4d1b-929c-173757df8fba\",\"usage\":23350336,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"60bc4807-da21-4916-a8a7-22fa9ae06442\",\"trace_id\":\"60cd5a4d-d11d-43f6-9821-483d873cad6d\"}\n[2026-05-11 11:22:00] local.WARNING: [HubSpot] Account not connected for user {\"userId\":\"33e34a7a-1c02-4f04-87ac-22c3a385e6e3\",\"account\":{\"Jiminny\\\\Models\\\\SocialAccount\":{\"id\":306,\"sociable_id\":109,\"provider_user_id\":\"11348452\",\"expires\":1701077403,\"refresh_token_expires\":null,\"provider\":\"hubspot\",\"state\":\"full-refresh\",\"auth_scope\":null,\"retry_after\":null,\"created_at\":\"2020-09-01 16:59:04\",\"updated_at\":\"2023-11-27 09:30:03\"}}} {\"correlation_id\":\"60bc4807-da21-4916-a8a7-22fa9ae06442\",\"trace_id\":\"60cd5a4d-d11d-43f6-9821-483d873cad6d\"}\n[2026-05-11 11:22:00] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"hubspot\",\"crm_owner\":109,\"team_id\":29} {\"correlation_id\":\"60bc4807-da21-4916-a8a7-22fa9ae06442\",\"trace_id\":\"60cd5a4d-d11d-43f6-9821-483d873cad6d\"}\n[2026-05-11 11:22:00] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":29} {\"correlation_id\":\"60bc4807-da21-4916-a8a7-22fa9ae06442\",\"trace_id\":\"60cd5a4d-d11d-43f6-9821-483d873cad6d\"}\n[2026-05-11 11:22:00] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":29} {\"correlation_id\":\"60bc4807-da21-4916-a8a7-22fa9ae06442\",\"trace_id\":\"60cd5a4d-d11d-43f6-9821-483d873cad6d\"}\n[2026-05-11 11:22:00] local.INFO: [SyncHubspotObjects] Sync finished {\"team\":\"b2b115eb-93ce-4d1b-929c-173757df8fba\",\"provider\":\"hubspot\",\"status\":\"disconnected\",\"duration_ms\":52.26,\"usage\":23416376,\"real_usage\":62914560,\"pid\":74083,\"reason\":\"Your HubSpot account has become disconnected. Please login to Jiminny to reconnect.\"} {\"correlation_id\":\"60bc4807-da21-4916-a8a7-22fa9ae06442\",\"trace_id\":\"60cd5a4d-d11d-43f6-9821-483d873cad6d\"}\n[2026-05-11 11:22:00] local.INFO: [SyncHubspotObjects] Starting sync {\"team\":\"abae74b8-bfa8-4383-9a7f-89f4bf2bdbb4\",\"usage\":23374592,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"23559a13-2f18-4d56-8530-26f2291380ef\",\"trace_id\":\"60cd5a4d-d11d-43f6-9821-483d873cad6d\"}\n[2026-05-11 11:22:00] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"23559a13-2f18-4d56-8530-26f2291380ef\",\"trace_id\":\"60cd5a4d-d11d-43f6-9821-483d873cad6d\"}\n[2026-05-11 11:22:00] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"23559a13-2f18-4d56-8530-26f2291380ef\",\"trace_id\":\"60cd5a4d-d11d-43f6-9821-483d873cad6d\"}\n[2026-05-11 11:22:00] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"23559a13-2f18-4d56-8530-26f2291380ef\",\"trace_id\":\"60cd5a4d-d11d-43f6-9821-483d873cad6d\"}\n[2026-05-11 11:22:00] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"23559a13-2f18-4d56-8530-26f2291380ef\",\"trace_id\":\"60cd5a4d-d11d-43f6-9821-483d873cad6d\"}\n[2026-05-11 11:22:00] local.INFO: [HubSpot] Syncing opportunities using strategy: lastModified {\"team\":2} {\"correlation_id\":\"23559a13-2f18-4d56-8530-26f2291380ef\",\"trace_id\":\"60cd5a4d-d11d-43f6-9821-483d873cad6d\"}\n[2026-05-11 11:22:01] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.28,\"average_seconds_per_request\":0.28} {\"correlation_id\":\"23559a13-2f18-4d56-8530-26f2291380ef\",\"trace_id\":\"60cd5a4d-d11d-43f6-9821-483d873cad6d\"}\n[2026-05-11 11:22:01] local.INFO: [HubSpot] Synced opportunities {\"team\":2,\"strategies\":\"lastModified\",\"sync_count\":0,\"total\":0,\"last_synced_id\":null,\"duration_ms\":288.59} {\"correlation_id\":\"23559a13-2f18-4d56-8530-26f2291380ef\",\"trace_id\":\"60cd5a4d-d11d-43f6-9821-483d873cad6d\"}\n[2026-05-11 11:22:01] local.INFO: [SyncHubspotObjects] Sync finished {\"team\":\"abae74b8-bfa8-4383-9a7f-89f4bf2bdbb4\",\"provider\":\"hubspot\",\"status\":\"completed\",\"duration_ms\":332.08,\"usage\":23438944,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"23559a13-2f18-4d56-8530-26f2291380ef\",\"trace_id\":\"60cd5a4d-d11d-43f6-9821-483d873cad6d\"}\n[2026-05-11 11:22:01] local.INFO: [SyncHubspotObjects] Starting sync {\"team\":\"c6b9d6b0-b48d-4832-a68c-a57d60651888\",\"usage\":23416872,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"d77fb655-5cd1-4a3e-9e6e-b74111585357\",\"trace_id\":\"60cd5a4d-d11d-43f6-9821-483d873cad6d\"}\n[2026-05-11 11:22:01] local.WARNING: [HubSpot] Account not connected for user {\"userId\":\"71e3aac5-fb66-47c5-a236-2d051ae3e319\",\"account\":null} {\"correlation_id\":\"d77fb655-5cd1-4a3e-9e6e-b74111585357\",\"trace_id\":\"60cd5a4d-d11d-43f6-9821-483d873cad6d\"}\n[2026-05-11 11:22:01] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"hubspot\",\"crm_owner\":256,\"team_id\":49} {\"correlation_id\":\"d77fb655-5cd1-4a3e-9e6e-b74111585357\",\"trace_id\":\"60cd5a4d-d11d-43f6-9821-483d873cad6d\"}\n[2026-05-11 11:22:01] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":49} {\"correlation_id\":\"d77fb655-5cd1-4a3e-9e6e-b74111585357\",\"trace_id\":\"60cd5a4d-d11d-43f6-9821-483d873cad6d\"}\n[2026-05-11 11:22:01] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":49} {\"correlation_id\":\"d77fb655-5cd1-4a3e-9e6e-b74111585357\",\"trace_id\":\"60cd5a4d-d11d-43f6-9821-483d873cad6d\"}\n[2026-05-11 11:22:01] local.INFO: [SyncHubspotObjects] Sync finished {\"team\":\"c6b9d6b0-b48d-4832-a68c-a57d60651888\",\"provider\":\"hubspot\",\"status\":\"disconnected\",\"duration_ms\":20.21,\"usage\":23401296,\"real_usage\":62914560,\"pid\":74083,\"reason\":\"Social account for HubSpot cannot be found. Please login to Jiminny to connect.\"} {\"correlation_id\":\"d77fb655-5cd1-4a3e-9e6e-b74111585357\",\"trace_id\":\"60cd5a4d-d11d-43f6-9821-483d873cad6d\"}\n[2026-05-11 11:22:01] local.INFO: [SyncHubspotObjects] Starting sync {\"team\":\"b2d49a54-b645-4637-a7ae-a86cfce6e8e4\",\"usage\":23361936,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"0fb5e634-6f53-4967-b07e-2a3be8c177eb\",\"trace_id\":\"60cd5a4d-d11d-43f6-9821-483d873cad6d\"}\n[2026-05-11 11:22:01] local.WARNING: [HubSpot] Account not connected for user {\"userId\":\"2ac0447f-3c8c-4ce0-baeb-b63ddb76fa9b\",\"account\":null} {\"correlation_id\":\"0fb5e634-6f53-4967-b07e-2a3be8c177eb\",\"trace_id\":\"60cd5a4d-d11d-43f6-9821-483d873cad6d\"}\n[2026-05-11 11:22:01] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"hubspot\",\"crm_owner\":130,\"team_id\":42} {\"correlation_id\":\"0fb5e634-6f53-4967-b07e-2a3be8c177eb\",\"trace_id\":\"60cd5a4d-d11d-43f6-9821-483d873cad6d\"}\n[2026-05-11 11:22:01] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":42} {\"correlation_id\":\"0fb5e634-6f53-4967-b07e-2a3be8c177eb\",\"trace_id\":\"60cd5a4d-d11d-43f6-9821-483d873cad6d\"}\n[2026-05-11 11:22:01] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":42} {\"correlation_id\":\"0fb5e634-6f53-4967-b07e-2a3be8c177eb\",\"trace_id\":\"60cd5a4d-d11d-43f6-9821-483d873cad6d\"}\n[2026-05-11 11:22:01] local.INFO: [SyncHubspotObjects] Sync finished {\"team\":\"b2d49a54-b645-4637-a7ae-a86cfce6e8e4\",\"provider\":\"hubspot\",\"status\":\"disconnected\",\"duration_ms\":14.19,\"usage\":23404880,\"real_usage\":62914560,\"pid\":74083,\"reason\":\"Social account for HubSpot cannot be found. Please login to Jiminny to connect.\"} {\"correlation_id\":\"0fb5e634-6f53-4967-b07e-2a3be8c177eb\",\"trace_id\":\"60cd5a4d-d11d-43f6-9821-483d873cad6d\"}\n[2026-05-11 11:23:06] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"b1c8bcd6-91f4-42d0-88dc-ec5b5ac1e352\",\"trace_id\":\"3c7f985d-a1c4-4beb-ae19-8d241a1b8c45\"}\n[2026-05-11 11:23:06] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"b1c8bcd6-91f4-42d0-88dc-ec5b5ac1e352\",\"trace_id\":\"3c7f985d-a1c4-4beb-ae19-8d241a1b8c45\"}\n[2026-05-11 11:23:06] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"b1c8bcd6-91f4-42d0-88dc-ec5b5ac1e352\",\"trace_id\":\"3c7f985d-a1c4-4beb-ae19-8d241a1b8c45\"}\n[2026-05-11 11:23:08] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"de0686b7-9d0e-4130-a2f7-ff021175c9c0\",\"trace_id\":\"e91321fc-accd-4dbc-b887-6c13f3a74d5e\"}\n[2026-05-11 11:23:08] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"de0686b7-9d0e-4130-a2f7-ff021175c9c0\",\"trace_id\":\"e91321fc-accd-4dbc-b887-6c13f3a74d5e\"}\n[2026-05-11 11:23:10] local.NOTICE: Monitoring start {\"correlation_id\":\"6d366728-e0b2-43d4-9b02-8e0d3d01d0ae\",\"trace_id\":\"2a4100dd-0e15-4378-b901-26aafd0ac5f2\"}\n[2026-05-11 11:23:10] local.NOTICE: Monitoring end {\"correlation_id\":\"6d366728-e0b2-43d4-9b02-8e0d3d01d0ae\",\"trace_id\":\"2a4100dd-0e15-4378-b901-26aafd0ac5f2\"}\n[2026-05-11 11:23:11] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"fa57196c-91a8-4e79-a936-fd162b28c001\",\"trace_id\":\"e8937547-f6f6-4a61-9a3f-36e854ecbf96\"}\n[2026-05-11 11:23:11] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"fa57196c-91a8-4e79-a936-fd162b28c001\",\"trace_id\":\"e8937547-f6f6-4a61-9a3f-36e854ecbf96\"}\n[2026-05-11 11:23:14] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"8bc0ac28-787b-40b1-b50a-82d72b60cb7d\",\"trace_id\":\"591a2cc9-c870-4a79-aaf1-0a25c359fe44\"}\n[2026-05-11 11:23:14] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"8bc0ac28-787b-40b1-b50a-82d72b60cb7d\",\"trace_id\":\"591a2cc9-c870-4a79-aaf1-0a25c359fe44\"}\n[2026-05-11 11:23:14] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"8bc0ac28-787b-40b1-b50a-82d72b60cb7d\",\"trace_id\":\"591a2cc9-c870-4a79-aaf1-0a25c359fe44\"}\n[2026-05-11 11:23:14] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"8bc0ac28-787b-40b1-b50a-82d72b60cb7d\",\"trace_id\":\"591a2cc9-c870-4a79-aaf1-0a25c359fe44\"}\n[2026-05-11 11:23:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"aa85bd5a-e1eb-4068-856f-1f06467bae1c\",\"trace_id\":\"02184e7d-e5c7-4f45-8999-54d2309ac720\"}\n[2026-05-11 11:23:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"aa85bd5a-e1eb-4068-856f-1f06467bae1c\",\"trace_id\":\"02184e7d-e5c7-4f45-8999-54d2309ac720\"}\n[2026-05-11 11:23:17] local.INFO: [integration-app] Request {\"request\":\"GET connections\",\"full_target\":\"connections\"} {\"correlation_id\":\"9a215c7c-e855-46a4-9126-40f22d342a5f\",\"trace_id\":\"2f580cb0-fe8b-4d14-90cf-090d00e2509f\"}\n[2026-05-11 11:23:17] local.INFO: [integration-app] Connection state identified {\"teamId\":3143,\"connection_name\":\"Connection to 66fe6c913202f3a165e3c14d for Dev Zoho CRM client\",\"remote_connection_id\":\"69e0b983da98fa74f98aebfb\",\"is_disconnected\":false,\"is_deactivated\":false,\"is_valid\":true} {\"correlation_id\":\"9a215c7c-e855-46a4-9126-40f22d342a5f\",\"trace_id\":\"2f580cb0-fe8b-4d14-90cf-090d00e2509f\"}\n[2026-05-11 11:24:05] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"64fdb6b8-375a-4ad4-b050-915f60f3d10b\",\"trace_id\":\"76a74336-b870-41f4-9787-1af873420c21\"}\n[2026-05-11 11:24:05] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"64fdb6b8-375a-4ad4-b050-915f60f3d10b\",\"trace_id\":\"76a74336-b870-41f4-9787-1af873420c21\"}\n[2026-05-11 11:24:05] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"64fdb6b8-375a-4ad4-b050-915f60f3d10b\",\"trace_id\":\"76a74336-b870-41f4-9787-1af873420c21\"}\n[2026-05-11 11:24:07] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"5d18643e-48b1-42e5-89a8-8e252db3c0b8\",\"trace_id\":\"777d5d01-53a2-4902-b312-a89348917eaf\"}\n[2026-05-11 11:24:07] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"5d18643e-48b1-42e5-89a8-8e252db3c0b8\",\"trace_id\":\"777d5d01-53a2-4902-b312-a89348917eaf\"}\n[2026-05-11 11:24:09] local.NOTICE: Monitoring start {\"correlation_id\":\"567d2904-2d99-4b49-82ff-cbcbe9d1eba3\",\"trace_id\":\"d990607f-045d-41d1-9dcb-eda9fc8d2bfe\"}\n[2026-05-11 11:24:09] local.NOTICE: Monitoring end {\"correlation_id\":\"567d2904-2d99-4b49-82ff-cbcbe9d1eba3\",\"trace_id\":\"d990607f-045d-41d1-9dcb-eda9fc8d2bfe\"}\n[2026-05-11 11:24:11] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"6b00dce1-5488-4c35-8cc4-533b3e221239\",\"trace_id\":\"33ba3132-c2ce-482b-92f6-1b854d5cb40d\"}\n[2026-05-11 11:24:11] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"6b00dce1-5488-4c35-8cc4-533b3e221239\",\"trace_id\":\"33ba3132-c2ce-482b-92f6-1b854d5cb40d\"}\n[2026-05-11 11:24:14] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"9479ae0e-eb24-4cd9-8fc3-08a5d5afcf24\",\"trace_id\":\"9942a9b8-9fd9-4545-bbac-be670ad0c059\"}\n[2026-05-11 11:24:14] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"9479ae0e-eb24-4cd9-8fc3-08a5d5afcf24\",\"trace_id\":\"9942a9b8-9fd9-4545-bbac-be670ad0c059\"}\n[2026-05-11 11:24:14] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"9479ae0e-eb24-4cd9-8fc3-08a5d5afcf24\",\"trace_id\":\"9942a9b8-9fd9-4545-bbac-be670ad0c059\"}\n[2026-05-11 11:24:14] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"9479ae0e-eb24-4cd9-8fc3-08a5d5afcf24\",\"trace_id\":\"9942a9b8-9fd9-4545-bbac-be670ad0c059\"}\n[2026-05-11 11:24:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"9a4aafea-530d-4a28-b8c0-b3587b47b105\",\"trace_id\":\"69372eda-94e9-4126-a644-ed498de5ab72\"}\n[2026-05-11 11:24:16] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 11:22:00, 2026-05-11 11:24:00] {\"correlation_id\":\"9a4aafea-530d-4a28-b8c0-b3587b47b105\",\"trace_id\":\"69372eda-94e9-4126-a644-ed498de5ab72\"}\n[2026-05-11 11:24:16] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 11:22:00, 2026-05-11 11:24:00] {\"correlation_id\":\"9a4aafea-530d-4a28-b8c0-b3587b47b105\",\"trace_id\":\"69372eda-94e9-4126-a644-ed498de5ab72\"}\n[2026-05-11 11:24:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"9a4aafea-530d-4a28-b8c0-b3587b47b105\",\"trace_id\":\"69372eda-94e9-4126-a644-ed498de5ab72\"}\n[2026-05-11 11:24:17] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:aircall:check-and-renew\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"1b3d7ab8-67f9-45e4-afea-05f709f6b0f3\",\"trace_id\":\"286b618b-82b5-42df-b2e0-94c80f6c04be\"}\n[2026-05-11 11:24:17] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1496,\"provider\":\"aircall\"} {\"correlation_id\":\"1b3d7ab8-67f9-45e4-afea-05f709f6b0f3\",\"trace_id\":\"286b618b-82b5-42df-b2e0-94c80f6c04be\"}\n[2026-05-11 11:24:17] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1496,\"provider\":\"aircall\"} {\"correlation_id\":\"1b3d7ab8-67f9-45e4-afea-05f709f6b0f3\",\"trace_id\":\"286b618b-82b5-42df-b2e0-94c80f6c04be\"}\n[2026-05-11 11:24:17] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1b3d7ab8-67f9-45e4-afea-05f709f6b0f3\",\"trace_id\":\"286b618b-82b5-42df-b2e0-94c80f6c04be\"}\n[2026-05-11 11:24:18] local.ERROR: [Aircall] Re-activating webhooks failed {\"team_id\":1,\"reason\":\"{\\\"message\\\":\\\"Forbidden\\\"}\"} {\"correlation_id\":\"1b3d7ab8-67f9-45e4-afea-05f709f6b0f3\",\"trace_id\":\"286b618b-82b5-42df-b2e0-94c80f6c04be\"}\n[2026-05-11 11:24:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:aircall:check-and-renew\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"1b3d7ab8-67f9-45e4-afea-05f709f6b0f3\",\"trace_id\":\"286b618b-82b5-42df-b2e0-94c80f6c04be\"}\n[2026-05-11 11:24:20] local.INFO: [RetryFailedDownloads] Starting {\"options\":{\"from\":null,\"to\":null,\"help\":false,\"silent\":false,\"quiet\":false,\"verbose\":false,\"version\":false,\"ansi\":null,\"no-interaction\":false,\"env\":null}} {\"correlation_id\":\"bc30c028-bef4-47fb-9420-88571f097b0f\",\"trace_id\":\"3ad1ce39-473c-4b20-986f-a0de722b274e\"}\n[2026-05-11 11:25:05] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"2a3f0764-70e1-49cd-bf5f-b1479eeb3720\",\"trace_id\":\"6e624cda-dc1d-4aa4-b414-0eb5db7f67e2\"}\n[2026-05-11 11:25:05] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"2a3f0764-70e1-49cd-bf5f-b1479eeb3720\",\"trace_id\":\"6e624cda-dc1d-4aa4-b414-0eb5db7f67e2\"}\n[2026-05-11 11:25:05] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"2a3f0764-70e1-49cd-bf5f-b1479eeb3720\",\"trace_id\":\"6e624cda-dc1d-4aa4-b414-0eb5db7f67e2\"}\n[2026-05-11 11:25:07] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"9545d596-e9dc-4950-ba72-ecd5a0bde54f\",\"trace_id\":\"5571116b-5b8b-4267-a3fc-e329ab944d13\"}\n[2026-05-11 11:25:07] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"9545d596-e9dc-4950-ba72-ecd5a0bde54f\",\"trace_id\":\"5571116b-5b8b-4267-a3fc-e329ab944d13\"}\n[2026-05-11 11:25:09] local.NOTICE: Monitoring start {\"correlation_id\":\"0afcb416-af01-427e-b164-c40e32cffeea\",\"trace_id\":\"fc4546f6-800e-48a9-bdc4-2d269e559d66\"}\n[2026-05-11 11:25:09] local.NOTICE: Monitoring end {\"correlation_id\":\"0afcb416-af01-427e-b164-c40e32cffeea\",\"trace_id\":\"fc4546f6-800e-48a9-bdc4-2d269e559d66\"}\n[2026-05-11 11:25:11] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"d5689991-9d82-4295-a03a-b694b7ac093c\",\"trace_id\":\"f2f04177-1696-4f15-87de-c1f548ac9e90\"}\n[2026-05-11 11:25:11] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"d5689991-9d82-4295-a03a-b694b7ac093c\",\"trace_id\":\"f2f04177-1696-4f15-87de-c1f548ac9e90\"}\n[2026-05-11 11:25:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"dfb57410-d885-401c-9e42-b54fd60d1bda\",\"trace_id\":\"91a2f916-2107-4841-91b4-debba8f540a6\"}\n[2026-05-11 11:25:12] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"dfb57410-d885-401c-9e42-b54fd60d1bda\",\"trace_id\":\"91a2f916-2107-4841-91b4-debba8f540a6\"}\n[2026-05-11 11:25:12] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"dfb57410-d885-401c-9e42-b54fd60d1bda\",\"trace_id\":\"91a2f916-2107-4841-91b4-debba8f540a6\"}\n[2026-05-11 11:25:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"dfb57410-d885-401c-9e42-b54fd60d1bda\",\"trace_id\":\"91a2f916-2107-4841-91b4-debba8f540a6\"}\n[2026-05-11 11:25:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"15a826c1-0d26-451f-831b-59542a6de8bd\",\"trace_id\":\"9111c962-1dd9-4734-9bf7-67bef3b00b01\"}\n[2026-05-11 11:25:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"15a826c1-0d26-451f-831b-59542a6de8bd\",\"trace_id\":\"9111c962-1dd9-4734-9bf7-67bef3b00b01\"}\n[2026-05-11 11:25:17] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"74339c0c-f6c2-469a-876c-8a6f309b870b\",\"trace_id\":\"57bc9ab7-00d0-4195-b1df-6c17f6073ca5\"}\n[2026-05-11 11:25:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"74339c0c-f6c2-469a-876c-8a6f309b870b\",\"trace_id\":\"57bc9ab7-00d0-4195-b1df-6c17f6073ca5\"}\n[2026-05-11 11:25:19] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"1c91005c-c360-4c74-89aa-1b7c0e908865\",\"trace_id\":\"032d420e-12db-42ca-a172-2924788e0857\"}\n[2026-05-11 11:25:19] local.INFO: Running pre-meeting notification command {\"correlation_id\":\"1c91005c-c360-4c74-89aa-1b7c0e908865\",\"trace_id\":\"032d420e-12db-42ca-a172-2924788e0857\"}\n[2026-05-11 11:25:20] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"1c91005c-c360-4c74-89aa-1b7c0e908865\",\"trace_id\":\"032d420e-12db-42ca-a172-2924788e0857\"}\n[2026-05-11 11:25:21] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"6207a193-64a4-4a14-a4da-0244e01a8d02\",\"trace_id\":\"94286bcd-ce54-409b-acbf-f05497e878d5\"}\n[2026-05-11 11:25:21] local.INFO: Running conference:monitor:start command for activities in (2026-05-11 11:15:00, 2026-05-11 11:20:00] {\"correlation_id\":\"6207a193-64a4-4a14-a4da-0244e01a8d02\",\"trace_id\":\"94286bcd-ce54-409b-acbf-f05497e878d5\"}\n[2026-05-11 11:25:21] local.INFO: [conference:monitor:start] No activities found in (2026-05-11 11:15:00, 2026-05-11 11:20:00] {\"correlation_id\":\"6207a193-64a4-4a14-a4da-0244e01a8d02\",\"trace_id\":\"94286bcd-ce54-409b-acbf-f05497e878d5\"}\n[2026-05-11 11:25:21] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"6207a193-64a4-4a14-a4da-0244e01a8d02\",\"trace_id\":\"94286bcd-ce54-409b-acbf-f05497e878d5\"}\n[2026-05-11 11:25:23] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"9aedd474-8219-4813-8aea-217bfc67d472\",\"trace_id\":\"ff6ce966-9c33-4aee-aa90-413efc6868ee\"}\n[2026-05-11 11:25:23] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesEnded {\"from\":\"11:20\",\"to\":\"11:25\"} {\"correlation_id\":\"9aedd474-8219-4813-8aea-217bfc67d472\",\"trace_id\":\"ff6ce966-9c33-4aee-aa90-413efc6868ee\"}\n[2026-05-11 11:25:23] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesWithUnfinishedSession {\"from\":\"01:15\",\"to\":\"01:20\"} {\"correlation_id\":\"9aedd474-8219-4813-8aea-217bfc67d472\",\"trace_id\":\"ff6ce966-9c33-4aee-aa90-413efc6868ee\"}\n[2026-05-11 11:25:23] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"9aedd474-8219-4813-8aea-217bfc67d472\",\"trace_id\":\"ff6ce966-9c33-4aee-aa90-413efc6868ee\"}\n[2026-05-11 11:25:25] local.NOTICE: Repairing HubSpot tokens start {\"correlation_id\":\"987a75bc-a84b-45b4-808e-0ff39500f7a2\",\"trace_id\":\"f1fbdcb4-3f7c-4a52-8f63-440b3b2a7546\"}\n[2026-05-11 11:25:25] local.INFO: Trying to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\"} {\"correlation_id\":\"987a75bc-a84b-45b4-808e-0ff39500f7a2\",\"trace_id\":\"f1fbdcb4-3f7c-4a52-8f63-440b3b2a7546\"}\n[2026-05-11 11:25:25] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"987a75bc-a84b-45b4-808e-0ff39500f7a2\",\"trace_id\":\"f1fbdcb4-3f7c-4a52-8f63-440b3b2a7546\"}\n[2026-05-11 11:25:25] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":59,\"provider\":\"hubspot\",\"refreshToken\":\"97b78f6e2cc49965c00c2492b602b02708b1392551e6b3f113fbaa48992af90b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"987a75bc-a84b-45b4-808e-0ff39500f7a2\",\"trace_id\":\"f1fbdcb4-3f7c-4a52-8f63-440b3b2a7546\"}\n[2026-05-11 11:25:25] local.ERROR: Failed to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"987a75bc-a84b-45b4-808e-0ff39500f7a2\",\"trace_id\":\"f1fbdcb4-3f7c-4a52-8f63-440b3b2a7546\"}\n[2026-05-11 11:25:25] local.INFO: Trying to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\"} {\"correlation_id\":\"987a75bc-a84b-45b4-808e-0ff39500f7a2\",\"trace_id\":\"f1fbdcb4-3f7c-4a52-8f63-440b3b2a7546\"}\n[2026-05-11 11:25:25] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"987a75bc-a84b-45b4-808e-0ff39500f7a2\",\"trace_id\":\"f1fbdcb4-3f7c-4a52-8f63-440b3b2a7546\"}\n[2026-05-11 11:25:25] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":306,\"provider\":\"hubspot\",\"refreshToken\":\"6fa6aa8cc641d131231acc3470f5c03cb3b07b2e580fb18f8acb3b1dbb72549b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"987a75bc-a84b-45b4-808e-0ff39500f7a2\",\"trace_id\":\"f1fbdcb4-3f7c-4a52-8f63-440b3b2a7546\"}\n[2026-05-11 11:25:25] local.ERROR: Failed to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"987a75bc-a84b-45b4-808e-0ff39500f7a2\",\"trace_id\":\"f1fbdcb4-3f7c-4a52-8f63-440b3b2a7546\"}\n[2026-05-11 11:25:25] local.INFO: Trying to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\"} {\"correlation_id\":\"987a75bc-a84b-45b4-808e-0ff39500f7a2\",\"trace_id\":\"f1fbdcb4-3f7c-4a52-8f63-440b3b2a7546\"}\n[2026-05-11 11:25:25] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"987a75bc-a84b-45b4-808e-0ff39500f7a2\",\"trace_id\":\"f1fbdcb4-3f7c-4a52-8f63-440b3b2a7546\"}\n[2026-05-11 11:25:25] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1372,\"provider\":\"hubspot\",\"refreshToken\":\"9aa73948c761da29dce46c177cf9aee1fde483a44169ca38723f9f0597d7a8c4\",\"state\":\"full-refresh\"} {\"correlation_id\":\"987a75bc-a84b-45b4-808e-0ff39500f7a2\",\"trace_id\":\"f1fbdcb4-3f7c-4a52-8f63-440b3b2a7546\"}\n[2026-05-11 11:25:26] local.ERROR: Failed to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"987a75bc-a84b-45b4-808e-0ff39500f7a2\",\"trace_id\":\"f1fbdcb4-3f7c-4a52-8f63-440b3b2a7546\"}\n[2026-05-11 11:25:26] local.NOTICE: Repairing HubSpot tokens end {\"total\":3,\"fixed\":0,\"failed\":3} {\"correlation_id\":\"987a75bc-a84b-45b4-808e-0ff39500f7a2\",\"trace_id\":\"f1fbdcb4-3f7c-4a52-8f63-440b3b2a7546\"}\n[2026-05-11 11:25:29] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"5d4e1958-fbe6-4d66-951e-5c771b847fe5\",\"trace_id\":\"96d78d87-41be-4810-a79b-5470998dcece\"}\n[2026-05-11 11:25:29] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"133c5926-7f70-4923-a68b-55746832213b\",\"trace_id\":\"48acb135-ad29-4985-b592-0faaccebf2c0\"}\n[2026-05-11 11:25:29] local.INFO: [HubSpot Journal Command] Starting polling service {\"correlation_id\":\"b0ec9af7-f57b-4ebc-87b6-7dbc78a96940\",\"trace_id\":\"2bbf0d9d-9953-4a75-9ca7-edd70428e670\"}\n[2026-05-11 11:25:29] local.INFO: [HubSpot Journal Polling] Service starting {\"memory_limit\":\"256M\",\"max_execution_time\":\"0\",\"initial_memory_mb\":60.0} {\"correlation_id\":\"b0ec9af7-f57b-4ebc-87b6-7dbc78a96940\",\"trace_id\":\"2bbf0d9d-9953-4a75-9ca7-edd70428e670\"}\n[2026-05-11 11:25:29] local.INFO: [HubSpot Journal Polling] Acquired polling lock {\"expires_at\":\"2026-05-11T11:27:29.353081Z\"} {\"correlation_id\":\"b0ec9af7-f57b-4ebc-87b6-7dbc78a96940\",\"trace_id\":\"2bbf0d9d-9953-4a75-9ca7-edd70428e670\"}\n[2026-05-11 11:25:29] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"133c5926-7f70-4923-a68b-55746832213b\",\"trace_id\":\"48acb135-ad29-4985-b592-0faaccebf2c0\"}\n[2026-05-11 11:25:29] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"5d4e1958-fbe6-4d66-951e-5c771b847fe5\",\"trace_id\":\"96d78d87-41be-4810-a79b-5470998dcece\"}\n[2026-05-11 11:25:29] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"b0ec9af7-f57b-4ebc-87b6-7dbc78a96940\",\"trace_id\":\"2bbf0d9d-9953-4a75-9ca7-edd70428e670\"}\n[2026-05-11 11:25:34] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"b0ec9af7-f57b-4ebc-87b6-7dbc78a96940\",\"trace_id\":\"2bbf0d9d-9953-4a75-9ca7-edd70428e670\"}\n[2026-05-11 11:25:39] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"b0ec9af7-f57b-4ebc-87b6-7dbc78a96940\",\"trace_id\":\"2bbf0d9d-9953-4a75-9ca7-edd70428e670\"}\n[2026-05-11 11:25:55] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"b0ec9af7-f57b-4ebc-87b6-7dbc78a96940\",\"trace_id\":\"2bbf0d9d-9953-4a75-9ca7-edd70428e670\"}\n[2026-05-11 11:26:05] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a99d73f6-411d-42b0-8c28-da9d1c933230\",\"trace_id\":\"2e817bae-0d3b-4e2a-95fa-e8b60230afa0\"}\n[2026-05-11 11:26:05] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"a99d73f6-411d-42b0-8c28-da9d1c933230\",\"trace_id\":\"2e817bae-0d3b-4e2a-95fa-e8b60230afa0\"}\n[2026-05-11 11:26:05] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a99d73f6-411d-42b0-8c28-da9d1c933230\",\"trace_id\":\"2e817bae-0d3b-4e2a-95fa-e8b60230afa0\"}\n[2026-05-11 11:26:07] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"aaaf82e1-db01-4dc8-8b3a-f9a9adb6f71f\",\"trace_id\":\"f994c3af-16b5-41e7-a656-6c3e8a080b27\"}\n[2026-05-11 11:26:07] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"aaaf82e1-db01-4dc8-8b3a-f9a9adb6f71f\",\"trace_id\":\"f994c3af-16b5-41e7-a656-6c3e8a080b27\"}\n[2026-05-11 11:26:08] local.NOTICE: Monitoring start {\"correlation_id\":\"061b98f3-e143-4719-a17a-3efd7afee74a\",\"trace_id\":\"b78da73c-6e65-443a-9807-4b2abfd60f3e\"}\n[2026-05-11 11:26:08] local.NOTICE: Monitoring end {\"correlation_id\":\"061b98f3-e143-4719-a17a-3efd7afee74a\",\"trace_id\":\"b78da73c-6e65-443a-9807-4b2abfd60f3e\"}\n[2026-05-11 11:26:10] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"3c656bfd-6169-4216-b065-dbda07c0aa2f\",\"trace_id\":\"3fd2e5b8-413b-4664-aa1d-1a40c1f5a808\"}\n[2026-05-11 11:26:11] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"3c656bfd-6169-4216-b065-dbda07c0aa2f\",\"trace_id\":\"3fd2e5b8-413b-4664-aa1d-1a40c1f5a808\"}\n[2026-05-11 11:26:14] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"fd30ed6e-5985-403f-ab2d-2ad7b1be0e07\",\"trace_id\":\"ee460540-e426-41ad-aab3-ed7bec97987c\"}\n[2026-05-11 11:26:15] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"fd30ed6e-5985-403f-ab2d-2ad7b1be0e07\",\"trace_id\":\"ee460540-e426-41ad-aab3-ed7bec97987c\"}\n[2026-05-11 11:26:15] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"fd30ed6e-5985-403f-ab2d-2ad7b1be0e07\",\"trace_id\":\"ee460540-e426-41ad-aab3-ed7bec97987c\"}\n[2026-05-11 11:26:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"fd30ed6e-5985-403f-ab2d-2ad7b1be0e07\",\"trace_id\":\"ee460540-e426-41ad-aab3-ed7bec97987c\"}\n[2026-05-11 11:26:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"635c6a57-9730-445e-99a7-db06ba33a420\",\"trace_id\":\"e787171a-c571-401e-8d98-e9a7db9246fb\"}\n[2026-05-11 11:26:16] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 11:24:00, 2026-05-11 11:26:00] {\"correlation_id\":\"635c6a57-9730-445e-99a7-db06ba33a420\",\"trace_id\":\"e787171a-c571-401e-8d98-e9a7db9246fb\"}\n[2026-05-11 11:26:16] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 11:24:00, 2026-05-11 11:26:00] {\"correlation_id\":\"635c6a57-9730-445e-99a7-db06ba33a420\",\"trace_id\":\"e787171a-c571-401e-8d98-e9a7db9246fb\"}\n[2026-05-11 11:26:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"635c6a57-9730-445e-99a7-db06ba33a420\",\"trace_id\":\"e787171a-c571-401e-8d98-e9a7db9246fb\"}\n[2026-05-11 11:26:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:sync-hubspot-objects\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"1471d927-3486-46c3-b314-b84b54c292a2\",\"trace_id\":\"9b35def3-02dd-46ef-a4d2-c19f2605bc15\"}\n[2026-05-11 11:26:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:sync-hubspot-objects\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"1471d927-3486-46c3-b314-b84b54c292a2\",\"trace_id\":\"9b35def3-02dd-46ef-a4d2-c19f2605bc15\"}\n[2026-05-11 11:26:18] local.INFO: [SyncHubspotObjects] Starting sync {\"team\":\"abae74b8-bfa8-4383-9a7f-89f4bf2bdbb4\",\"usage\":23366272,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"48273eee-77f1-4f8d-bc74-cddb605a83f7\",\"trace_id\":\"9b35def3-02dd-46ef-a4d2-c19f2605bc15\"}\n[2026-05-11 11:26:18] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"48273eee-77f1-4f8d-bc74-cddb605a83f7\",\"trace_id\":\"9b35def3-02dd-46ef-a4d2-c19f2605bc15\"}\n[2026-05-11 11:26:18] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"48273eee-77f1-4f8d-bc74-cddb605a83f7\",\"trace_id\":\"9b35def3-02dd-46ef-a4d2-c19f2605bc15\"}\n[2026-05-11 11:26:18] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"48273eee-77f1-4f8d-bc74-cddb605a83f7\",\"trace_id\":\"9b35def3-02dd-46ef-a4d2-c19f2605bc15\"}\n[2026-05-11 11:26:18] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"48273eee-77f1-4f8d-bc74-cddb605a83f7\",\"trace_id\":\"9b35def3-02dd-46ef-a4d2-c19f2605bc15\"}\n[2026-05-11 11:26:18] local.INFO: [HubSpot] Syncing opportunities using strategy: lastModified {\"team\":2} {\"correlation_id\":\"48273eee-77f1-4f8d-bc74-cddb605a83f7\",\"trace_id\":\"9b35def3-02dd-46ef-a4d2-c19f2605bc15\"}\n[2026-05-11 11:26:19] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.25,\"average_seconds_per_request\":0.25} {\"correlation_id\":\"48273eee-77f1-4f8d-bc74-cddb605a83f7\",\"trace_id\":\"9b35def3-02dd-46ef-a4d2-c19f2605bc15\"}\n[2026-05-11 11:26:19] local.INFO: [HubSpot] Synced opportunities {\"team\":2,\"strategies\":\"lastModified\",\"sync_count\":0,\"total\":0,\"last_synced_id\":null,\"duration_ms\":252.59} {\"correlation_id\":\"48273eee-77f1-4f8d-bc74-cddb605a83f7\",\"trace_id\":\"9b35def3-02dd-46ef-a4d2-c19f2605bc15\"}\n[2026-05-11 11:26:19] local.INFO: [SyncHubspotObjects] Sync finished {\"team\":\"abae74b8-bfa8-4383-9a7f-89f4bf2bdbb4\",\"provider\":\"hubspot\",\"status\":\"completed\",\"duration_ms\":295.86,\"usage\":23450240,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"48273eee-77f1-4f8d-bc74-cddb605a83f7\",\"trace_id\":\"9b35def3-02dd-46ef-a4d2-c19f2605bc15\"}\n[2026-05-11 11:26:19] local.INFO: [SyncHubspotObjects] Starting sync {\"team\":\"b2d49a54-b645-4637-a7ae-a86cfce6e8e4\",\"usage\":23428168,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"12dd4e4c-51c0-4fb8-88d7-6bb6a049a9aa\",\"trace_id\":\"9b35def3-02dd-46ef-a4d2-c19f2605bc15\"}\n[2026-05-11 11:26:19] local.WARNING: [HubSpot] Account not connected for user {\"userId\":\"2ac0447f-3c8c-4ce0-baeb-b63ddb76fa9b\",\"account\":null} {\"correlation_id\":\"12dd4e4c-51c0-4fb8-88d7-6bb6a049a9aa\",\"trace_id\":\"9b35def3-02dd-46ef-a4d2-c19f2605bc15\"}\n[2026-05-11 11:26:19] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"hubspot\",\"crm_owner\":130,\"team_id\":42} {\"correlation_id\":\"12dd4e4c-51c0-4fb8-88d7-6bb6a049a9aa\",\"trace_id\":\"9b35def3-02dd-46ef-a4d2-c19f2605bc15\"}\n[2026-05-11 11:26:19] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":42} {\"correlation_id\":\"12dd4e4c-51c0-4fb8-88d7-6bb6a049a9aa\",\"trace_id\":\"9b35def3-02dd-46ef-a4d2-c19f2605bc15\"}\n[2026-05-11 11:26:19] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":42} {\"correlation_id\":\"12dd4e4c-51c0-4fb8-88d7-6bb6a049a9aa\",\"trace_id\":\"9b35def3-02dd-46ef-a4d2-c19f2605bc15\"}\n[2026-05-11 11:26:19] local.INFO: [SyncHubspotObjects] Sync finished {\"team\":\"b2d49a54-b645-4637-a7ae-a86cfce6e8e4\",\"provider\":\"hubspot\",\"status\":\"disconnected\",\"duration_ms\":16.64,\"usage\":23416176,\"real_usage\":62914560,\"pid\":74083,\"reason\":\"Social account for HubSpot cannot be found. Please login to Jiminny to connect.\"} {\"correlation_id\":\"12dd4e4c-51c0-4fb8-88d7-6bb6a049a9aa\",\"trace_id\":\"9b35def3-02dd-46ef-a4d2-c19f2605bc15\"}\n[2026-05-11 11:26:19] local.INFO: [SyncHubspotObjects] Starting sync {\"team\":\"b2b115eb-93ce-4d1b-929c-173757df8fba\",\"usage\":23376928,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"b921c6a2-b5ca-4d11-b4e0-2f08ef01bae2\",\"trace_id\":\"9b35def3-02dd-46ef-a4d2-c19f2605bc15\"}\n[2026-05-11 11:26:19] local.WARNING: [HubSpot] Account not connected for user {\"userId\":\"33e34a7a-1c02-4f04-87ac-22c3a385e6e3\",\"account\":{\"Jiminny\\\\Models\\\\SocialAccount\":{\"id\":306,\"sociable_id\":109,\"provider_user_id\":\"11348452\",\"expires\":1701077403,\"refresh_token_expires\":null,\"provider\":\"hubspot\",\"state\":\"full-refresh\",\"auth_scope\":null,\"retry_after\":null,\"created_at\":\"2020-09-01 16:59:04\",\"updated_at\":\"2023-11-27 09:30:03\"}}} {\"correlation_id\":\"b921c6a2-b5ca-4d11-b4e0-2f08ef01bae2\",\"trace_id\":\"9b35def3-02dd-46ef-a4d2-c19f2605bc15\"}\n[2026-05-11 11:26:19] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"hubspot\",\"crm_owner\":109,\"team_id\":29} {\"correlation_id\":\"b921c6a2-b5ca-4d11-b4e0-2f08ef01bae2\",\"trace_id\":\"9b35def3-02dd-46ef-a4d2-c19f2605bc15\"}\n[2026-05-11 11:26:19] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":29} {\"correlation_id\":\"b921c6a2-b5ca-4d11-b4e0-2f08ef01bae2\",\"trace_id\":\"9b35def3-02dd-46ef-a4d2-c19f2605bc15\"}\n[2026-05-11 11:26:19] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":29} {\"correlation_id\":\"b921c6a2-b5ca-4d11-b4e0-2f08ef01bae2\",\"trace_id\":\"9b35def3-02dd-46ef-a4d2-c19f2605bc15\"}\n[2026-05-11 11:26:19] local.INFO: [SyncHubspotObjects] Sync finished {\"team\":\"b2b115eb-93ce-4d1b-929c-173757df8fba\",\"provider\":\"hubspot\",\"status\":\"disconnected\",\"duration_ms\":6.2,\"usage\":23438968,\"real_usage\":62914560,\"pid\":74083,\"reason\":\"Your HubSpot account has become disconnected. Please login to Jiminny to reconnect.\"} {\"correlation_id\":\"b921c6a2-b5ca-4d11-b4e0-2f08ef01bae2\",\"trace_id\":\"9b35def3-02dd-46ef-a4d2-c19f2605bc15\"}\n[2026-05-11 11:26:20] local.INFO: [SyncHubspotObjects] Starting sync {\"team\":\"c6b9d6b0-b48d-4832-a68c-a57d60651888\",\"usage\":23396472,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"3fc7effa-42f8-4728-89de-96d5454a0b40\",\"trace_id\":\"9b35def3-02dd-46ef-a4d2-c19f2605bc15\"}\n[2026-05-11 11:26:20] local.WARNING: [HubSpot] Account not connected for user {\"userId\":\"71e3aac5-fb66-47c5-a236-2d051ae3e319\",\"account\":null} {\"correlation_id\":\"3fc7effa-42f8-4728-89de-96d5454a0b40\",\"trace_id\":\"9b35def3-02dd-46ef-a4d2-c19f2605bc15\"}\n[2026-05-11 11:26:20] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"hubspot\",\"crm_owner\":256,\"team_id\":49} {\"correlation_id\":\"3fc7effa-42f8-4728-89de-96d5454a0b40\",\"trace_id\":\"9b35def3-02dd-46ef-a4d2-c19f2605bc15\"}\n[2026-05-11 11:26:20] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":49} {\"correlation_id\":\"3fc7effa-42f8-4728-89de-96d5454a0b40\",\"trace_id\":\"9b35def3-02dd-46ef-a4d2-c19f2605bc15\"}\n[2026-05-11 11:26:20] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":49} {\"correlation_id\":\"3fc7effa-42f8-4728-89de-96d5454a0b40\",\"trace_id\":\"9b35def3-02dd-46ef-a4d2-c19f2605bc15\"}\n[2026-05-11 11:26:20] local.INFO: [SyncHubspotObjects] Sync finished {\"team\":\"c6b9d6b0-b48d-4832-a68c-a57d60651888\",\"provider\":\"hubspot\",\"status\":\"disconnected\",\"duration_ms\":11.53,\"usage\":23412592,\"real_usage\":62914560,\"pid\":74083,\"reason\":\"Social account for HubSpot cannot be found. Please login to Jiminny to connect.\"} {\"correlation_id\":\"3fc7effa-42f8-4728-89de-96d5454a0b40\",\"trace_id\":\"9b35def3-02dd-46ef-a4d2-c19f2605bc15\"}\n[2026-05-11 11:26:20] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:notify-not-logged\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"715ea288-5a4f-4ef8-9ba7-1a028e040dd3\",\"trace_id\":\"c4a8233a-1917-4b3c-a419-8ac7e4bc790b\"}\n[2026-05-11 11:26:20] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:notify-not-logged\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"715ea288-5a4f-4ef8-9ba7-1a028e040dd3\",\"trace_id\":\"c4a8233a-1917-4b3c-a419-8ac7e4bc790b\"}\n[2026-05-11 11:26:24] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"7b26cf6e-025e-4bdc-8515-96b62ef1371d\",\"trace_id\":\"f11769d8-5451-47c0-93e8-8159d4fae8f2\"}\n[2026-05-11 11:26:24] local.INFO: [EmailSchedule] STARTING Inbox Sync {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"7b26cf6e-025e-4bdc-8515-96b62ef1371d\",\"trace_id\":\"f11769d8-5451-47c0-93e8-8159d4fae8f2\"}\n[2026-05-11 11:26:24] local.INFO: [EmailSchedule] FINISHED Inbox Sync {\"host\":\"docker_lamp_1\",\"events\":2} {\"correlation_id\":\"7b26cf6e-025e-4bdc-8515-96b62ef1371d\",\"trace_id\":\"f11769d8-5451-47c0-93e8-8159d4fae8f2\"}\n[2026-05-11 11:26:24] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"7b26cf6e-025e-4bdc-8515-96b62ef1371d\",\"trace_id\":\"f11769d8-5451-47c0-93e8-8159d4fae8f2\"}\n[2026-05-11 11:26:25] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"b0ec9af7-f57b-4ebc-87b6-7dbc78a96940\",\"trace_id\":\"2bbf0d9d-9953-4a75-9ca7-edd70428e670\"}\n[2026-05-11 11:26:25] local.WARNING: [HubSpot Journal Polling] Maximum empty results reached, stopping {\"empty_results\":5,\"max_empty_results\":5} {\"correlation_id\":\"b0ec9af7-f57b-4ebc-87b6-7dbc78a96940\",\"trace_id\":\"2bbf0d9d-9953-4a75-9ca7-edd70428e670\"}\n[2026-05-11 11:26:25] local.WARNING: [HubSpot Journal Polling] Maximum empty results reached, stopping {\"empty_results\":5,\"max_empty_results\":5} {\"correlation_id\":\"b0ec9af7-f57b-4ebc-87b6-7dbc78a96940\",\"trace_id\":\"2bbf0d9d-9953-4a75-9ca7-edd70428e670\"}\n[2026-05-11 11:26:25] local.INFO: [HubSpot Journal Polling] Service ending {\"runtime_seconds\":56,\"total_cycles\":5,\"files_downloaded\":0,\"empty_files\":0,\"other_portal_skipped\":0,\"total_events\":0,\"events_per_file\":0,\"avg_api_ms\":183.4,\"avg_download_ms\":0.0,\"avg_transform_ms\":0.0,\"avg_process_ms\":0.0,\"peak_memory_mb\":99.73} {\"correlation_id\":\"b0ec9af7-f57b-4ebc-87b6-7dbc78a96940\",\"trace_id\":\"2bbf0d9d-9953-4a75-9ca7-edd70428e670\"}\n[2026-05-11 11:26:25] local.INFO: [HubSpot Journal Polling] Saved offset to database on cleanup {\"offset\":\"019e15a9-9ea0-7da7-87bc-82592e3ccf0d\"} {\"correlation_id\":\"b0ec9af7-f57b-4ebc-87b6-7dbc78a96940\",\"trace_id\":\"2bbf0d9d-9953-4a75-9ca7-edd70428e670\"}\n[2026-05-11 11:26:25] local.INFO: [HubSpot Journal Polling] Released polling lock {\"correlation_id\":\"b0ec9af7-f57b-4ebc-87b6-7dbc78a96940\",\"trace_id\":\"2bbf0d9d-9953-4a75-9ca7-edd70428e670\"}\n[2026-05-11 11:26:27] local.INFO: [Sync Mailbox] Sync start {\"inbox_id\":59} {\"correlation_id\":\"8045d610-e06d-4c43-b050-c96719c041eb\",\"trace_id\":\"f11769d8-5451-47c0-93e8-8159d4fae8f2\"}\n[2026-05-11 11:26:27] local.INFO: [Inbox service] Skipping METADATA SYNC for inbox 59 due to unauthorized access to the mailbox {\"correlation_id\":\"8045d610-e06d-4c43-b050-c96719c041eb\",\"trace_id\":\"f11769d8-5451-47c0-93e8-8159d4fae8f2\"}\n[2026-05-11 11:26:27] local.INFO: [Sync Mailbox] Sync complete {\"inbox_id\":59} {\"correlation_id\":\"8045d610-e06d-4c43-b050-c96719c041eb\",\"trace_id\":\"f11769d8-5451-47c0-93e8-8159d4fae8f2\"}\n[2026-05-11 11:26:27] local.INFO: [Sync Mailbox] Sync start {\"inbox_id\":212} {\"correlation_id\":\"f0ce8e22-59e0-46dd-b2c5-eedff340eb69\",\"trace_id\":\"f11769d8-5451-47c0-93e8-8159d4fae8f2\"}\n[2026-05-11 11:26:27] local.INFO: [Inbox service] Skipping METADATA SYNC for inbox 212 due to unauthorized access to the mailbox {\"correlation_id\":\"f0ce8e22-59e0-46dd-b2c5-eedff340eb69\",\"trace_id\":\"f11769d8-5451-47c0-93e8-8159d4fae8f2\"}\n[2026-05-11 11:26:27] local.INFO: [Sync Mailbox] Sync complete {\"inbox_id\":212} {\"correlation_id\":\"f0ce8e22-59e0-46dd-b2c5-eedff340eb69\",\"trace_id\":\"f11769d8-5451-47c0-93e8-8159d4fae8f2\"}\n[2026-05-11 11:27:05] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"75156279-7be4-457c-9018-0ed5f2b71ece\",\"trace_id\":\"69ab8899-af88-4a59-aa9d-738e2a457aff\"}\n[2026-05-11 11:27:05] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"75156279-7be4-457c-9018-0ed5f2b71ece\",\"trace_id\":\"69ab8899-af88-4a59-aa9d-738e2a457aff\"}\n[2026-05-11 11:27:05] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"75156279-7be4-457c-9018-0ed5f2b71ece\",\"trace_id\":\"69ab8899-af88-4a59-aa9d-738e2a457aff\"}\n[2026-05-11 11:27:07] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"82543eca-07a5-4fea-b606-b3558eed2493\",\"trace_id\":\"e40912ea-8d3c-4efd-98f0-2a7cf164a747\"}\n[2026-05-11 11:27:07] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"82543eca-07a5-4fea-b606-b3558eed2493\",\"trace_id\":\"e40912ea-8d3c-4efd-98f0-2a7cf164a747\"}\n[2026-05-11 11:27:09] local.NOTICE: Monitoring start {\"correlation_id\":\"e1534ea8-4244-4acc-912e-a3a60b346318\",\"trace_id\":\"b54370a0-ad08-4592-8b24-1e299f6253d2\"}\n[2026-05-11 11:27:09] local.NOTICE: Monitoring end {\"correlation_id\":\"e1534ea8-4244-4acc-912e-a3a60b346318\",\"trace_id\":\"b54370a0-ad08-4592-8b24-1e299f6253d2\"}\n[2026-05-11 11:27:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"e9b5f04d-7de1-46a6-bbfd-7d801d83c969\",\"trace_id\":\"ae9ea732-d3a5-46a5-a90d-3ccdeb1d34e2\"}\n[2026-05-11 11:27:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"e9b5f04d-7de1-46a6-bbfd-7d801d83c969\",\"trace_id\":\"ae9ea732-d3a5-46a5-a90d-3ccdeb1d34e2\"}\n[2026-05-11 11:27:14] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"2d0630a6-5a05-4ba8-9e1c-667ff36e82e8\",\"trace_id\":\"d7fbe2e4-78d9-4165-9d02-62a411645dde\"}\n[2026-05-11 11:27:14] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"2d0630a6-5a05-4ba8-9e1c-667ff36e82e8\",\"trace_id\":\"d7fbe2e4-78d9-4165-9d02-62a411645dde\"}\n[2026-05-11 11:27:14] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"2d0630a6-5a05-4ba8-9e1c-667ff36e82e8\",\"trace_id\":\"d7fbe2e4-78d9-4165-9d02-62a411645dde\"}\n[2026-05-11 11:27:14] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"2d0630a6-5a05-4ba8-9e1c-667ff36e82e8\",\"trace_id\":\"d7fbe2e4-78d9-4165-9d02-62a411645dde\"}\n[2026-05-11 11:27:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a6824064-9371-4a7f-9421-f13eb7a243e1\",\"trace_id\":\"2ae1ddbf-db70-4743-8e84-9d9f892a7a3f\"}\n[2026-05-11 11:27:15] local.INFO: [EmailSchedule] STARTING batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"a6824064-9371-4a7f-9421-f13eb7a243e1\",\"trace_id\":\"2ae1ddbf-db70-4743-8e84-9d9f892a7a3f\"}\n[2026-05-11 11:27:15] local.INFO: [EmailSchedule] FINISHED batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"a6824064-9371-4a7f-9421-f13eb7a243e1\",\"trace_id\":\"2ae1ddbf-db70-4743-8e84-9d9f892a7a3f\"}\n[2026-05-11 11:27:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a6824064-9371-4a7f-9421-f13eb7a243e1\",\"trace_id\":\"2ae1ddbf-db70-4743-8e84-9d9f892a7a3f\"}\n[2026-05-11 11:27:18] local.INFO: [Jiminny\\Jobs\\Mailbox\\CreateBatches] processed 2 inboxes and created 0 batches {\"userId\":null,\"batchSize\":30,\"maxBatches\":1000} {\"correlation_id\":\"4ebc2d2e-016e-41d7-974c-d8bd5e2273fa\",\"trace_id\":\"2ae1ddbf-db70-4743-8e84-9d9f892a7a3f\"}\n[2026-05-11 11:28:06] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"0b5b93da-8f8c-4e1a-a9f3-07c7c6be8788\",\"trace_id\":\"1f495c0c-6ebe-4b37-ae0a-b8277d650772\"}\n[2026-05-11 11:28:06] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"0b5b93da-8f8c-4e1a-a9f3-07c7c6be8788\",\"trace_id\":\"1f495c0c-6ebe-4b37-ae0a-b8277d650772\"}\n[2026-05-11 11:28:06] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"0b5b93da-8f8c-4e1a-a9f3-07c7c6be8788\",\"trace_id\":\"1f495c0c-6ebe-4b37-ae0a-b8277d650772\"}\n[2026-05-11 11:28:08] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"ee35ed40-2d9c-4cde-87e1-77f73de19e99\",\"trace_id\":\"9583c234-22f4-40b4-b98c-ab29ada82cd5\"}\n[2026-05-11 11:28:08] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"ee35ed40-2d9c-4cde-87e1-77f73de19e99\",\"trace_id\":\"9583c234-22f4-40b4-b98c-ab29ada82cd5\"}\n[2026-05-11 11:28:10] local.NOTICE: Monitoring start {\"correlation_id\":\"f5b44dea-1891-4f8e-9cc0-48af37bfc48f\",\"trace_id\":\"3c933285-dfbd-4491-81d8-301b28104d23\"}\n[2026-05-11 11:28:10] local.NOTICE: Monitoring end {\"correlation_id\":\"f5b44dea-1891-4f8e-9cc0-48af37bfc48f\",\"trace_id\":\"3c933285-dfbd-4491-81d8-301b28104d23\"}\n[2026-05-11 11:28:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"7dbe716f-ac8c-425b-9f5e-098d751a070a\",\"trace_id\":\"b3e590b5-923a-4e54-a004-6076a8ac4eef\"}\n[2026-05-11 11:28:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"7dbe716f-ac8c-425b-9f5e-098d751a070a\",\"trace_id\":\"b3e590b5-923a-4e54-a004-6076a8ac4eef\"}\n[2026-05-11 11:28:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"5df1e38d-7d8f-445c-a127-f4c0f0536d9d\",\"trace_id\":\"727bf834-a59f-454c-bf47-4c802195e493\"}\n[2026-05-11 11:28:15] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"5df1e38d-7d8f-445c-a127-f4c0f0536d9d\",\"trace_id\":\"727bf834-a59f-454c-bf47-4c802195e493\"}\n[2026-05-11 11:28:15] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"5df1e38d-7d8f-445c-a127-f4c0f0536d9d\",\"trace_id\":\"727bf834-a59f-454c-bf47-4c802195e493\"}\n[2026-05-11 11:28:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"5df1e38d-7d8f-445c-a127-f4c0f0536d9d\",\"trace_id\":\"727bf834-a59f-454c-bf47-4c802195e493\"}\n[2026-05-11 11:28:17] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"e7494e56-e956-4ffc-affe-2a5c582aebfe\",\"trace_id\":\"6ac1061c-4a2a-462c-b9df-feab95ed9a09\"}\n[2026-05-11 11:28:17] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 11:26:00, 2026-05-11 11:28:00] {\"correlation_id\":\"e7494e56-e956-4ffc-affe-2a5c582aebfe\",\"trace_id\":\"6ac1061c-4a2a-462c-b9df-feab95ed9a09\"}\n[2026-05-11 11:28:17] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 11:26:00, 2026-05-11 11:28:00] {\"correlation_id\":\"e7494e56-e956-4ffc-affe-2a5c582aebfe\",\"trace_id\":\"6ac1061c-4a2a-462c-b9df-feab95ed9a09\"}\n[2026-05-11 11:28:17] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"e7494e56-e956-4ffc-affe-2a5c582aebfe\",\"trace_id\":\"6ac1061c-4a2a-462c-b9df-feab95ed9a09\"}\n[2026-05-11 11:28:19] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"158a2c16-4980-46f8-9618-8cb297bb1ebb\",\"trace_id\":\"c44b3725-52b3-4c11-8ca9-fc920753fba4\"}\n[2026-05-11 11:28:19] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"calendar:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:19] local.NOTICE: Calendar sync start {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:19] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"158a2c16-4980-46f8-9618-8cb297bb1ebb\",\"trace_id\":\"c44b3725-52b3-4c11-8ca9-fc920753fba4\"}\n[2026-05-11 11:28:19] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1393,\"provider\":\"google\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:19] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1393,\"provider\":\"google\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:19] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:19] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1393,\"provider\":\"google\",\"refreshToken\":\"5aa7e2d96b53201cd16fca5d2e4ef3ad03320971fc064781d18aee3ae7b99fbf\",\"state\":\"full-refresh\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1393,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Account has been deleted\"}} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1393,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1387,\"provider\":\"google\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1387,\"provider\":\"google\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1387,\"provider\":\"google\",\"refreshToken\":\"8157ac6de94842937194009e9c50e459253600f799dacf6a40755ffdbeb5bba6\",\"state\":\"full-refresh\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1387,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Account has been deleted\"}} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1387,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1348,\"provider\":\"google\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1348,\"provider\":\"google\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1348,\"provider\":\"google\",\"refreshToken\":\"9e7d13d3032d0cb1b79d8e95aef01383e8e91eb52ff8ee960c8a0b6b95cd8c73\",\"state\":\"full-refresh\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1348,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1348,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1361,\"provider\":\"google\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1361,\"provider\":\"google\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1361,\"provider\":\"google\",\"refreshToken\":\"6c843da199c2b9907445329304fcc4ec5057a4ee748d8299641764395c08e1fd\",\"state\":\"full-refresh\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1361,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Account has been deleted\"}} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1361,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1310,\"provider\":\"google\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1310,\"provider\":\"google\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1310,\"provider\":\"google\",\"refreshToken\":\"e34818922c2830a660813a63f6169a4a9a992ae2cccd7dc8dd7796cfdb470ef1\",\"state\":\"full-refresh\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1310,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1310,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1333,\"provider\":\"google\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1333,\"provider\":\"google\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1333,\"provider\":\"google\",\"refreshToken\":\"6c902986546d8e8da1dc539b046cdc1d458f519acc972e5b5f1d6a1a295165e0\",\"state\":\"full-refresh\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1333,\"provider\":\"google\",\"responseBody\":{\"error\":\"unauthorized_client\",\"error_description\":\"Unauthorized\"}} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1333,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1368,\"provider\":\"google\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1368,\"provider\":\"google\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:20] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1368,\"provider\":\"google\",\"refreshToken\":\"d2f128898ff8543bd16b69cfae37896ab85119b0f5ed2b431d739593bb600333\",\"state\":\"full-refresh\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:21] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1368,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:21] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:21] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1368,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:21] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1365,\"provider\":\"google\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:21] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1365,\"provider\":\"google\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:21] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:21] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1365,\"provider\":\"google\",\"refreshToken\":\"7676e4a9afcd082b413248ab5ec6e487021fec6a9bdf315860a59cefad9caad8\",\"state\":\"full-refresh\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:21] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1365,\"provider\":\"google\",\"responseBody\":{\"error\":\"unauthorized_client\",\"error_description\":\"Unauthorized\"}} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:21] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:21] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1365,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:21] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1364,\"provider\":\"google\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:21] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1364,\"provider\":\"google\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:21] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:21] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1364,\"provider\":\"google\",\"refreshToken\":\"dd5882ebce76e645292ce33ae74238abbb77c0a4ecc6a2bfe723cad82e72ba8e\",\"state\":\"full-refresh\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:21] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1364,\"provider\":\"google\",\"responseBody\":{\"error\":\"unauthorized_client\",\"error_description\":\"Unauthorized\"}} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:21] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:21] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1364,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:21] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1370,\"provider\":\"office\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:21] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1370,\"provider\":\"office\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:21] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:21] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1370,\"provider\":\"office\",\"refreshToken\":\"b7ee8035306d0043cea6e00e7c4fe14f745e44074a1194db62a31cdf8b70af3e\",\"state\":\"full-refresh\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:21] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1370,\"provider\":\"office\",\"responseBody\":\"{\\\"error\\\":\\\"invalid_client\\\",\\\"error_description\\\":\\\"AADSTS7000215: Invalid client secret provided. Ensure the secret being sent in the request is the client secret value, not the client secret ID, for a secret added to app 'bbcbb2ef-6200-4fae-82bd-d81f5dd738da'. Trace ID: d110f131-9860-4d7e-88b3-e8530bbb2300 Correlation ID: 2c4331a5-6504-47c7-b060-bd5387180980 Timestamp: 2026-05-11 11:28:21Z\\\",\\\"error_codes\\\":[7000215],\\\"timestamp\\\":\\\"2026-05-11 11:28:21Z\\\",\\\"trace_id\\\":\\\"d110f131-9860-4d7e-88b3-e8530bbb2300\\\",\\\"correlation_id\\\":\\\"2c4331a5-6504-47c7-b060-bd5387180980\\\",\\\"error_uri\\\":\\\"https://login.microsoftonline.com/error?code=7000215\\\"}\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:21] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:21] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1370,\"provider\":\"office\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:21] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1202,\"provider\":\"office\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:21] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1202,\"provider\":\"office\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:21] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:21] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1202,\"provider\":\"office\",\"refreshToken\":\"b458799ccc29b21a6e2eb5260fdb63e49ccba21bf942a3973fb63799bd7f0afe\",\"state\":\"full-refresh\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:22] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1202,\"provider\":\"office\",\"responseBody\":\"{\\\"error\\\":\\\"invalid_client\\\",\\\"error_description\\\":\\\"AADSTS7000215: Invalid client secret provided. Ensure the secret being sent in the request is the client secret value, not the client secret ID, for a secret added to app 'bbcbb2ef-6200-4fae-82bd-d81f5dd738da'. Trace ID: 1c37dfe7-6666-43cf-8fd8-3a87fce32300 Correlation ID: 24510f33-56ce-4087-8169-ecf9d861bae3 Timestamp: 2026-05-11 11:28:22Z\\\",\\\"error_codes\\\":[7000215],\\\"timestamp\\\":\\\"2026-05-11 11:28:22Z\\\",\\\"trace_id\\\":\\\"1c37dfe7-6666-43cf-8fd8-3a87fce32300\\\",\\\"correlation_id\\\":\\\"24510f33-56ce-4087-8169-ecf9d861bae3\\\",\\\"error_uri\\\":\\\"https://login.microsoftonline.com/error?code=7000215\\\"}\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:22] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:22] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1202,\"provider\":\"office\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:22] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:22] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:22] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:22] local.INFO: Calendar sync job dispatched {\"calendar_id\":501} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:22] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1300,\"provider\":\"google\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:22] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1300,\"provider\":\"google\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:22] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:22] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1300,\"provider\":\"google\",\"refreshToken\":\"4b811db0725fd9602a95943519a7da935e2a5065da7d9ebfcb170752e3e1ddb8\",\"state\":\"full-refresh\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:22] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1300,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Account has been deleted\"}} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:22] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:22] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1300,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:22] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1409,\"provider\":\"google\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:22] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1409,\"provider\":\"google\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:22] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:22] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1409,\"provider\":\"google\",\"refreshToken\":\"e2a3f2d06894894eed1ee87d9db1ace77d4d42ee6e1288a8940ad2c10333b0c4\",\"state\":\"full-refresh\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:22] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1409,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:22] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:22] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1409,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:22] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1352,\"provider\":\"google\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:22] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1352,\"provider\":\"google\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:22] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:22] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1352,\"provider\":\"google\",\"refreshToken\":\"dd4b16b00fdc1216da6b717c02338c073636e29162826b2de6db3f064fc029eb\",\"state\":\"full-refresh\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:22] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1352,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Token has been expired or revoked.\"}} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:22] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:22] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1352,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:22] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1296,\"provider\":\"office\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:22] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1296,\"provider\":\"office\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:22] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:22] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1296,\"provider\":\"office\",\"refreshToken\":\"011ae723c9d800c674e0b4be76f49fc046dac7d501b66c59ef0d9549cfa56ae5\",\"state\":\"full-refresh\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:23] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1296,\"provider\":\"office\",\"responseBody\":\"{\\\"error\\\":\\\"invalid_client\\\",\\\"error_description\\\":\\\"AADSTS7000215: Invalid client secret provided. Ensure the secret being sent in the request is the client secret value, not the client secret ID, for a secret added to app 'bbcbb2ef-6200-4fae-82bd-d81f5dd738da'. Trace ID: bb896323-6a97-48d4-bb3d-500f7b1d2000 Correlation ID: ba707c5f-8f7b-4890-9dd3-e5d0e6f0133e Timestamp: 2026-05-11 11:28:23Z\\\",\\\"error_codes\\\":[7000215],\\\"timestamp\\\":\\\"2026-05-11 11:28:23Z\\\",\\\"trace_id\\\":\\\"bb896323-6a97-48d4-bb3d-500f7b1d2000\\\",\\\"correlation_id\\\":\\\"ba707c5f-8f7b-4890-9dd3-e5d0e6f0133e\\\",\\\"error_uri\\\":\\\"https://login.microsoftonline.com/error?code=7000215\\\"}\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:23] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:23] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1296,\"provider\":\"office\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:23] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":391,\"provider\":\"office\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:23] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":391,\"provider\":\"office\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:23] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:23] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":391,\"provider\":\"office\",\"refreshToken\":\"00045eebae0f39b34887c6d53f92ae78064f7145e1f4b67754aebd03cfb2d881\",\"state\":\"full-refresh\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:24] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"4e6b0159-2cb1-4cd3-a131-dab75cc7716d\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:24] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"4e6b0159-2cb1-4cd3-a131-dab75cc7716d\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:24] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4e6b0159-2cb1-4cd3-a131-dab75cc7716d\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:24] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":391,\"provider\":\"office\",\"responseBody\":\"{\\\"error\\\":\\\"invalid_client\\\",\\\"error_description\\\":\\\"AADSTS7000215: Invalid client secret provided. Ensure the secret being sent in the request is the client secret value, not the client secret ID, for a secret added to app 'bbcbb2ef-6200-4fae-82bd-d81f5dd738da'. Trace ID: f1ddbfc1-909b-4659-8661-99d8ba932300 Correlation ID: cddc65c1-7281-49cf-851f-e1b9103ca9bc Timestamp: 2026-05-11 11:28:24Z\\\",\\\"error_codes\\\":[7000215],\\\"timestamp\\\":\\\"2026-05-11 11:28:24Z\\\",\\\"trace_id\\\":\\\"f1ddbfc1-909b-4659-8661-99d8ba932300\\\",\\\"correlation_id\\\":\\\"cddc65c1-7281-49cf-851f-e1b9103ca9bc\\\",\\\"error_uri\\\":\\\"https://login.microsoftonline.com/error?code=7000215\\\"}\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:24] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:24] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":391,\"provider\":\"office\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:24] local.INFO: [Calendar] Processing sync {\"calendarId\":\"a33076c1-8d97-431a-99f0-85c9524e118b\",\"from\":null,\"to\":null,\"delta\":\"CIiFh8TP44kDEIiFh8TP44kDGAUgkZvkzgIokZvkzgI=\",\"last_sync\":\"2024-12-09 07:12:53\",\"dateMode\":\"daily\"} {\"correlation_id\":\"4e6b0159-2cb1-4cd3-a131-dab75cc7716d\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:24] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1271,\"provider\":\"office\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:24] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1271,\"provider\":\"office\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:24] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:24] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1271,\"provider\":\"office\",\"refreshToken\":\"118cde2c06993147b07ccaec4cbcd5026a819dea6c71081166a492933e392afb\",\"state\":\"full-refresh\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:24] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"integration-app\",\"crm_owner\":1695,\"team_id\":3143} {\"correlation_id\":\"4e6b0159-2cb1-4cd3-a131-dab75cc7716d\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:24] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"4e6b0159-2cb1-4cd3-a131-dab75cc7716d\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:24] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"4e6b0159-2cb1-4cd3-a131-dab75cc7716d\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:24] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4e6b0159-2cb1-4cd3-a131-dab75cc7716d\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:24] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1271,\"provider\":\"office\",\"responseBody\":\"{\\\"error\\\":\\\"invalid_client\\\",\\\"error_description\\\":\\\"AADSTS7000215: Invalid client secret provided. Ensure the secret being sent in the request is the client secret value, not the client secret ID, for a secret added to app 'bbcbb2ef-6200-4fae-82bd-d81f5dd738da'. Trace ID: 15b968ac-ade9-4993-b2db-272c0cfb0700 Correlation ID: 2e83270b-54ef-4a9a-85d2-d579994d2823 Timestamp: 2026-05-11 11:28:24Z\\\",\\\"error_codes\\\":[7000215],\\\"timestamp\\\":\\\"2026-05-11 11:28:24Z\\\",\\\"trace_id\\\":\\\"15b968ac-ade9-4993-b2db-272c0cfb0700\\\",\\\"correlation_id\\\":\\\"2e83270b-54ef-4a9a-85d2-d579994d2823\\\",\\\"error_uri\\\":\\\"https://login.microsoftonline.com/error?code=7000215\\\"}\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:24] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:24] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1271,\"provider\":\"office\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:24] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1351,\"provider\":\"google\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:24] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1351,\"provider\":\"google\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:24] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:24] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1351,\"provider\":\"google\",\"refreshToken\":\"4271d15b9e60a606439caddc68337f783e472c85b03dacff14d1b6dfded9051c\",\"state\":\"full-refresh\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:24] local.INFO: [Google Calendar] Failed to watch channel for calendar {\"calendarId\":\"a33076c1-8d97-431a-99f0-85c9524e118b\",\"code\":400,\"reason\":\"{\n \\\"error\\\": {\n \\\"errors\\\": [\n {\n \\\"domain\\\": \\\"global\\\",\n \\\"reason\\\": \\\"push.webhookUrlNotHttps\\\",\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n ],\n \\\"code\\\": 400,\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n}\"} {\"correlation_id\":\"4e6b0159-2cb1-4cd3-a131-dab75cc7716d\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:24] local.WARNING: [Calendar] Sync failed {\"calendarId\":\"a33076c1-8d97-431a-99f0-85c9524e118b\",\"code\":400,\"reason\":\"{\n \\\"error\\\": {\n \\\"errors\\\": [\n {\n \\\"domain\\\": \\\"global\\\",\n \\\"reason\\\": \\\"push.webhookUrlNotHttps\\\",\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n ],\n \\\"code\\\": 400,\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n}\"} {\"correlation_id\":\"4e6b0159-2cb1-4cd3-a131-dab75cc7716d\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:24] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1351,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:25] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:25] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1351,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:25] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1366,\"provider\":\"google\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:25] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1366,\"provider\":\"google\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:25] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:25] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1366,\"provider\":\"google\",\"refreshToken\":\"ae21385059b2eebfd43f68aecd56eccd702a1aabb6598f1f7ab594ed8af491b4\",\"state\":\"full-refresh\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:25] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1366,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:25] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:25] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1366,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:25] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:25] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:25] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:25] local.INFO: Calendar sync job dispatched {\"calendar_id\":378} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:25] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1421,\"provider\":\"office\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:25] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1421,\"provider\":\"office\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:25] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:25] local.INFO: Calendar sync job dispatched {\"calendar_id\":504} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:25] local.NOTICE: Calendar sync end {\"retrieved_calendars\":31,\"processed_calendars\":3} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:25] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"calendar:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":62.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"28504eaf-846b-4473-b606-68d2725a7562\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:26] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"fcb3d942-0c58-49d5-960f-80a2b4916ce8\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:26] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"fcb3d942-0c58-49d5-960f-80a2b4916ce8\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:26] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"fcb3d942-0c58-49d5-960f-80a2b4916ce8\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:26] local.INFO: [Calendar] Processing sync {\"calendarId\":\"2676cb6d-f86c-427e-bf78-591e388e3c1e\",\"from\":null,\"to\":null,\"delta\":\"CJ_x49O3jpIDEJ_x49O3jpIDGAUgw67KlwMow67KlwM=\",\"last_sync\":\"2026-01-19 07:48:40\",\"dateMode\":\"daily\"} {\"correlation_id\":\"fcb3d942-0c58-49d5-960f-80a2b4916ce8\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:26] local.WARNING: [Pipedrive] Account not connected for user {\"userId\":\"e6538737-e7b4-455f-a37a-3e79b665a220\",\"account\":{\"Jiminny\\\\Models\\\\SocialAccount\":{\"id\":1116,\"sociable_id\":241,\"provider_user_id\":\"19555731\",\"expires\":1775683749,\"refresh_token_expires\":null,\"provider\":\"pipedrive\",\"state\":\"full-refresh\",\"auth_scope\":\"base,deals:full,activities:full,contacts:full,search:read\",\"retry_after\":null,\"created_at\":\"2023-09-08 09:44:29\",\"updated_at\":\"2026-04-08 22:58:34\"}}} {\"correlation_id\":\"fcb3d942-0c58-49d5-960f-80a2b4916ce8\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:26] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"pipedrive\",\"crm_owner\":241,\"team_id\":19} {\"correlation_id\":\"fcb3d942-0c58-49d5-960f-80a2b4916ce8\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:26] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"pipedrive\",\"team_id\":19} {\"correlation_id\":\"fcb3d942-0c58-49d5-960f-80a2b4916ce8\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:26] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"pipedrive\",\"team_id\":19} {\"correlation_id\":\"fcb3d942-0c58-49d5-960f-80a2b4916ce8\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:26] local.WARNING: [Calendar] CRM disconnected for user so events will not be matched {\"provider\":\"pipedrive\",\"user_id\":241,\"message\":\"Your Pipedrive account has become disconnected. Please login to Jiminny to reconnect.\"} {\"correlation_id\":\"fcb3d942-0c58-49d5-960f-80a2b4916ce8\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:26] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"fcb3d942-0c58-49d5-960f-80a2b4916ce8\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:26] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"fcb3d942-0c58-49d5-960f-80a2b4916ce8\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:26] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"fcb3d942-0c58-49d5-960f-80a2b4916ce8\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:27] local.INFO: [Google Calendar] Failed to watch channel for calendar {\"calendarId\":\"2676cb6d-f86c-427e-bf78-591e388e3c1e\",\"code\":400,\"reason\":\"{\n \\\"error\\\": {\n \\\"errors\\\": [\n {\n \\\"domain\\\": \\\"global\\\",\n \\\"reason\\\": \\\"push.webhookUrlNotHttps\\\",\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n ],\n \\\"code\\\": 400,\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n}\"} {\"correlation_id\":\"fcb3d942-0c58-49d5-960f-80a2b4916ce8\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:27] local.WARNING: [Calendar] Sync failed {\"calendarId\":\"2676cb6d-f86c-427e-bf78-591e388e3c1e\",\"code\":400,\"reason\":\"{\n \\\"error\\\": {\n \\\"errors\\\": [\n {\n \\\"domain\\\": \\\"global\\\",\n \\\"reason\\\": \\\"push.webhookUrlNotHttps\\\",\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n ],\n \\\"code\\\": 400,\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n}\"} {\"correlation_id\":\"fcb3d942-0c58-49d5-960f-80a2b4916ce8\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1421,\"provider\":\"office\"} {\"correlation_id\":\"e0caf59f-ef2d-4d7d-b8d2-548cc5aedb07\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1421,\"provider\":\"office\"} {\"correlation_id\":\"e0caf59f-ef2d-4d7d-b8d2-548cc5aedb07\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e0caf59f-ef2d-4d7d-b8d2-548cc5aedb07\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:27] local.INFO: [Calendar] Processing sync {\"calendarId\":\"9e8b1a2c-1a8f-42bd-b161-810fc0baf540\",\"from\":null,\"to\":null,\"delta\":\"R0usmcdvmMuZCBYV0hguCLlvcOB4kXlhlC7KgH1SnZwTrZ3faZv1fXPQqJhxe_L9AxWWlb-wASsjGiiWlhsBUg9MFb3ZdlAYerVV_ZirRPbsKWCxEXhybD90arJmok_M4ecGFUQ9_BIGu-c6RAnJy2TRKZ7gPTsJi_8TGceGAuqimlhm4G4mjDLvYVVwImjjU7M3xJvUzL47dLOGNTJCww.k1TST0VEYCgbFOkwa3ysYMi100FtVfkzfqlXLnV6gPg\",\"last_sync\":\"2026-05-11 06:13:36\",\"dateMode\":\"daily\"} {\"correlation_id\":\"e0caf59f-ef2d-4d7d-b8d2-548cc5aedb07\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e0caf59f-ef2d-4d7d-b8d2-548cc5aedb07\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:27] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"e0caf59f-ef2d-4d7d-b8d2-548cc5aedb07\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e0caf59f-ef2d-4d7d-b8d2-548cc5aedb07\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:27] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1499,\"provider\":\"hubspot\",\"refreshToken\":\"96f94c623a404e02ebdbf07f1b75707bb6cdbf848cbf45d418baf608c41a8d86\",\"state\":\"connected\"} {\"correlation_id\":\"e0caf59f-ef2d-4d7d-b8d2-548cc5aedb07\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:27] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"e0caf59f-ef2d-4d7d-b8d2-548cc5aedb07\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:27] local.INFO: [SocialAccountObserver] Access token was modified, encrypting {\"correlation_id\":\"e0caf59f-ef2d-4d7d-b8d2-548cc5aedb07\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:28] local.INFO: [SocialAccountService] Token refreshed {\"socialAccountId\":1499,\"provider\":\"hubspot\",\"state\":\"connected\"} {\"correlation_id\":\"e0caf59f-ef2d-4d7d-b8d2-548cc5aedb07\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:28] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":89,\"team_id\":2} {\"correlation_id\":\"e0caf59f-ef2d-4d7d-b8d2-548cc5aedb07\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:28:28] local.INFO: [MS Office Calendar] Skipping delta sync for daily mode {\"calendarId\":\"9e8b1a2c-1a8f-42bd-b161-810fc0baf540\"} {\"correlation_id\":\"e0caf59f-ef2d-4d7d-b8d2-548cc5aedb07\",\"trace_id\":\"e67f76da-5da7-4f90-8224-3a2dbc72d27b\"}\n[2026-05-11 11:29:05] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"ab4d1d36-5cda-4a0d-9bce-397e37640510\",\"trace_id\":\"5cafc2a4-1917-4a26-bcb7-7d09815a8113\"}\n[2026-05-11 11:29:05] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"ab4d1d36-5cda-4a0d-9bce-397e37640510\",\"trace_id\":\"5cafc2a4-1917-4a26-bcb7-7d09815a8113\"}\n[2026-05-11 11:29:05] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"ab4d1d36-5cda-4a0d-9bce-397e37640510\",\"trace_id\":\"5cafc2a4-1917-4a26-bcb7-7d09815a8113\"}\n[2026-05-11 11:29:07] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"398335bc-9558-4e78-a470-303347e5cb07\",\"trace_id\":\"228e4d51-9626-4a21-9219-341a10a72134\"}\n[2026-05-11 11:29:07] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"398335bc-9558-4e78-a470-303347e5cb07\",\"trace_id\":\"228e4d51-9626-4a21-9219-341a10a72134\"}\n[2026-05-11 11:29:09] local.NOTICE: Monitoring start {\"correlation_id\":\"ab8bbff9-92b2-4ea9-9144-7c73e59a2512\",\"trace_id\":\"d9383e1a-aa30-49f9-929e-ba549279f46c\"}\n[2026-05-11 11:29:09] local.NOTICE: Monitoring end {\"correlation_id\":\"ab8bbff9-92b2-4ea9-9144-7c73e59a2512\",\"trace_id\":\"d9383e1a-aa30-49f9-929e-ba549279f46c\"}\n[2026-05-11 11:29:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"71f7d896-3e71-4734-bf0e-bbf50c0b3d92\",\"trace_id\":\"ab6b38fc-861f-468b-8650-768b2764d057\"}\n[2026-05-11 11:29:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"71f7d896-3e71-4734-bf0e-bbf50c0b3d92\",\"trace_id\":\"ab6b38fc-861f-468b-8650-768b2764d057\"}\n[2026-05-11 11:29:13] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"83ee973b-76b5-4968-9c7e-fc24ea70371c\",\"trace_id\":\"23470df3-fb69-43c4-8c46-01d45d8e9156\"}\n[2026-05-11 11:29:13] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"83ee973b-76b5-4968-9c7e-fc24ea70371c\",\"trace_id\":\"23470df3-fb69-43c4-8c46-01d45d8e9156\"}\n[2026-05-11 11:29:13] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"83ee973b-76b5-4968-9c7e-fc24ea70371c\",\"trace_id\":\"23470df3-fb69-43c4-8c46-01d45d8e9156\"}\n[2026-05-11 11:29:13] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"83ee973b-76b5-4968-9c7e-fc24ea70371c\",\"trace_id\":\"23470df3-fb69-43c4-8c46-01d45d8e9156\"}\n[2026-05-11 11:30:06] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"3dfec64a-7673-425f-a93a-4dac1ba6e711\",\"trace_id\":\"76e0e1b0-8958-41e3-b48b-cde7f534b0e1\"}\n[2026-05-11 11:30:06] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"3dfec64a-7673-425f-a93a-4dac1ba6e711\",\"trace_id\":\"76e0e1b0-8958-41e3-b48b-cde7f534b0e1\"}\n[2026-05-11 11:30:06] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"3dfec64a-7673-425f-a93a-4dac1ba6e711\",\"trace_id\":\"76e0e1b0-8958-41e3-b48b-cde7f534b0e1\"}\n[2026-05-11 11:30:08] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"4d9e21c1-a3da-4bcc-a739-92731d054be7\",\"trace_id\":\"2b3b0026-4b4a-4209-87bf-f377593c3f05\"}\n[2026-05-11 11:30:08] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"4d9e21c1-a3da-4bcc-a739-92731d054be7\",\"trace_id\":\"2b3b0026-4b4a-4209-87bf-f377593c3f05\"}\n[2026-05-11 11:30:10] local.NOTICE: Monitoring start {\"correlation_id\":\"74a0e37f-fe37-4186-a3ea-aee5d038d66e\",\"trace_id\":\"fb3c6bdf-ae20-4895-94d5-a233a112ac45\"}\n[2026-05-11 11:30:10] local.NOTICE: Monitoring end {\"correlation_id\":\"74a0e37f-fe37-4186-a3ea-aee5d038d66e\",\"trace_id\":\"fb3c6bdf-ae20-4895-94d5-a233a112ac45\"}\n[2026-05-11 11:30:13] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"2c0f05cd-74ed-45d1-bd8a-08c28c62de8b\",\"trace_id\":\"bce86ae5-b821-4c5e-b241-7d94012b40d3\"}\n[2026-05-11 11:30:13] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"2c0f05cd-74ed-45d1-bd8a-08c28c62de8b\",\"trace_id\":\"bce86ae5-b821-4c5e-b241-7d94012b40d3\"}\n[2026-05-11 11:30:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"87a037b4-d5c3-4475-837b-6e1be374ddb6\",\"trace_id\":\"ae9d9811-c79a-458c-b4c4-e61103e37d4d\"}\n[2026-05-11 11:30:15] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"87a037b4-d5c3-4475-837b-6e1be374ddb6\",\"trace_id\":\"ae9d9811-c79a-458c-b4c4-e61103e37d4d\"}\n[2026-05-11 11:30:15] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"87a037b4-d5c3-4475-837b-6e1be374ddb6\",\"trace_id\":\"ae9d9811-c79a-458c-b4c4-e61103e37d4d\"}\n[2026-05-11 11:30:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"87a037b4-d5c3-4475-837b-6e1be374ddb6\",\"trace_id\":\"ae9d9811-c79a-458c-b4c4-e61103e37d4d\"}\n[2026-05-11 11:30:17] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"c962d8bd-b520-4477-8061-bca021082da4\",\"trace_id\":\"7fe69df2-ffbf-4a09-bbb8-4b25c7f6cb42\"}\n[2026-05-11 11:30:17] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 11:28:00, 2026-05-11 11:30:00] {\"correlation_id\":\"c962d8bd-b520-4477-8061-bca021082da4\",\"trace_id\":\"7fe69df2-ffbf-4a09-bbb8-4b25c7f6cb42\"}\n[2026-05-11 11:30:17] local.INFO: [conference:monitor:count] Push to Datadog jiminny.conference {\"activity_id\":432231,\"activity_status\":\"failed\",\"company\":\"jiminny\",\"provider\":\"google-meet\",\"timeframe\":\"(2026-05-11 11:28:00, 2026-05-11 11:30:00]\"} {\"correlation_id\":\"c962d8bd-b520-4477-8061-bca021082da4\",\"trace_id\":\"7fe69df2-ffbf-4a09-bbb8-4b25c7f6cb42\"}\n[2026-05-11 11:30:17] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"c962d8bd-b520-4477-8061-bca021082da4\",\"trace_id\":\"7fe69df2-ffbf-4a09-bbb8-4b25c7f6cb42\"}\n[2026-05-11 11:30:19] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"ddf867bf-61ec-4e6a-b8c3-d50c64f89aa9\",\"trace_id\":\"6ec5e944-6b80-4fdd-9ba4-e8f529dc4568\"}\n[2026-05-11 11:30:19] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"ddf867bf-61ec-4e6a-b8c3-d50c64f89aa9\",\"trace_id\":\"6ec5e944-6b80-4fdd-9ba4-e8f529dc4568\"}\n[2026-05-11 11:30:22] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"c9476012-6e8c-4b8a-909c-c3634b065ce2\",\"trace_id\":\"da25f065-14ea-4d45-a389-791cb1963997\"}\n[2026-05-11 11:30:22] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"c9476012-6e8c-4b8a-909c-c3634b065ce2\",\"trace_id\":\"da25f065-14ea-4d45-a389-791cb1963997\"}\n[2026-05-11 11:30:24] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"6b0a13fc-f608-4aa8-a537-b3cfa54f28d2\",\"trace_id\":\"5167771a-0f8a-4a68-bbd1-d4c6db4c5ebe\"}\n[2026-05-11 11:30:25] local.INFO: Running pre-meeting notification command {\"correlation_id\":\"6b0a13fc-f608-4aa8-a537-b3cfa54f28d2\",\"trace_id\":\"5167771a-0f8a-4a68-bbd1-d4c6db4c5ebe\"}\n[2026-05-11 11:30:25] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"6b0a13fc-f608-4aa8-a537-b3cfa54f28d2\",\"trace_id\":\"5167771a-0f8a-4a68-bbd1-d4c6db4c5ebe\"}\n[2026-05-11 11:30:28] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"4809e333-be69-44e0-ab39-c551c37b49f1\",\"trace_id\":\"d255198d-2929-45be-abae-52c5bb9db4bc\"}\n[2026-05-11 11:30:28] local.INFO: Running conference:monitor:start command for activities in (2026-05-11 11:20:00, 2026-05-11 11:25:00] {\"correlation_id\":\"4809e333-be69-44e0-ab39-c551c37b49f1\",\"trace_id\":\"d255198d-2929-45be-abae-52c5bb9db4bc\"}\n[2026-05-11 11:30:28] local.INFO: [conference:monitor:start] No activities found in (2026-05-11 11:20:00, 2026-05-11 11:25:00] {\"correlation_id\":\"4809e333-be69-44e0-ab39-c551c37b49f1\",\"trace_id\":\"d255198d-2929-45be-abae-52c5bb9db4bc\"}\n[2026-05-11 11:30:28] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"4809e333-be69-44e0-ab39-c551c37b49f1\",\"trace_id\":\"d255198d-2929-45be-abae-52c5bb9db4bc\"}\n[2026-05-11 11:30:35] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"572da9a9-932c-44ab-bbea-38b3ad498b62\",\"trace_id\":\"47ccc1e5-0df6-4a99-a4f9-e3384e909889\"}\n[2026-05-11 11:30:35] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesEnded {\"from\":\"11:25\",\"to\":\"11:30\"} {\"correlation_id\":\"572da9a9-932c-44ab-bbea-38b3ad498b62\",\"trace_id\":\"47ccc1e5-0df6-4a99-a4f9-e3384e909889\"}\n[2026-05-11 11:30:35] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesWithUnfinishedSession {\"from\":\"01:20\",\"to\":\"01:25\"} {\"correlation_id\":\"572da9a9-932c-44ab-bbea-38b3ad498b62\",\"trace_id\":\"47ccc1e5-0df6-4a99-a4f9-e3384e909889\"}\n[2026-05-11 11:30:35] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"572da9a9-932c-44ab-bbea-38b3ad498b62\",\"trace_id\":\"47ccc1e5-0df6-4a99-a4f9-e3384e909889\"}\n[2026-05-11 11:30:42] local.NOTICE: Repairing HubSpot tokens start {\"correlation_id\":\"ee757e15-f88c-410c-9dfd-7ca7e954f174\",\"trace_id\":\"e26657e9-b855-42cf-8ffa-b610a94172cd\"}\n[2026-05-11 11:30:42] local.INFO: Trying to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\"} {\"correlation_id\":\"ee757e15-f88c-410c-9dfd-7ca7e954f174\",\"trace_id\":\"e26657e9-b855-42cf-8ffa-b610a94172cd\"}\n[2026-05-11 11:30:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ee757e15-f88c-410c-9dfd-7ca7e954f174\",\"trace_id\":\"e26657e9-b855-42cf-8ffa-b610a94172cd\"}\n[2026-05-11 11:30:42] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":59,\"provider\":\"hubspot\",\"refreshToken\":\"97b78f6e2cc49965c00c2492b602b02708b1392551e6b3f113fbaa48992af90b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"ee757e15-f88c-410c-9dfd-7ca7e954f174\",\"trace_id\":\"e26657e9-b855-42cf-8ffa-b610a94172cd\"}\n[2026-05-11 11:30:42] local.ERROR: Failed to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"ee757e15-f88c-410c-9dfd-7ca7e954f174\",\"trace_id\":\"e26657e9-b855-42cf-8ffa-b610a94172cd\"}\n[2026-05-11 11:30:42] local.INFO: Trying to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\"} {\"correlation_id\":\"ee757e15-f88c-410c-9dfd-7ca7e954f174\",\"trace_id\":\"e26657e9-b855-42cf-8ffa-b610a94172cd\"}\n[2026-05-11 11:30:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ee757e15-f88c-410c-9dfd-7ca7e954f174\",\"trace_id\":\"e26657e9-b855-42cf-8ffa-b610a94172cd\"}\n[2026-05-11 11:30:42] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":306,\"provider\":\"hubspot\",\"refreshToken\":\"6fa6aa8cc641d131231acc3470f5c03cb3b07b2e580fb18f8acb3b1dbb72549b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"ee757e15-f88c-410c-9dfd-7ca7e954f174\",\"trace_id\":\"e26657e9-b855-42cf-8ffa-b610a94172cd\"}\n[2026-05-11 11:30:43] local.ERROR: Failed to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"ee757e15-f88c-410c-9dfd-7ca7e954f174\",\"trace_id\":\"e26657e9-b855-42cf-8ffa-b610a94172cd\"}\n[2026-05-11 11:30:43] local.INFO: Trying to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\"} {\"correlation_id\":\"ee757e15-f88c-410c-9dfd-7ca7e954f174\",\"trace_id\":\"e26657e9-b855-42cf-8ffa-b610a94172cd\"}\n[2026-05-11 11:30:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ee757e15-f88c-410c-9dfd-7ca7e954f174\",\"trace_id\":\"e26657e9-b855-42cf-8ffa-b610a94172cd\"}\n[2026-05-11 11:30:43] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1372,\"provider\":\"hubspot\",\"refreshToken\":\"9aa73948c761da29dce46c177cf9aee1fde483a44169ca38723f9f0597d7a8c4\",\"state\":\"full-refresh\"} {\"correlation_id\":\"ee757e15-f88c-410c-9dfd-7ca7e954f174\",\"trace_id\":\"e26657e9-b855-42cf-8ffa-b610a94172cd\"}\n[2026-05-11 11:30:43] local.ERROR: Failed to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"ee757e15-f88c-410c-9dfd-7ca7e954f174\",\"trace_id\":\"e26657e9-b855-42cf-8ffa-b610a94172cd\"}\n[2026-05-11 11:30:43] local.NOTICE: Repairing HubSpot tokens end {\"total\":3,\"fixed\":0,\"failed\":3} {\"correlation_id\":\"ee757e15-f88c-410c-9dfd-7ca7e954f174\",\"trace_id\":\"e26657e9-b855-42cf-8ffa-b610a94172cd\"}\n[2026-05-11 11:30:51] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"81fd74c8-2c4b-4d38-89f6-77ac8905c741\",\"trace_id\":\"de02a777-afa7-432e-8d00-6000cf4529a1\"}\n[2026-05-11 11:30:51] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"jiminny:transcription:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"7c918475-da47-4160-b989-8d55979401f4\",\"trace_id\":\"7bf6040a-aa3b-48cb-a569-8a3896ed9fb2\"}\n[2026-05-11 11:30:52] local.INFO: [HubSpot Journal Command] Starting polling service {\"correlation_id\":\"19a9f55f-344c-41fc-9a24-4809004a0dfe\",\"trace_id\":\"38755cbd-4512-4605-ad38-493563300576\"}\n[2026-05-11 11:30:52] local.INFO: [HubSpot Journal Polling] Service starting {\"memory_limit\":\"256M\",\"max_execution_time\":\"0\",\"initial_memory_mb\":60.0} {\"correlation_id\":\"19a9f55f-344c-41fc-9a24-4809004a0dfe\",\"trace_id\":\"38755cbd-4512-4605-ad38-493563300576\"}\n[2026-05-11 11:30:52] local.INFO: [HubSpot Journal Polling] Acquired polling lock {\"expires_at\":\"2026-05-11T11:32:52.138967Z\"} {\"correlation_id\":\"19a9f55f-344c-41fc-9a24-4809004a0dfe\",\"trace_id\":\"38755cbd-4512-4605-ad38-493563300576\"}\n[2026-05-11 11:30:52] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"jiminny:transcription:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"7c918475-da47-4160-b989-8d55979401f4\",\"trace_id\":\"7bf6040a-aa3b-48cb-a569-8a3896ed9fb2\"}\n[2026-05-11 11:30:52] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"81fd74c8-2c4b-4d38-89f6-77ac8905c741\",\"trace_id\":\"de02a777-afa7-432e-8d00-6000cf4529a1\"}\n[2026-05-11 11:30:52] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"19a9f55f-344c-41fc-9a24-4809004a0dfe\",\"trace_id\":\"38755cbd-4512-4605-ad38-493563300576\"}\n[2026-05-11 11:30:55] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:reset-governor\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"ae93d9cd-cae3-4bb6-af7f-b919fa377861\",\"trace_id\":\"e265cbc6-32d8-4351-a78d-644d0f37f7e5\"}\n[2026-05-11 11:30:55] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:reset-governor\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"ae93d9cd-cae3-4bb6-af7f-b919fa377861\",\"trace_id\":\"e265cbc6-32d8-4351-a78d-644d0f37f7e5\"}\n[2026-05-11 11:30:57] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"19a9f55f-344c-41fc-9a24-4809004a0dfe\",\"trace_id\":\"38755cbd-4512-4605-ad38-493563300576\"}\n[2026-05-11 11:31:00] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"55c98953-bdea-4594-a81d-05ec9158a6d1\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:00] local.INFO: Dispatching activity sync job {\"import_id\":812707,\"provider\":\"twilio-flex\",\"team\":\"jiminny\"} {\"correlation_id\":\"55c98953-bdea-4594-a81d-05ec9158a6d1\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:00] local.INFO: Dispatching activity sync job {\"import_id\":812708,\"provider\":\"xant\",\"team\":\"jiminny\"} {\"correlation_id\":\"55c98953-bdea-4594-a81d-05ec9158a6d1\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:00] local.INFO: Dispatching activity sync job {\"import_id\":812709,\"provider\":\"apollo\",\"team\":\"jiminny\"} {\"correlation_id\":\"55c98953-bdea-4594-a81d-05ec9158a6d1\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:00] local.INFO: Dispatching activity sync job {\"import_id\":812710,\"provider\":\"groove\",\"team\":\"jiminny\"} {\"correlation_id\":\"55c98953-bdea-4594-a81d-05ec9158a6d1\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:00] local.INFO: Dispatching activity sync job {\"import_id\":812711,\"provider\":\"twilio-video\",\"team\":\"jiminny\"} {\"correlation_id\":\"55c98953-bdea-4594-a81d-05ec9158a6d1\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:00] local.INFO: Dispatching activity sync job {\"import_id\":812712,\"provider\":\"hubspot\",\"team\":\"hubspot\"} {\"correlation_id\":\"55c98953-bdea-4594-a81d-05ec9158a6d1\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:00] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"55c98953-bdea-4594-a81d-05ec9158a6d1\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:01] local.WARNING: [Salesforce] Account not connected for user {\"userId\":\"cdf8b554-d951-4758-bc2b-c1b85d1cd0b9\",\"account\":null} {\"correlation_id\":\"cc016559-47de-4a5e-a8a2-5010ad7caf36\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:01] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"salesforce\",\"crm_owner\":3,\"team_id\":1} {\"correlation_id\":\"cc016559-47de-4a5e-a8a2-5010ad7caf36\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:01] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"salesforce\",\"team_id\":1} {\"correlation_id\":\"cc016559-47de-4a5e-a8a2-5010ad7caf36\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:01] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"salesforce\",\"team_id\":1} {\"correlation_id\":\"cc016559-47de-4a5e-a8a2-5010ad7caf36\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:01] local.ALERT: [SyncActivity] Failed {\"import_id\":812707,\"provider\":\"twilio-flex\",\"provider_id\":317,\"team\":\"jiminny\",\"team_id\":1,\"reason\":\"Social account for Salesforce cannot be found. Please login to Jiminny to connect.\",\"file\":\"/home/jiminny/app/Services/Crm/BaseService.php\",\"line\":646} {\"correlation_id\":\"cc016559-47de-4a5e-a8a2-5010ad7caf36\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:01] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"04b1aa54-2281-48f0-989b-ec987b644c73\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:01] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"04b1aa54-2281-48f0-989b-ec987b644c73\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:01] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"04b1aa54-2281-48f0-989b-ec987b644c73\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:02] local.ALERT: [SyncActivity] Failed {\"import_id\":812708,\"provider\":\"xant\",\"provider_id\":161,\"team\":\"jiminny\",\"team_id\":1,\"reason\":\"Activity Provider account not connected.\",\"file\":\"/home/jiminny/app/Services/Activity/ActivityProviderService.php\",\"line\":174} {\"correlation_id\":\"04b1aa54-2281-48f0-989b-ec987b644c73\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"bb4ced39-a1b6-4bdd-a927-4a4b5961bbcb\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"bb4ced39-a1b6-4bdd-a927-4a4b5961bbcb\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"bb4ced39-a1b6-4bdd-a927-4a4b5961bbcb\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:02] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:fail-stalled\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"081ec933-31e4-4201-b09f-4787fc648543\",\"trace_id\":\"c2c221a1-2399-42d1-97e5-b87b76c487bf\"}\n[2026-05-11 11:31:02] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:fail-stalled\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"081ec933-31e4-4201-b09f-4787fc648543\",\"trace_id\":\"c2c221a1-2399-42d1-97e5-b87b76c487bf\"}\n[2026-05-11 11:31:03] local.ALERT: [SyncActivity] Failed {\"import_id\":812709,\"provider\":\"apollo\",\"provider_id\":441,\"team\":\"jiminny\",\"team_id\":1,\"reason\":\"Activity Provider account not connected.\",\"file\":\"/home/jiminny/app/Services/Activity/ActivityProviderService.php\",\"line\":174} {\"correlation_id\":\"bb4ced39-a1b6-4bdd-a927-4a4b5961bbcb\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:03] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"958b63ab-aafc-42ef-afc4-2e3ed37426b1\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:03] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"958b63ab-aafc-42ef-afc4-2e3ed37426b1\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:03] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"958b63ab-aafc-42ef-afc4-2e3ed37426b1\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:03] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"19a9f55f-344c-41fc-9a24-4809004a0dfe\",\"trace_id\":\"38755cbd-4512-4605-ad38-493563300576\"}\n[2026-05-11 11:31:03] local.ALERT: [SyncActivity] Failed {\"import_id\":812710,\"provider\":\"groove\",\"provider_id\":228,\"team\":\"jiminny\",\"team_id\":1,\"reason\":\"Activity Provider account not connected.\",\"file\":\"/home/jiminny/app/Services/Activity/ActivityProviderService.php\",\"line\":174} {\"correlation_id\":\"958b63ab-aafc-42ef-afc4-2e3ed37426b1\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:03] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"3eb4e8b0-bf7d-43ee-ab5e-defcc50b92a2\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:03] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"3eb4e8b0-bf7d-43ee-ab5e-defcc50b92a2\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:03] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"3eb4e8b0-bf7d-43ee-ab5e-defcc50b92a2\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:04] local.ALERT: [SyncActivity] Failed {\"import_id\":812711,\"provider\":\"twilio-video\",\"provider_id\":243,\"team\":\"jiminny\",\"team_id\":1,\"reason\":\"Activity Provider account not connected.\",\"file\":\"/home/jiminny/app/Services/Activity/ActivityProviderService.php\",\"line\":174} {\"correlation_id\":\"3eb4e8b0-bf7d-43ee-ab5e-defcc50b92a2\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:04] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"fe7d208a-48e9-40b3-94c1-c03d605e717f\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:04] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"fe7d208a-48e9-40b3-94c1-c03d605e717f\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:04] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"fe7d208a-48e9-40b3-94c1-c03d605e717f\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:04] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":89,\"team_id\":2} {\"correlation_id\":\"fe7d208a-48e9-40b3-94c1-c03d605e717f\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:04] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":408,\"provider\":\"hubspot\"} {\"correlation_id\":\"fe7d208a-48e9-40b3-94c1-c03d605e717f\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:04] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":408,\"provider\":\"hubspot\"} {\"correlation_id\":\"fe7d208a-48e9-40b3-94c1-c03d605e717f\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:04] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"fe7d208a-48e9-40b3-94c1-c03d605e717f\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:04] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":408,\"provider\":\"hubspot\",\"refreshToken\":\"de4e47eb985578f4218833e763e31059e88b562e87e10749b3389be2328f0aa7\",\"state\":\"connected\"} {\"correlation_id\":\"fe7d208a-48e9-40b3-94c1-c03d605e717f\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:04] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"fe7d208a-48e9-40b3-94c1-c03d605e717f\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:04] local.INFO: [SocialAccountObserver] Access token was modified, encrypting {\"correlation_id\":\"fe7d208a-48e9-40b3-94c1-c03d605e717f\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:04] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"fc765491-1a8c-40e0-b742-a6508a4e90e0\",\"trace_id\":\"f182b9ea-f9bf-43d1-b628-81ed882e1df8\"}\n[2026-05-11 11:31:04] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"fc765491-1a8c-40e0-b742-a6508a4e90e0\",\"trace_id\":\"f182b9ea-f9bf-43d1-b628-81ed882e1df8\"}\n[2026-05-11 11:31:04] local.INFO: [SocialAccountService] Token refreshed {\"socialAccountId\":408,\"provider\":\"hubspot\",\"state\":\"connected\"} {\"correlation_id\":\"fe7d208a-48e9-40b3-94c1-c03d605e717f\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:04] local.INFO: [SyncActivity] Start {\"import_id\":812712,\"provider\":\"hubspot\",\"provider_id\":31,\"team\":\"hubspot\",\"team_id\":2} {\"correlation_id\":\"fe7d208a-48e9-40b3-94c1-c03d605e717f\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:05] local.INFO: [HubSpot] Search calls for period {\"from\":\"2026-05-11 11:14:00\",\"to\":\"2026-05-11 11:30:00\"} {\"correlation_id\":\"fe7d208a-48e9-40b3-94c1-c03d605e717f\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:05] local.INFO: [SyncActivity] End {\"import_id\":812712,\"provider\":\"hubspot\",\"provider_id\":31,\"team\":\"hubspot\",\"team_id\":2} {\"correlation_id\":\"fe7d208a-48e9-40b3-94c1-c03d605e717f\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:05] local.INFO: [SyncActivity] Memory usage {\"import_id\":812712,\"provider\":\"hubspot\",\"provider_id\":31,\"team\":\"hubspot\",\"team_id\":2,\"memory_usage\":25934592,\"memory_real_usage\":65011712,\"pid\":74086} {\"correlation_id\":\"fe7d208a-48e9-40b3-94c1-c03d605e717f\",\"trace_id\":\"c91d47ea-0e6a-4240-9126-8869bfe44c0d\"}\n[2026-05-11 11:31:07] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"nudges:send\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"76b7f7ab-a127-4c84-926f-58ef6363dd27\",\"trace_id\":\"11f1ef21-fcdb-46af-b034-b906890c8b78\"}\n[2026-05-11 11:31:07] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"nudges:send\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"76b7f7ab-a127-4c84-926f-58ef6363dd27\",\"trace_id\":\"11f1ef21-fcdb-46af-b034-b906890c8b78\"}\n[2026-05-11 11:31:09] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"jiminny:playlists:normalize-sort\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"31b81e1d-353d-4ae9-8cea-f1cb64e1afac\",\"trace_id\":\"874a5b86-6c77-4f05-8358-25d91a76e358\"}\n[2026-05-11 11:31:09] local.INFO: [Jiminny\\Component\\Playlist\\Command\\NormalizeSortCommand::handle] starting. {\"playlists\":[]} {\"correlation_id\":\"31b81e1d-353d-4ae9-8cea-f1cb64e1afac\",\"trace_id\":\"874a5b86-6c77-4f05-8358-25d91a76e358\"}\n[2026-05-11 11:31:09] local.INFO: [Jiminny\\Component\\Playlist\\Command\\NormalizeSortCommand::handle] finished. {\"normalizedPlaylists\":[],\"deletedPlaylists\":[]} {\"correlation_id\":\"31b81e1d-353d-4ae9-8cea-f1cb64e1afac\",\"trace_id\":\"874a5b86-6c77-4f05-8358-25d91a76e358\"}\n[2026-05-11 11:31:09] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"jiminny:playlists:normalize-sort\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"31b81e1d-353d-4ae9-8cea-f1cb64e1afac\",\"trace_id\":\"874a5b86-6c77-4f05-8358-25d91a76e358\"}\n[2026-05-11 11:31:18] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"19a9f55f-344c-41fc-9a24-4809004a0dfe\",\"trace_id\":\"38755cbd-4512-4605-ad38-493563300576\"}\n[2026-05-11 11:31:48] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"19a9f55f-344c-41fc-9a24-4809004a0dfe\",\"trace_id\":\"38755cbd-4512-4605-ad38-493563300576\"}\n[2026-05-11 11:31:48] local.WARNING: [HubSpot Journal Polling] Maximum empty results reached, stopping {\"empty_results\":5,\"max_empty_results\":5} {\"correlation_id\":\"19a9f55f-344c-41fc-9a24-4809004a0dfe\",\"trace_id\":\"38755cbd-4512-4605-ad38-493563300576\"}\n[2026-05-11 11:31:48] local.WARNING: [HubSpot Journal Polling] Maximum empty results reached, stopping {\"empty_results\":5,\"max_empty_results\":5} {\"correlation_id\":\"19a9f55f-344c-41fc-9a24-4809004a0dfe\",\"trace_id\":\"38755cbd-4512-4605-ad38-493563300576\"}\n[2026-05-11 11:31:48] local.INFO: [HubSpot Journal Polling] Service ending {\"runtime_seconds\":56,\"total_cycles\":5,\"files_downloaded\":0,\"empty_files\":0,\"other_portal_skipped\":0,\"total_events\":0,\"events_per_file\":0,\"avg_api_ms\":274.6,\"avg_download_ms\":0.0,\"avg_transform_ms\":0.0,\"avg_process_ms\":0.0,\"peak_memory_mb\":99.73} {\"correlation_id\":\"19a9f55f-344c-41fc-9a24-4809004a0dfe\",\"trace_id\":\"38755cbd-4512-4605-ad38-493563300576\"}\n[2026-05-11 11:31:48] local.INFO: [HubSpot Journal Polling] Saved offset to database on cleanup {\"offset\":\"019e15a9-9ea0-7da7-87bc-82592e3ccf0d\"} {\"correlation_id\":\"19a9f55f-344c-41fc-9a24-4809004a0dfe\",\"trace_id\":\"38755cbd-4512-4605-ad38-493563300576\"}\n[2026-05-11 11:31:48] local.INFO: [HubSpot Journal Polling] Released polling lock {\"correlation_id\":\"19a9f55f-344c-41fc-9a24-4809004a0dfe\",\"trace_id\":\"38755cbd-4512-4605-ad38-493563300576\"}\n[2026-05-11 11:32:20] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"833f4f8b-8127-4454-b373-4b8212e284de\",\"trace_id\":\"144f4d20-e8e2-4ccc-b28b-8a76e30a3cd0\"}\n[2026-05-11 11:32:20] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"833f4f8b-8127-4454-b373-4b8212e284de\",\"trace_id\":\"144f4d20-e8e2-4ccc-b28b-8a76e30a3cd0\"}\n[2026-05-11 11:32:20] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"833f4f8b-8127-4454-b373-4b8212e284de\",\"trace_id\":\"144f4d20-e8e2-4ccc-b28b-8a76e30a3cd0\"}\n[2026-05-11 11:32:25] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"e2b69631-4e5e-49cf-aa9d-b98c4537202d\",\"trace_id\":\"b11af75c-ee3e-4c7f-98a5-129a6bd30853\"}\n[2026-05-11 11:32:25] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"e2b69631-4e5e-49cf-aa9d-b98c4537202d\",\"trace_id\":\"b11af75c-ee3e-4c7f-98a5-129a6bd30853\"}\n[2026-05-11 11:32:28] local.NOTICE: Monitoring start {\"correlation_id\":\"4a20a6c2-381f-400b-8e3e-b299d251cf2a\",\"trace_id\":\"b9c4ed2d-d650-465c-af65-add0679d2d3a\"}\n[2026-05-11 11:32:28] local.NOTICE: Monitoring end {\"correlation_id\":\"4a20a6c2-381f-400b-8e3e-b299d251cf2a\",\"trace_id\":\"b9c4ed2d-d650-465c-af65-add0679d2d3a\"}\n[2026-05-11 11:32:33] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"f73dd268-ee34-4bc6-95d7-bcce0b5765ab\",\"trace_id\":\"8cc81570-d909-4ac6-9727-3e7861260950\"}\n[2026-05-11 11:32:34] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"f73dd268-ee34-4bc6-95d7-bcce0b5765ab\",\"trace_id\":\"8cc81570-d909-4ac6-9727-3e7861260950\"}\n[2026-05-11 11:32:38] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"9d618ed1-a6ef-478d-98cd-db5c37094ec3\",\"trace_id\":\"cc9f9c1a-7863-4117-a9de-0ebe1442b605\"}\n[2026-05-11 11:32:38] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"9d618ed1-a6ef-478d-98cd-db5c37094ec3\",\"trace_id\":\"cc9f9c1a-7863-4117-a9de-0ebe1442b605\"}\n[2026-05-11 11:32:38] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"9d618ed1-a6ef-478d-98cd-db5c37094ec3\",\"trace_id\":\"cc9f9c1a-7863-4117-a9de-0ebe1442b605\"}\n[2026-05-11 11:32:38] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"9d618ed1-a6ef-478d-98cd-db5c37094ec3\",\"trace_id\":\"cc9f9c1a-7863-4117-a9de-0ebe1442b605\"}\n[2026-05-11 11:32:40] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"d3d14cd7-283a-4134-89b5-ef93171ed27d\",\"trace_id\":\"358aed33-3416-4a08-bb65-fc9837710d80\"}\n[2026-05-11 11:32:40] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 11:30:00, 2026-05-11 11:32:00] {\"correlation_id\":\"d3d14cd7-283a-4134-89b5-ef93171ed27d\",\"trace_id\":\"358aed33-3416-4a08-bb65-fc9837710d80\"}\n[2026-05-11 11:32:40] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 11:30:00, 2026-05-11 11:32:00] {\"correlation_id\":\"d3d14cd7-283a-4134-89b5-ef93171ed27d\",\"trace_id\":\"358aed33-3416-4a08-bb65-fc9837710d80\"}\n[2026-05-11 11:32:40] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"d3d14cd7-283a-4134-89b5-ef93171ed27d\",\"trace_id\":\"358aed33-3416-4a08-bb65-fc9837710d80\"}\n[2026-05-11 11:32:43] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"9b993ee8-2d09-4d30-8202-30bdccb8e131\",\"trace_id\":\"894c6598-be21-4753-8074-35885ec0b344\"}\n[2026-05-11 11:32:43] local.INFO: [EmailSchedule] STARTING batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"9b993ee8-2d09-4d30-8202-30bdccb8e131\",\"trace_id\":\"894c6598-be21-4753-8074-35885ec0b344\"}\n[2026-05-11 11:32:43] local.INFO: [EmailSchedule] FINISHED batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"9b993ee8-2d09-4d30-8202-30bdccb8e131\",\"trace_id\":\"894c6598-be21-4753-8074-35885ec0b344\"}\n[2026-05-11 11:32:43] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"9b993ee8-2d09-4d30-8202-30bdccb8e131\",\"trace_id\":\"894c6598-be21-4753-8074-35885ec0b344\"}\n[2026-05-11 11:32:45] local.INFO: [Jiminny\\Jobs\\Mailbox\\CreateBatches] processed 2 inboxes and created 0 batches {\"userId\":null,\"batchSize\":30,\"maxBatches\":1000} {\"correlation_id\":\"eccafadc-d0ff-4197-8a61-fdffedebe8a0\",\"trace_id\":\"894c6598-be21-4753-8074-35885ec0b344\"}\n[2026-05-11 11:33:09] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"c5bc7f30-e3fb-4263-8dee-2b9d8bb2b0a5\",\"trace_id\":\"e6eb4572-8cee-4ef8-9f3b-c5c94e01ffd5\"}\n[2026-05-11 11:33:10] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"c5bc7f30-e3fb-4263-8dee-2b9d8bb2b0a5\",\"trace_id\":\"e6eb4572-8cee-4ef8-9f3b-c5c94e01ffd5\"}\n[2026-05-11 11:33:10] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"c5bc7f30-e3fb-4263-8dee-2b9d8bb2b0a5\",\"trace_id\":\"e6eb4572-8cee-4ef8-9f3b-c5c94e01ffd5\"}\n[2026-05-11 11:33:13] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"15067ad9-0ac9-4899-964c-162f02e7f410\",\"trace_id\":\"2962fdf3-0b0f-4379-8f07-ff1457245422\"}\n[2026-05-11 11:33:13] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"15067ad9-0ac9-4899-964c-162f02e7f410\",\"trace_id\":\"2962fdf3-0b0f-4379-8f07-ff1457245422\"}\n[2026-05-11 11:33:15] local.NOTICE: Monitoring start {\"correlation_id\":\"091dbefd-e9da-49b4-834c-37e0005e080b\",\"trace_id\":\"94cbb97f-4b83-494f-8403-0f68bb5e9529\"}\n[2026-05-11 11:33:15] local.NOTICE: Monitoring end {\"correlation_id\":\"091dbefd-e9da-49b4-834c-37e0005e080b\",\"trace_id\":\"94cbb97f-4b83-494f-8403-0f68bb5e9529\"}\n[2026-05-11 11:33:17] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"cea4337c-5e77-4e26-a35f-e19700c6541a\",\"trace_id\":\"4aa67dd9-e193-4ff7-9cd2-a4f3afdd81a6\"}\n[2026-05-11 11:33:17] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"cea4337c-5e77-4e26-a35f-e19700c6541a\",\"trace_id\":\"4aa67dd9-e193-4ff7-9cd2-a4f3afdd81a6\"}\n[2026-05-11 11:33:19] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"4eff6429-116b-4507-b74c-abccfcf32241\",\"trace_id\":\"11b1ac9e-2397-4eef-9020-405ab0a96d26\"}\n[2026-05-11 11:33:19] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"4eff6429-116b-4507-b74c-abccfcf32241\",\"trace_id\":\"11b1ac9e-2397-4eef-9020-405ab0a96d26\"}\n[2026-05-11 11:33:19] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"4eff6429-116b-4507-b74c-abccfcf32241\",\"trace_id\":\"11b1ac9e-2397-4eef-9020-405ab0a96d26\"}\n[2026-05-11 11:33:19] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"4eff6429-116b-4507-b74c-abccfcf32241\",\"trace_id\":\"11b1ac9e-2397-4eef-9020-405ab0a96d26\"}\n[2026-05-11 11:33:21] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"dd1df744-9be2-4b6b-958a-d7837267bae7\",\"trace_id\":\"3bdd6871-dd44-421f-be94-913ccdd95198\"}\n[2026-05-11 11:33:21] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"dd1df744-9be2-4b6b-958a-d7837267bae7\",\"trace_id\":\"3bdd6871-dd44-421f-be94-913ccdd95198\"}\n[2026-05-11 11:34:10] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"f56a188a-615f-4573-aa99-4cdc382a41ec\",\"trace_id\":\"10d5dd3e-2384-49f2-817d-debefd5d63e7\"}\n[2026-05-11 11:34:10] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"f56a188a-615f-4573-aa99-4cdc382a41ec\",\"trace_id\":\"10d5dd3e-2384-49f2-817d-debefd5d63e7\"}\n[2026-05-11 11:34:10] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"f56a188a-615f-4573-aa99-4cdc382a41ec\",\"trace_id\":\"10d5dd3e-2384-49f2-817d-debefd5d63e7\"}\n[2026-05-11 11:34:13] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"8dc3021b-34ee-4c1d-aa2d-7eae23b7416c\",\"trace_id\":\"054c38ee-b1a6-4e5a-b26d-b78fdc977580\"}\n[2026-05-11 11:34:13] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"8dc3021b-34ee-4c1d-aa2d-7eae23b7416c\",\"trace_id\":\"054c38ee-b1a6-4e5a-b26d-b78fdc977580\"}\n[2026-05-11 11:34:15] local.NOTICE: Monitoring start {\"correlation_id\":\"fbb85f01-d3e9-470c-b13b-335347bec433\",\"trace_id\":\"92f550b4-50a5-44ae-bbc0-92e286d2f393\"}\n[2026-05-11 11:34:15] local.NOTICE: Monitoring end {\"correlation_id\":\"fbb85f01-d3e9-470c-b13b-335347bec433\",\"trace_id\":\"92f550b4-50a5-44ae-bbc0-92e286d2f393\"}\n[2026-05-11 11:34:17] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"36f69f07-dca5-43c4-9a0b-f63459c5911f\",\"trace_id\":\"ea3668fe-a7a5-4871-ae75-560ac8af134a\"}\n[2026-05-11 11:34:17] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"36f69f07-dca5-43c4-9a0b-f63459c5911f\",\"trace_id\":\"ea3668fe-a7a5-4871-ae75-560ac8af134a\"}\n[2026-05-11 11:34:19] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"99016640-1f4b-4651-af58-c13927850c9c\",\"trace_id\":\"b3ac58e0-76ea-4694-b2c1-4d0d738621aa\"}\n[2026-05-11 11:34:19] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"99016640-1f4b-4651-af58-c13927850c9c\",\"trace_id\":\"b3ac58e0-76ea-4694-b2c1-4d0d738621aa\"}\n[2026-05-11 11:34:19] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"99016640-1f4b-4651-af58-c13927850c9c\",\"trace_id\":\"b3ac58e0-76ea-4694-b2c1-4d0d738621aa\"}\n[2026-05-11 11:34:19] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"99016640-1f4b-4651-af58-c13927850c9c\",\"trace_id\":\"b3ac58e0-76ea-4694-b2c1-4d0d738621aa\"}\n[2026-05-11 11:34:21] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"4ec7157d-7b72-4a5c-a471-d4405ef1a6d6\",\"trace_id\":\"3dfd961c-9916-4ba2-b1ec-829f497c99dc\"}\n[2026-05-11 11:34:21] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 11:32:00, 2026-05-11 11:34:00] {\"correlation_id\":\"4ec7157d-7b72-4a5c-a471-d4405ef1a6d6\",\"trace_id\":\"3dfd961c-9916-4ba2-b1ec-829f497c99dc\"}\n[2026-05-11 11:34:21] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 11:32:00, 2026-05-11 11:34:00] {\"correlation_id\":\"4ec7157d-7b72-4a5c-a471-d4405ef1a6d6\",\"trace_id\":\"3dfd961c-9916-4ba2-b1ec-829f497c99dc\"}\n[2026-05-11 11:34:21] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"4ec7157d-7b72-4a5c-a471-d4405ef1a6d6\",\"trace_id\":\"3dfd961c-9916-4ba2-b1ec-829f497c99dc\"}\n[2026-05-11 11:35:08] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"3e49ecc8-1786-45e0-9b12-4b2b72351af7\",\"trace_id\":\"8cd3a4be-4f04-4dc3-afda-fafbffed47fe\"}\n[2026-05-11 11:35:08] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"3e49ecc8-1786-45e0-9b12-4b2b72351af7\",\"trace_id\":\"8cd3a4be-4f04-4dc3-afda-fafbffed47fe\"}\n[2026-05-11 11:35:08] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"3e49ecc8-1786-45e0-9b12-4b2b72351af7\",\"trace_id\":\"8cd3a4be-4f04-4dc3-afda-fafbffed47fe\"}\n[2026-05-11 11:35:13] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"154e23cd-63ba-458d-ab76-731b4b41a300\",\"trace_id\":\"b69059d0-74c3-4e9c-a6f2-6e81597171fe\"}\n[2026-05-11 11:35:13] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"154e23cd-63ba-458d-ab76-731b4b41a300\",\"trace_id\":\"b69059d0-74c3-4e9c-a6f2-6e81597171fe\"}\n[2026-05-11 11:35:17] local.NOTICE: Monitoring start {\"correlation_id\":\"806af418-1f84-43ab-889a-e6d4718331ad\",\"trace_id\":\"523e39f9-8535-44c7-b476-2d2d901ef261\"}\n[2026-05-11 11:35:17] local.NOTICE: Monitoring end {\"correlation_id\":\"806af418-1f84-43ab-889a-e6d4718331ad\",\"trace_id\":\"523e39f9-8535-44c7-b476-2d2d901ef261\"}\n[2026-05-11 11:35:21] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"dd7516d6-890e-49f1-8b1e-ebdcac563a95\",\"trace_id\":\"5e3bc94f-e5b3-41e6-a41a-7430e9fac1ff\"}\n[2026-05-11 11:35:21] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"dd7516d6-890e-49f1-8b1e-ebdcac563a95\",\"trace_id\":\"5e3bc94f-e5b3-41e6-a41a-7430e9fac1ff\"}\n[2026-05-11 11:35:25] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"81f9972f-f529-4ccd-b06e-3430d756eb83\",\"trace_id\":\"27d99d0b-f2f7-4b81-a804-3bc9a5a30d8a\"}\n[2026-05-11 11:35:25] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"81f9972f-f529-4ccd-b06e-3430d756eb83\",\"trace_id\":\"27d99d0b-f2f7-4b81-a804-3bc9a5a30d8a\"}\n[2026-05-11 11:35:25] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"81f9972f-f529-4ccd-b06e-3430d756eb83\",\"trace_id\":\"27d99d0b-f2f7-4b81-a804-3bc9a5a30d8a\"}\n[2026-05-11 11:35:25] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"81f9972f-f529-4ccd-b06e-3430d756eb83\",\"trace_id\":\"27d99d0b-f2f7-4b81-a804-3bc9a5a30d8a\"}\n[2026-05-11 11:35:32] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"aec05013-dc68-4fec-a9db-dc408d027301\",\"trace_id\":\"bb1dbfc4-61f1-4f3c-8002-5b63531bcb70\"}\n[2026-05-11 11:35:33] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"aec05013-dc68-4fec-a9db-dc408d027301\",\"trace_id\":\"bb1dbfc4-61f1-4f3c-8002-5b63531bcb70\"}\n[2026-05-11 11:35:36] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a3cf66e8-9c66-49a1-b8ab-f612b21ea566\",\"trace_id\":\"13710306-1983-4e67-85cc-01ee00846871\"}\n[2026-05-11 11:35:36] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a3cf66e8-9c66-49a1-b8ab-f612b21ea566\",\"trace_id\":\"13710306-1983-4e67-85cc-01ee00846871\"}\n[2026-05-11 11:35:40] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"78d0f0b4-6df5-440f-aef5-503af540bd8b\",\"trace_id\":\"29dc33ab-36f4-428c-916d-15c687b7a5ab\"}\n[2026-05-11 11:35:40] local.INFO: Running pre-meeting notification command {\"correlation_id\":\"78d0f0b4-6df5-440f-aef5-503af540bd8b\",\"trace_id\":\"29dc33ab-36f4-428c-916d-15c687b7a5ab\"}\n[2026-05-11 11:35:40] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"78d0f0b4-6df5-440f-aef5-503af540bd8b\",\"trace_id\":\"29dc33ab-36f4-428c-916d-15c687b7a5ab\"}\n[2026-05-11 11:35:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"cf501225-1da6-4535-82d4-93fb6a3203d9\",\"trace_id\":\"d9c8b814-53ac-4f4a-8970-b6dc8f05cd6f\"}\n[2026-05-11 11:35:42] local.INFO: Running conference:monitor:start command for activities in (2026-05-11 11:25:00, 2026-05-11 11:30:00] {\"correlation_id\":\"cf501225-1da6-4535-82d4-93fb6a3203d9\",\"trace_id\":\"d9c8b814-53ac-4f4a-8970-b6dc8f05cd6f\"}\n[2026-05-11 11:35:42] local.INFO: [conference:monitor:start] start ok {\"activity_id\":432231} {\"correlation_id\":\"cf501225-1da6-4535-82d4-93fb6a3203d9\",\"trace_id\":\"d9c8b814-53ac-4f4a-8970-b6dc8f05cd6f\"}\n[2026-05-11 11:35:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"cf501225-1da6-4535-82d4-93fb6a3203d9\",\"trace_id\":\"d9c8b814-53ac-4f4a-8970-b6dc8f05cd6f\"}\n[2026-05-11 11:35:45] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"9268b305-57d7-4cdc-9676-5643e26095d9\",\"trace_id\":\"e3c95e4d-8d20-47f2-a27d-21e3945c24ed\"}\n[2026-05-11 11:35:45] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesEnded {\"from\":\"11:30\",\"to\":\"11:35\"} {\"correlation_id\":\"9268b305-57d7-4cdc-9676-5643e26095d9\",\"trace_id\":\"e3c95e4d-8d20-47f2-a27d-21e3945c24ed\"}\n[2026-05-11 11:35:45] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesWithUnfinishedSession {\"from\":\"01:25\",\"to\":\"01:30\"} {\"correlation_id\":\"9268b305-57d7-4cdc-9676-5643e26095d9\",\"trace_id\":\"e3c95e4d-8d20-47f2-a27d-21e3945c24ed\"}\n[2026-05-11 11:35:45] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"9268b305-57d7-4cdc-9676-5643e26095d9\",\"trace_id\":\"e3c95e4d-8d20-47f2-a27d-21e3945c24ed\"}\n[2026-05-11 11:35:48] local.NOTICE: Repairing HubSpot tokens start {\"correlation_id\":\"b8292706-1dcd-4072-b788-b5c374fd4c9d\",\"trace_id\":\"70fd23fd-05e6-4af7-a3f6-2add924c585d\"}\n[2026-05-11 11:35:48] local.INFO: Trying to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\"} {\"correlation_id\":\"b8292706-1dcd-4072-b788-b5c374fd4c9d\",\"trace_id\":\"70fd23fd-05e6-4af7-a3f6-2add924c585d\"}\n[2026-05-11 11:35:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b8292706-1dcd-4072-b788-b5c374fd4c9d\",\"trace_id\":\"70fd23fd-05e6-4af7-a3f6-2add924c585d\"}\n[2026-05-11 11:35:48] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":59,\"provider\":\"hubspot\",\"refreshToken\":\"97b78f6e2cc49965c00c2492b602b02708b1392551e6b3f113fbaa48992af90b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"b8292706-1dcd-4072-b788-b5c374fd4c9d\",\"trace_id\":\"70fd23fd-05e6-4af7-a3f6-2add924c585d\"}\n[2026-05-11 11:35:48] local.ERROR: Failed to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"b8292706-1dcd-4072-b788-b5c374fd4c9d\",\"trace_id\":\"70fd23fd-05e6-4af7-a3f6-2add924c585d\"}\n[2026-05-11 11:35:48] local.INFO: Trying to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\"} {\"correlation_id\":\"b8292706-1dcd-4072-b788-b5c374fd4c9d\",\"trace_id\":\"70fd23fd-05e6-4af7-a3f6-2add924c585d\"}\n[2026-05-11 11:35:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b8292706-1dcd-4072-b788-b5c374fd4c9d\",\"trace_id\":\"70fd23fd-05e6-4af7-a3f6-2add924c585d\"}\n[2026-05-11 11:35:48] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":306,\"provider\":\"hubspot\",\"refreshToken\":\"6fa6aa8cc641d131231acc3470f5c03cb3b07b2e580fb18f8acb3b1dbb72549b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"b8292706-1dcd-4072-b788-b5c374fd4c9d\",\"trace_id\":\"70fd23fd-05e6-4af7-a3f6-2add924c585d\"}\n[2026-05-11 11:35:48] local.ERROR: Failed to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"b8292706-1dcd-4072-b788-b5c374fd4c9d\",\"trace_id\":\"70fd23fd-05e6-4af7-a3f6-2add924c585d\"}\n[2026-05-11 11:35:48] local.INFO: Trying to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\"} {\"correlation_id\":\"b8292706-1dcd-4072-b788-b5c374fd4c9d\",\"trace_id\":\"70fd23fd-05e6-4af7-a3f6-2add924c585d\"}\n[2026-05-11 11:35:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b8292706-1dcd-4072-b788-b5c374fd4c9d\",\"trace_id\":\"70fd23fd-05e6-4af7-a3f6-2add924c585d\"}\n[2026-05-11 11:35:48] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1372,\"provider\":\"hubspot\",\"refreshToken\":\"9aa73948c761da29dce46c177cf9aee1fde483a44169ca38723f9f0597d7a8c4\",\"state\":\"full-refresh\"} {\"correlation_id\":\"b8292706-1dcd-4072-b788-b5c374fd4c9d\",\"trace_id\":\"70fd23fd-05e6-4af7-a3f6-2add924c585d\"}\n[2026-05-11 11:35:49] local.ERROR: Failed to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"b8292706-1dcd-4072-b788-b5c374fd4c9d\",\"trace_id\":\"70fd23fd-05e6-4af7-a3f6-2add924c585d\"}\n[2026-05-11 11:35:49] local.NOTICE: Repairing HubSpot tokens end {\"total\":3,\"fixed\":0,\"failed\":3} {\"correlation_id\":\"b8292706-1dcd-4072-b788-b5c374fd4c9d\",\"trace_id\":\"70fd23fd-05e6-4af7-a3f6-2add924c585d\"}\n[2026-05-11 11:35:57] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"b7c9d05d-5879-4737-9b04-586f72c6b8f9\",\"trace_id\":\"166b9455-ab09-43c2-a9b6-daa2d1360d81\"}\n[2026-05-11 11:35:57] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"bdbc5b77-c5de-4aec-822c-ee6537449481\",\"trace_id\":\"fd9db7f0-b1c9-42ff-ba02-5afa64debd65\"}\n[2026-05-11 11:35:57] local.INFO: [HubSpot Journal Command] Starting polling service {\"correlation_id\":\"97a527a8-f15a-4069-b68e-682eb124a293\",\"trace_id\":\"cb4cd9e1-6d6d-4209-83c2-830bd85f46d9\"}\n[2026-05-11 11:35:57] local.INFO: [HubSpot Journal Polling] Service starting {\"memory_limit\":\"256M\",\"max_execution_time\":\"0\",\"initial_memory_mb\":60.0} {\"correlation_id\":\"97a527a8-f15a-4069-b68e-682eb124a293\",\"trace_id\":\"cb4cd9e1-6d6d-4209-83c2-830bd85f46d9\"}\n[2026-05-11 11:35:57] local.INFO: [HubSpot Journal Polling] Acquired polling lock {\"expires_at\":\"2026-05-11T11:37:57.588121Z\"} {\"correlation_id\":\"97a527a8-f15a-4069-b68e-682eb124a293\",\"trace_id\":\"cb4cd9e1-6d6d-4209-83c2-830bd85f46d9\"}\n[2026-05-11 11:35:57] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"b7c9d05d-5879-4737-9b04-586f72c6b8f9\",\"trace_id\":\"166b9455-ab09-43c2-a9b6-daa2d1360d81\"}\n[2026-05-11 11:35:57] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"bdbc5b77-c5de-4aec-822c-ee6537449481\",\"trace_id\":\"fd9db7f0-b1c9-42ff-ba02-5afa64debd65\"}\n[2026-05-11 11:35:57] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"97a527a8-f15a-4069-b68e-682eb124a293\",\"trace_id\":\"cb4cd9e1-6d6d-4209-83c2-830bd85f46d9\"}\n[2026-05-11 11:36:03] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"97a527a8-f15a-4069-b68e-682eb124a293\",\"trace_id\":\"cb4cd9e1-6d6d-4209-83c2-830bd85f46d9\"}\n[2026-05-11 11:36:08] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"97a527a8-f15a-4069-b68e-682eb124a293\",\"trace_id\":\"cb4cd9e1-6d6d-4209-83c2-830bd85f46d9\"}\n[2026-05-11 11:36:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"ed64c2dd-996e-4266-8af9-a1f391071bea\",\"trace_id\":\"c96ce0e2-d04c-4b01-bcf1-47d6fe7b4e56\"}\n[2026-05-11 11:36:12] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"ed64c2dd-996e-4266-8af9-a1f391071bea\",\"trace_id\":\"c96ce0e2-d04c-4b01-bcf1-47d6fe7b4e56\"}\n[2026-05-11 11:36:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"ed64c2dd-996e-4266-8af9-a1f391071bea\",\"trace_id\":\"c96ce0e2-d04c-4b01-bcf1-47d6fe7b4e56\"}\n[2026-05-11 11:36:13] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"435378ce-9096-4a0b-8445-944ba0ca771c\",\"trace_id\":\"3002214c-eba1-4ad9-a0bb-4452c1f69af2\"}\n[2026-05-11 11:36:13] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"435378ce-9096-4a0b-8445-944ba0ca771c\",\"trace_id\":\"3002214c-eba1-4ad9-a0bb-4452c1f69af2\"}\n[2026-05-11 11:36:17] local.NOTICE: Monitoring start {\"correlation_id\":\"cc89edc0-e903-448b-a83d-7ebfa770789a\",\"trace_id\":\"65b8c9fc-b1ac-4fcd-b138-d1af4b14c1f0\"}\n[2026-05-11 11:36:17] local.NOTICE: Monitoring end {\"correlation_id\":\"cc89edc0-e903-448b-a83d-7ebfa770789a\",\"trace_id\":\"65b8c9fc-b1ac-4fcd-b138-d1af4b14c1f0\"}\n[2026-05-11 11:36:19] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"9dc85070-9dc1-4821-9b21-bf71cb4a35a7\",\"trace_id\":\"6288c472-dd35-476f-ad35-d1988f54255e\"}\n[2026-05-11 11:36:19] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"9dc85070-9dc1-4821-9b21-bf71cb4a35a7\",\"trace_id\":\"6288c472-dd35-476f-ad35-d1988f54255e\"}\n[2026-05-11 11:36:21] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"ab75325d-90d5-4192-900b-a28f0601c7a8\",\"trace_id\":\"92f2899a-35ba-41f7-bdb8-7f2cd7b4e7d8\"}\n[2026-05-11 11:36:21] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"ab75325d-90d5-4192-900b-a28f0601c7a8\",\"trace_id\":\"92f2899a-35ba-41f7-bdb8-7f2cd7b4e7d8\"}\n[2026-05-11 11:36:21] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"ab75325d-90d5-4192-900b-a28f0601c7a8\",\"trace_id\":\"92f2899a-35ba-41f7-bdb8-7f2cd7b4e7d8\"}\n[2026-05-11 11:36:21] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"ab75325d-90d5-4192-900b-a28f0601c7a8\",\"trace_id\":\"92f2899a-35ba-41f7-bdb8-7f2cd7b4e7d8\"}\n[2026-05-11 11:36:23] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"97a527a8-f15a-4069-b68e-682eb124a293\",\"trace_id\":\"cb4cd9e1-6d6d-4209-83c2-830bd85f46d9\"}\n[2026-05-11 11:36:23] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"23455c29-95de-4465-96d1-a105422a3e6c\",\"trace_id\":\"9a1665bf-e44b-4301-911f-bcb548e82b31\"}\n[2026-05-11 11:36:23] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 11:34:00, 2026-05-11 11:36:00] {\"correlation_id\":\"23455c29-95de-4465-96d1-a105422a3e6c\",\"trace_id\":\"9a1665bf-e44b-4301-911f-bcb548e82b31\"}\n[2026-05-11 11:36:23] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 11:34:00, 2026-05-11 11:36:00] {\"correlation_id\":\"23455c29-95de-4465-96d1-a105422a3e6c\",\"trace_id\":\"9a1665bf-e44b-4301-911f-bcb548e82b31\"}\n[2026-05-11 11:36:23] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"23455c29-95de-4465-96d1-a105422a3e6c\",\"trace_id\":\"9a1665bf-e44b-4301-911f-bcb548e82b31\"}\n[2026-05-11 11:36:26] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:sync-hubspot-objects\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"19151979-e90e-4527-9061-2fd0280024f3\",\"trace_id\":\"63932467-31c2-4871-9144-4ce924d22ae7\"}\n[2026-05-11 11:36:26] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:sync-hubspot-objects\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"19151979-e90e-4527-9061-2fd0280024f3\",\"trace_id\":\"63932467-31c2-4871-9144-4ce924d22ae7\"}\n[2026-05-11 11:36:26] local.INFO: [SyncHubspotObjects] Starting sync {\"team\":\"b2b115eb-93ce-4d1b-929c-173757df8fba\",\"usage\":23373304,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"26f50693-857d-4948-95b5-e5b3faae1267\",\"trace_id\":\"63932467-31c2-4871-9144-4ce924d22ae7\"}\n[2026-05-11 11:36:26] local.WARNING: [HubSpot] Account not connected for user {\"userId\":\"33e34a7a-1c02-4f04-87ac-22c3a385e6e3\",\"account\":{\"Jiminny\\\\Models\\\\SocialAccount\":{\"id\":306,\"sociable_id\":109,\"provider_user_id\":\"11348452\",\"expires\":1701077403,\"refresh_token_expires\":null,\"provider\":\"hubspot\",\"state\":\"full-refresh\",\"auth_scope\":null,\"retry_after\":null,\"created_at\":\"2020-09-01 16:59:04\",\"updated_at\":\"2023-11-27 09:30:03\"}}} {\"correlation_id\":\"26f50693-857d-4948-95b5-e5b3faae1267\",\"trace_id\":\"63932467-31c2-4871-9144-4ce924d22ae7\"}\n[2026-05-11 11:36:26] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"hubspot\",\"crm_owner\":109,\"team_id\":29} {\"correlation_id\":\"26f50693-857d-4948-95b5-e5b3faae1267\",\"trace_id\":\"63932467-31c2-4871-9144-4ce924d22ae7\"}\n[2026-05-11 11:36:26] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":29} {\"correlation_id\":\"26f50693-857d-4948-95b5-e5b3faae1267\",\"trace_id\":\"63932467-31c2-4871-9144-4ce924d22ae7\"}\n[2026-05-11 11:36:26] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":29} {\"correlation_id\":\"26f50693-857d-4948-95b5-e5b3faae1267\",\"trace_id\":\"63932467-31c2-4871-9144-4ce924d22ae7\"}\n[2026-05-11 11:36:26] local.INFO: [SyncHubspotObjects] Sync finished {\"team\":\"b2b115eb-93ce-4d1b-929c-173757df8fba\",\"provider\":\"hubspot\",\"status\":\"disconnected\",\"duration_ms\":17.52,\"usage\":23438968,\"real_usage\":62914560,\"pid\":74083,\"reason\":\"Your HubSpot account has become disconnected. Please login to Jiminny to reconnect.\"} {\"correlation_id\":\"26f50693-857d-4948-95b5-e5b3faae1267\",\"trace_id\":\"63932467-31c2-4871-9144-4ce924d22ae7\"}\n[2026-05-11 11:36:26] local.INFO: [SyncHubspotObjects] Starting sync {\"team\":\"abae74b8-bfa8-4383-9a7f-89f4bf2bdbb4\",\"usage\":23397184,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"4579e24d-7300-4765-b5e6-a8d1e75436d8\",\"trace_id\":\"63932467-31c2-4871-9144-4ce924d22ae7\"}\n[2026-05-11 11:36:26] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4579e24d-7300-4765-b5e6-a8d1e75436d8\",\"trace_id\":\"63932467-31c2-4871-9144-4ce924d22ae7\"}\n[2026-05-11 11:36:26] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4579e24d-7300-4765-b5e6-a8d1e75436d8\",\"trace_id\":\"63932467-31c2-4871-9144-4ce924d22ae7\"}\n[2026-05-11 11:36:26] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4579e24d-7300-4765-b5e6-a8d1e75436d8\",\"trace_id\":\"63932467-31c2-4871-9144-4ce924d22ae7\"}\n[2026-05-11 11:36:26] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4579e24d-7300-4765-b5e6-a8d1e75436d8\",\"trace_id\":\"63932467-31c2-4871-9144-4ce924d22ae7\"}\n[2026-05-11 11:36:26] local.INFO: [HubSpot] Syncing opportunities using strategy: lastModified {\"team\":2} {\"correlation_id\":\"4579e24d-7300-4765-b5e6-a8d1e75436d8\",\"trace_id\":\"63932467-31c2-4871-9144-4ce924d22ae7\"}\n[2026-05-11 11:36:26] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.26,\"average_seconds_per_request\":0.26} {\"correlation_id\":\"4579e24d-7300-4765-b5e6-a8d1e75436d8\",\"trace_id\":\"63932467-31c2-4871-9144-4ce924d22ae7\"}\n[2026-05-11 11:36:26] local.INFO: [HubSpot] Synced opportunities {\"team\":2,\"strategies\":\"lastModified\",\"sync_count\":0,\"total\":0,\"last_synced_id\":null,\"duration_ms\":266.37} {\"correlation_id\":\"4579e24d-7300-4765-b5e6-a8d1e75436d8\",\"trace_id\":\"63932467-31c2-4871-9144-4ce924d22ae7\"}\n[2026-05-11 11:36:26] local.INFO: [SyncHubspotObjects] Sync finished {\"team\":\"abae74b8-bfa8-4383-9a7f-89f4bf2bdbb4\",\"provider\":\"hubspot\",\"status\":\"completed\",\"duration_ms\":307.04,\"usage\":23461536,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"4579e24d-7300-4765-b5e6-a8d1e75436d8\",\"trace_id\":\"63932467-31c2-4871-9144-4ce924d22ae7\"}\n[2026-05-11 11:36:28] local.INFO: [SyncHubspotObjects] Starting sync {\"team\":\"c6b9d6b0-b48d-4832-a68c-a57d60651888\",\"usage\":23439464,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"48369349-9d95-4a19-8793-f3809c7a1b59\",\"trace_id\":\"63932467-31c2-4871-9144-4ce924d22ae7\"}\n[2026-05-11 11:36:28] local.WARNING: [HubSpot] Account not connected for user {\"userId\":\"71e3aac5-fb66-47c5-a236-2d051ae3e319\",\"account\":null} {\"correlation_id\":\"48369349-9d95-4a19-8793-f3809c7a1b59\",\"trace_id\":\"63932467-31c2-4871-9144-4ce924d22ae7\"}\n[2026-05-11 11:36:28] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"hubspot\",\"crm_owner\":256,\"team_id\":49} {\"correlation_id\":\"48369349-9d95-4a19-8793-f3809c7a1b59\",\"trace_id\":\"63932467-31c2-4871-9144-4ce924d22ae7\"}\n[2026-05-11 11:36:28] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":49} {\"correlation_id\":\"48369349-9d95-4a19-8793-f3809c7a1b59\",\"trace_id\":\"63932467-31c2-4871-9144-4ce924d22ae7\"}\n[2026-05-11 11:36:28] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":49} {\"correlation_id\":\"48369349-9d95-4a19-8793-f3809c7a1b59\",\"trace_id\":\"63932467-31c2-4871-9144-4ce924d22ae7\"}\n[2026-05-11 11:36:28] local.INFO: [SyncHubspotObjects] Sync finished {\"team\":\"c6b9d6b0-b48d-4832-a68c-a57d60651888\",\"provider\":\"hubspot\",\"status\":\"disconnected\",\"duration_ms\":18.69,\"usage\":23423888,\"real_usage\":62914560,\"pid\":74083,\"reason\":\"Social account for HubSpot cannot be found. Please login to Jiminny to connect.\"} {\"correlation_id\":\"48369349-9d95-4a19-8793-f3809c7a1b59\",\"trace_id\":\"63932467-31c2-4871-9144-4ce924d22ae7\"}\n[2026-05-11 11:36:28] local.INFO: [SyncHubspotObjects] Starting sync {\"team\":\"b2d49a54-b645-4637-a7ae-a86cfce6e8e4\",\"usage\":23384528,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"afb4923c-7862-47d2-a140-646a189f5ef4\",\"trace_id\":\"63932467-31c2-4871-9144-4ce924d22ae7\"}\n[2026-05-11 11:36:28] local.WARNING: [HubSpot] Account not connected for user {\"userId\":\"2ac0447f-3c8c-4ce0-baeb-b63ddb76fa9b\",\"account\":null} {\"correlation_id\":\"afb4923c-7862-47d2-a140-646a189f5ef4\",\"trace_id\":\"63932467-31c2-4871-9144-4ce924d22ae7\"}\n[2026-05-11 11:36:28] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"hubspot\",\"crm_owner\":130,\"team_id\":42} {\"correlation_id\":\"afb4923c-7862-47d2-a140-646a189f5ef4\",\"trace_id\":\"63932467-31c2-4871-9144-4ce924d22ae7\"}\n[2026-05-11 11:36:28] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":42} {\"correlation_id\":\"afb4923c-7862-47d2-a140-646a189f5ef4\",\"trace_id\":\"63932467-31c2-4871-9144-4ce924d22ae7\"}\n[2026-05-11 11:36:28] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":42} {\"correlation_id\":\"afb4923c-7862-47d2-a140-646a189f5ef4\",\"trace_id\":\"63932467-31c2-4871-9144-4ce924d22ae7\"}\n[2026-05-11 11:36:28] local.INFO: [SyncHubspotObjects] Sync finished {\"team\":\"b2d49a54-b645-4637-a7ae-a86cfce6e8e4\",\"provider\":\"hubspot\",\"status\":\"disconnected\",\"duration_ms\":11.74,\"usage\":23427472,\"real_usage\":62914560,\"pid\":74083,\"reason\":\"Social account for HubSpot cannot be found. Please login to Jiminny to connect.\"} {\"correlation_id\":\"afb4923c-7862-47d2-a140-646a189f5ef4\",\"trace_id\":\"63932467-31c2-4871-9144-4ce924d22ae7\"}\n[2026-05-11 11:36:28] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:notify-not-logged\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"654e753f-abcd-464d-a51b-b358ecba4ff9\",\"trace_id\":\"1bc4a51a-0961-4402-a6d5-99f8278f1dc7\"}\n[2026-05-11 11:36:28] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:notify-not-logged\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"654e753f-abcd-464d-a51b-b358ecba4ff9\",\"trace_id\":\"1bc4a51a-0961-4402-a6d5-99f8278f1dc7\"}\n[2026-05-11 11:36:32] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"e14930b5-bee0-44a4-8383-15d87eaef035\",\"trace_id\":\"41361dee-7237-4377-8dd6-961525696b41\"}\n[2026-05-11 11:36:33] local.INFO: [EmailSchedule] STARTING Inbox Sync {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"e14930b5-bee0-44a4-8383-15d87eaef035\",\"trace_id\":\"41361dee-7237-4377-8dd6-961525696b41\"}\n[2026-05-11 11:36:33] local.INFO: [EmailSchedule] FINISHED Inbox Sync {\"host\":\"docker_lamp_1\",\"events\":2} {\"correlation_id\":\"e14930b5-bee0-44a4-8383-15d87eaef035\",\"trace_id\":\"41361dee-7237-4377-8dd6-961525696b41\"}\n[2026-05-11 11:36:33] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"e14930b5-bee0-44a4-8383-15d87eaef035\",\"trace_id\":\"41361dee-7237-4377-8dd6-961525696b41\"}\n[2026-05-11 11:36:35] local.INFO: [Sync Mailbox] Sync start {\"inbox_id\":59} {\"correlation_id\":\"9177aaae-38d8-46b4-9340-f9942a57fa45\",\"trace_id\":\"41361dee-7237-4377-8dd6-961525696b41\"}\n[2026-05-11 11:36:35] local.INFO: [Inbox service] Skipping METADATA SYNC for inbox 59 due to unauthorized access to the mailbox {\"correlation_id\":\"9177aaae-38d8-46b4-9340-f9942a57fa45\",\"trace_id\":\"41361dee-7237-4377-8dd6-961525696b41\"}\n[2026-05-11 11:36:35] local.INFO: [Sync Mailbox] Sync complete {\"inbox_id\":59} {\"correlation_id\":\"9177aaae-38d8-46b4-9340-f9942a57fa45\",\"trace_id\":\"41361dee-7237-4377-8dd6-961525696b41\"}\n[2026-05-11 11:36:35] local.INFO: [Sync Mailbox] Sync start {\"inbox_id\":212} {\"correlation_id\":\"877bdb5b-1232-47ca-9e13-e1201b0523fe\",\"trace_id\":\"41361dee-7237-4377-8dd6-961525696b41\"}\n[2026-05-11 11:36:35] local.INFO: [Inbox service] Skipping METADATA SYNC for inbox 212 due to unauthorized access to the mailbox {\"correlation_id\":\"877bdb5b-1232-47ca-9e13-e1201b0523fe\",\"trace_id\":\"41361dee-7237-4377-8dd6-961525696b41\"}\n[2026-05-11 11:36:35] local.INFO: [Sync Mailbox] Sync complete {\"inbox_id\":212} {\"correlation_id\":\"877bdb5b-1232-47ca-9e13-e1201b0523fe\",\"trace_id\":\"41361dee-7237-4377-8dd6-961525696b41\"}\n[2026-05-11 11:36:54] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"97a527a8-f15a-4069-b68e-682eb124a293\",\"trace_id\":\"cb4cd9e1-6d6d-4209-83c2-830bd85f46d9\"}\n[2026-05-11 11:36:54] local.WARNING: [HubSpot Journal Polling] Maximum empty results reached, stopping {\"empty_results\":5,\"max_empty_results\":5} {\"correlation_id\":\"97a527a8-f15a-4069-b68e-682eb124a293\",\"trace_id\":\"cb4cd9e1-6d6d-4209-83c2-830bd85f46d9\"}\n[2026-05-11 11:36:54] local.WARNING: [HubSpot Journal Polling] Maximum empty results reached, stopping {\"empty_results\":5,\"max_empty_results\":5} {\"correlation_id\":\"97a527a8-f15a-4069-b68e-682eb124a293\",\"trace_id\":\"cb4cd9e1-6d6d-4209-83c2-830bd85f46d9\"}\n[2026-05-11 11:36:54] local.INFO: [HubSpot Journal Polling] Service ending {\"runtime_seconds\":57,\"total_cycles\":5,\"files_downloaded\":0,\"empty_files\":0,\"other_portal_skipped\":0,\"total_events\":0,\"events_per_file\":0,\"avg_api_ms\":211.8,\"avg_download_ms\":0.0,\"avg_transform_ms\":0.0,\"avg_process_ms\":0.0,\"peak_memory_mb\":99.73} {\"correlation_id\":\"97a527a8-f15a-4069-b68e-682eb124a293\",\"trace_id\":\"cb4cd9e1-6d6d-4209-83c2-830bd85f46d9\"}\n[2026-05-11 11:36:54] local.INFO: [HubSpot Journal Polling] Saved offset to database on cleanup {\"offset\":\"019e15a9-9ea0-7da7-87bc-82592e3ccf0d\"} {\"correlation_id\":\"97a527a8-f15a-4069-b68e-682eb124a293\",\"trace_id\":\"cb4cd9e1-6d6d-4209-83c2-830bd85f46d9\"}\n[2026-05-11 11:36:54] local.INFO: [HubSpot Journal Polling] Released polling lock {\"correlation_id\":\"97a527a8-f15a-4069-b68e-682eb124a293\",\"trace_id\":\"cb4cd9e1-6d6d-4209-83c2-830bd85f46d9\"}\n[2026-05-11 11:37:08] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"15940138-e7f5-472c-bec4-e594219fb191\",\"trace_id\":\"418d8346-03e7-4433-8826-f2ec96496fdc\"}\n[2026-05-11 11:37:08] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"15940138-e7f5-472c-bec4-e594219fb191\",\"trace_id\":\"418d8346-03e7-4433-8826-f2ec96496fdc\"}\n[2026-05-11 11:37:08] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"15940138-e7f5-472c-bec4-e594219fb191\",\"trace_id\":\"418d8346-03e7-4433-8826-f2ec96496fdc\"}\n[2026-05-11 11:37:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"5ca920bb-7b15-4229-b3fe-a1445e67b199\",\"trace_id\":\"96f700d1-45ac-41f3-a456-dd767f406c18\"}\n[2026-05-11 11:37:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"5ca920bb-7b15-4229-b3fe-a1445e67b199\",\"trace_id\":\"96f700d1-45ac-41f3-a456-dd767f406c18\"}\n[2026-05-11 11:37:14] local.NOTICE: Monitoring start {\"correlation_id\":\"2192742c-a038-41f8-82e0-78559fcc76db\",\"trace_id\":\"8bba3861-e7af-4a44-a2a0-b05937422aa4\"}\n[2026-05-11 11:37:14] local.NOTICE: Monitoring end {\"correlation_id\":\"2192742c-a038-41f8-82e0-78559fcc76db\",\"trace_id\":\"8bba3861-e7af-4a44-a2a0-b05937422aa4\"}\n[2026-05-11 11:37:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"b3be6fa8-dd5d-4f0c-97fe-ecea4ab529cd\",\"trace_id\":\"86ee318b-a230-4ab5-aae3-73adabf4cfbd\"}\n[2026-05-11 11:37:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"b3be6fa8-dd5d-4f0c-97fe-ecea4ab529cd\",\"trace_id\":\"86ee318b-a230-4ab5-aae3-73adabf4cfbd\"}\n[2026-05-11 11:37:22] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"4983de8a-ee3f-46a6-aeed-7cf59e42a336\",\"trace_id\":\"c1ad61a2-c56f-43bf-96eb-24c50ab079af\"}\n[2026-05-11 11:37:22] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"4983de8a-ee3f-46a6-aeed-7cf59e42a336\",\"trace_id\":\"c1ad61a2-c56f-43bf-96eb-24c50ab079af\"}\n[2026-05-11 11:37:23] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"4983de8a-ee3f-46a6-aeed-7cf59e42a336\",\"trace_id\":\"c1ad61a2-c56f-43bf-96eb-24c50ab079af\"}\n[2026-05-11 11:37:23] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"4983de8a-ee3f-46a6-aeed-7cf59e42a336\",\"trace_id\":\"c1ad61a2-c56f-43bf-96eb-24c50ab079af\"}\n[2026-05-11 11:37:25] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"8b1f5285-ab6d-4008-b9eb-8960734e12c8\",\"trace_id\":\"60276151-6edf-4040-b81c-9465a81a92dd\"}\n[2026-05-11 11:37:25] local.INFO: [EmailSchedule] STARTING batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"8b1f5285-ab6d-4008-b9eb-8960734e12c8\",\"trace_id\":\"60276151-6edf-4040-b81c-9465a81a92dd\"}\n[2026-05-11 11:37:25] local.INFO: [EmailSchedule] FINISHED batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"8b1f5285-ab6d-4008-b9eb-8960734e12c8\",\"trace_id\":\"60276151-6edf-4040-b81c-9465a81a92dd\"}\n[2026-05-11 11:37:25] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"8b1f5285-ab6d-4008-b9eb-8960734e12c8\",\"trace_id\":\"60276151-6edf-4040-b81c-9465a81a92dd\"}\n[2026-05-11 11:37:26] local.INFO: [Jiminny\\Jobs\\Mailbox\\CreateBatches] processed 2 inboxes and created 0 batches {\"userId\":null,\"batchSize\":30,\"maxBatches\":1000} {\"correlation_id\":\"9901dba9-6b69-44eb-acdc-7a2246f82419\",\"trace_id\":\"60276151-6edf-4040-b81c-9465a81a92dd\"}\n[2026-05-11 11:37:28] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"69d41df6-224e-4db9-ac05-88ac705ee741\",\"trace_id\":\"c05a2a81-4e1a-4f0b-8b4d-32a60d9816e1\"}\n[2026-05-11 11:37:28] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"69d41df6-224e-4db9-ac05-88ac705ee741\",\"trace_id\":\"c05a2a81-4e1a-4f0b-8b4d-32a60d9816e1\"}\n[2026-05-11 11:38:08] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"5db27930-2b5a-4b84-b25e-1e3b43ea8add\",\"trace_id\":\"6cfecb02-c968-4473-b540-030e0f5b744d\"}\n[2026-05-11 11:38:08] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"5db27930-2b5a-4b84-b25e-1e3b43ea8add\",\"trace_id\":\"6cfecb02-c968-4473-b540-030e0f5b744d\"}\n[2026-05-11 11:38:08] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"5db27930-2b5a-4b84-b25e-1e3b43ea8add\",\"trace_id\":\"6cfecb02-c968-4473-b540-030e0f5b744d\"}\n[2026-05-11 11:38:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a69e46bc-2365-4966-9e37-a99fd1aecd4c\",\"trace_id\":\"b2505494-12ca-4339-bbf7-c7213045c9f0\"}\n[2026-05-11 11:38:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a69e46bc-2365-4966-9e37-a99fd1aecd4c\",\"trace_id\":\"b2505494-12ca-4339-bbf7-c7213045c9f0\"}\n[2026-05-11 11:38:17] local.NOTICE: Monitoring start {\"correlation_id\":\"231a58c6-2a59-4241-a3b9-3b9bdd2fa3a1\",\"trace_id\":\"05429fd5-b419-421b-afe8-18d7a4fd5ae9\"}\n[2026-05-11 11:38:17] local.NOTICE: Monitoring end {\"correlation_id\":\"231a58c6-2a59-4241-a3b9-3b9bdd2fa3a1\",\"trace_id\":\"05429fd5-b419-421b-afe8-18d7a4fd5ae9\"}\n[2026-05-11 11:38:20] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"25e36035-000d-4b58-bfe7-b1ecdbed7c9d\",\"trace_id\":\"5fe4eb1c-1c67-4f96-8900-1339cb81ee53\"}\n[2026-05-11 11:38:20] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"25e36035-000d-4b58-bfe7-b1ecdbed7c9d\",\"trace_id\":\"5fe4eb1c-1c67-4f96-8900-1339cb81ee53\"}\n[2026-05-11 11:38:24] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"7feddd80-ff43-42a0-b95d-5ee3b61d9433\",\"trace_id\":\"2bdbef46-33b1-4c1b-a406-3a853e4ccb67\"}\n[2026-05-11 11:38:24] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"7feddd80-ff43-42a0-b95d-5ee3b61d9433\",\"trace_id\":\"2bdbef46-33b1-4c1b-a406-3a853e4ccb67\"}\n[2026-05-11 11:38:24] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"7feddd80-ff43-42a0-b95d-5ee3b61d9433\",\"trace_id\":\"2bdbef46-33b1-4c1b-a406-3a853e4ccb67\"}\n[2026-05-11 11:38:24] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"7feddd80-ff43-42a0-b95d-5ee3b61d9433\",\"trace_id\":\"2bdbef46-33b1-4c1b-a406-3a853e4ccb67\"}\n[2026-05-11 11:38:30] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"cf157a8b-6992-458e-a3dc-facc18787856\",\"trace_id\":\"ba532c9a-ea58-492d-b1ed-293ae6ca7151\"}\n[2026-05-11 11:38:30] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 11:36:00, 2026-05-11 11:38:00] {\"correlation_id\":\"cf157a8b-6992-458e-a3dc-facc18787856\",\"trace_id\":\"ba532c9a-ea58-492d-b1ed-293ae6ca7151\"}\n[2026-05-11 11:38:30] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 11:36:00, 2026-05-11 11:38:00] {\"correlation_id\":\"cf157a8b-6992-458e-a3dc-facc18787856\",\"trace_id\":\"ba532c9a-ea58-492d-b1ed-293ae6ca7151\"}\n[2026-05-11 11:38:30] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"cf157a8b-6992-458e-a3dc-facc18787856\",\"trace_id\":\"ba532c9a-ea58-492d-b1ed-293ae6ca7151\"}\n[2026-05-11 11:38:33] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a38ca8d1-f920-4af0-9ead-2c999788a762\",\"trace_id\":\"7f7c276e-3d0c-4337-9b91-60a46e249027\"}\n[2026-05-11 11:38:33] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a38ca8d1-f920-4af0-9ead-2c999788a762\",\"trace_id\":\"7f7c276e-3d0c-4337-9b91-60a46e249027\"}\n[2026-05-11 11:39:44] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"e334af78-eaf1-4b5a-82f9-8007826916cc\",\"trace_id\":\"13cea870-aff6-44e1-8e89-202cd0626e30\"}\n[2026-05-11 11:39:44] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"e334af78-eaf1-4b5a-82f9-8007826916cc\",\"trace_id\":\"13cea870-aff6-44e1-8e89-202cd0626e30\"}\n[2026-05-11 11:39:44] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"e334af78-eaf1-4b5a-82f9-8007826916cc\",\"trace_id\":\"13cea870-aff6-44e1-8e89-202cd0626e30\"}\n[2026-05-11 11:40:08] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"6c1eb788-cc37-4ce8-b25e-60834ccbbaca\",\"trace_id\":\"2df49960-6038-4cc1-9e8f-2add7b626f67\"}\n[2026-05-11 11:40:08] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"6c1eb788-cc37-4ce8-b25e-60834ccbbaca\",\"trace_id\":\"2df49960-6038-4cc1-9e8f-2add7b626f67\"}\n[2026-05-11 11:40:35] local.NOTICE: Monitoring start {\"correlation_id\":\"40e335c4-fd85-4f54-9281-291fe298424c\",\"trace_id\":\"b0f17a56-f2d5-4cd6-96cb-1209490ac7fe\"}\n[2026-05-11 11:40:36] local.NOTICE: Monitoring end {\"correlation_id\":\"40e335c4-fd85-4f54-9281-291fe298424c\",\"trace_id\":\"b0f17a56-f2d5-4cd6-96cb-1209490ac7fe\"}\n[2026-05-11 11:41:14] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"243d35a2-60a2-455d-81d1-f8e7f254ff49\",\"trace_id\":\"9052ee8b-33de-46ec-96bd-a5a6680680fe\"}\n[2026-05-11 11:41:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"243d35a2-60a2-455d-81d1-f8e7f254ff49\",\"trace_id\":\"9052ee8b-33de-46ec-96bd-a5a6680680fe\"}\n[2026-05-11 11:41:52] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"979a8201-55ff-4c48-bfb2-975d3fa8ef5c\",\"trace_id\":\"3d33eea6-2425-4eb8-9e74-596294d88208\"}\n[2026-05-11 11:41:52] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"979a8201-55ff-4c48-bfb2-975d3fa8ef5c\",\"trace_id\":\"3d33eea6-2425-4eb8-9e74-596294d88208\"}\n[2026-05-11 11:41:53] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"979a8201-55ff-4c48-bfb2-975d3fa8ef5c\",\"trace_id\":\"3d33eea6-2425-4eb8-9e74-596294d88208\"}\n[2026-05-11 11:41:53] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"979a8201-55ff-4c48-bfb2-975d3fa8ef5c\",\"trace_id\":\"3d33eea6-2425-4eb8-9e74-596294d88208\"}\n[2026-05-11 11:42:26] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:aircall:check-and-renew\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"1dc1f40a-b4a2-434d-b98a-2f0776bd58d7\",\"trace_id\":\"e83849b9-f2e9-4352-ad13-d5c2ed894982\"}\n[2026-05-11 11:42:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1496,\"provider\":\"aircall\"} {\"correlation_id\":\"1dc1f40a-b4a2-434d-b98a-2f0776bd58d7\",\"trace_id\":\"e83849b9-f2e9-4352-ad13-d5c2ed894982\"}\n[2026-05-11 11:42:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1496,\"provider\":\"aircall\"} {\"correlation_id\":\"1dc1f40a-b4a2-434d-b98a-2f0776bd58d7\",\"trace_id\":\"e83849b9-f2e9-4352-ad13-d5c2ed894982\"}\n[2026-05-11 11:42:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1dc1f40a-b4a2-434d-b98a-2f0776bd58d7\",\"trace_id\":\"e83849b9-f2e9-4352-ad13-d5c2ed894982\"}\n[2026-05-11 11:42:28] local.ERROR: [Aircall] Re-activating webhooks failed {\"team_id\":1,\"reason\":\"{\\\"message\\\":\\\"Forbidden\\\"}\"} {\"correlation_id\":\"1dc1f40a-b4a2-434d-b98a-2f0776bd58d7\",\"trace_id\":\"e83849b9-f2e9-4352-ad13-d5c2ed894982\"}\n[2026-05-11 11:42:28] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:aircall:check-and-renew\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"1dc1f40a-b4a2-434d-b98a-2f0776bd58d7\",\"trace_id\":\"e83849b9-f2e9-4352-ad13-d5c2ed894982\"}\n[2026-05-11 11:42:54] local.INFO: [RetryFailedDownloads] Starting {\"options\":{\"from\":null,\"to\":null,\"help\":false,\"silent\":false,\"quiet\":false,\"verbose\":false,\"version\":false,\"ansi\":null,\"no-interaction\":false,\"env\":null}} {\"correlation_id\":\"5446fc92-2300-4510-9863-048fe06a4b98\",\"trace_id\":\"87a50f74-91ab-47ee-9742-41f64dce94a7\"}\n[2026-05-11 11:43:45] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"fda720c4-f0f8-4e70-9807-542d7728a21d\",\"trace_id\":\"7f3371db-65a6-47eb-9e1d-c45bdc19039c\"}\n[2026-05-11 11:43:46] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"fda720c4-f0f8-4e70-9807-542d7728a21d\",\"trace_id\":\"7f3371db-65a6-47eb-9e1d-c45bdc19039c\"}\n[2026-05-11 11:43:46] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"fda720c4-f0f8-4e70-9807-542d7728a21d\",\"trace_id\":\"7f3371db-65a6-47eb-9e1d-c45bdc19039c\"}\n[2026-05-11 11:43:52] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"6d0158f2-88fa-48ce-b393-2da5e099e6cf\",\"trace_id\":\"6b08733f-64f2-4f39-90f8-38c47ffd7e71\"}\n[2026-05-11 11:43:52] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"6d0158f2-88fa-48ce-b393-2da5e099e6cf\",\"trace_id\":\"6b08733f-64f2-4f39-90f8-38c47ffd7e71\"}\n[2026-05-11 11:44:05] local.NOTICE: Monitoring start {\"correlation_id\":\"8f83f2bc-49c0-4073-8bc2-5c7dc756fc9b\",\"trace_id\":\"825d4830-4b62-47b5-9e4f-4f05a8e99fa4\"}\n[2026-05-11 11:44:05] local.NOTICE: Monitoring end {\"correlation_id\":\"8f83f2bc-49c0-4073-8bc2-5c7dc756fc9b\",\"trace_id\":\"825d4830-4b62-47b5-9e4f-4f05a8e99fa4\"}\n[2026-05-11 11:44:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"5f3e633b-60fe-4b1a-b53e-aeaaee6d9872\",\"trace_id\":\"96fee333-6840-448a-bf31-19f1cab1aa31\"}\n[2026-05-11 11:44:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"5f3e633b-60fe-4b1a-b53e-aeaaee6d9872\",\"trace_id\":\"96fee333-6840-448a-bf31-19f1cab1aa31\"}\n[2026-05-11 11:44:27] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"d7f214f2-1b36-4ba2-be0a-a0b132e19301\",\"trace_id\":\"840bfd9f-efbb-458c-89e8-feb1c60fe6d8\"}\n[2026-05-11 11:44:27] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"d7f214f2-1b36-4ba2-be0a-a0b132e19301\",\"trace_id\":\"840bfd9f-efbb-458c-89e8-feb1c60fe6d8\"}\n[2026-05-11 11:44:27] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"d7f214f2-1b36-4ba2-be0a-a0b132e19301\",\"trace_id\":\"840bfd9f-efbb-458c-89e8-feb1c60fe6d8\"}\n[2026-05-11 11:44:27] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"d7f214f2-1b36-4ba2-be0a-a0b132e19301\",\"trace_id\":\"840bfd9f-efbb-458c-89e8-feb1c60fe6d8\"}\n[2026-05-11 11:44:41] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"bb9a211f-a3bf-4708-9e02-493a1d3eaa44\",\"trace_id\":\"bd6c38ac-801b-4fcd-9ef2-770c931e2cd9\"}\n[2026-05-11 11:44:41] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"calendar:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:41] local.NOTICE: Calendar sync start {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:41] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"bb9a211f-a3bf-4708-9e02-493a1d3eaa44\",\"trace_id\":\"bd6c38ac-801b-4fcd-9ef2-770c931e2cd9\"}\n[2026-05-11 11:44:41] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1393,\"provider\":\"google\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:41] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1393,\"provider\":\"google\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:42] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1393,\"provider\":\"google\",\"refreshToken\":\"5aa7e2d96b53201cd16fca5d2e4ef3ad03320971fc064781d18aee3ae7b99fbf\",\"state\":\"full-refresh\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:42] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1393,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Account has been deleted\"}} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:42] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:42] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1393,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1387,\"provider\":\"google\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:42] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1387,\"provider\":\"google\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:42] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1387,\"provider\":\"google\",\"refreshToken\":\"8157ac6de94842937194009e9c50e459253600f799dacf6a40755ffdbeb5bba6\",\"state\":\"full-refresh\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:42] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1387,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Account has been deleted\"}} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:42] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:42] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1387,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:42] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1348,\"provider\":\"google\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:42] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1348,\"provider\":\"google\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:42] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:42] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1348,\"provider\":\"google\",\"refreshToken\":\"9e7d13d3032d0cb1b79d8e95aef01383e8e91eb52ff8ee960c8a0b6b95cd8c73\",\"state\":\"full-refresh\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:43] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1348,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:43] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:43] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1348,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1361,\"provider\":\"google\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:43] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1361,\"provider\":\"google\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:43] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1361,\"provider\":\"google\",\"refreshToken\":\"6c843da199c2b9907445329304fcc4ec5057a4ee748d8299641764395c08e1fd\",\"state\":\"full-refresh\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:43] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1361,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Account has been deleted\"}} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:43] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:43] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1361,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1310,\"provider\":\"google\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:43] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1310,\"provider\":\"google\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:43] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1310,\"provider\":\"google\",\"refreshToken\":\"e34818922c2830a660813a63f6169a4a9a992ae2cccd7dc8dd7796cfdb470ef1\",\"state\":\"full-refresh\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:43] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1310,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:44] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:44] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1310,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:44] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1333,\"provider\":\"google\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:44] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1333,\"provider\":\"google\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:44] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:44] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1333,\"provider\":\"google\",\"refreshToken\":\"6c902986546d8e8da1dc539b046cdc1d458f519acc972e5b5f1d6a1a295165e0\",\"state\":\"full-refresh\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:44] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1333,\"provider\":\"google\",\"responseBody\":{\"error\":\"unauthorized_client\",\"error_description\":\"Unauthorized\"}} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:45] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:45] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1333,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1368,\"provider\":\"google\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:45] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1368,\"provider\":\"google\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:45] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1368,\"provider\":\"google\",\"refreshToken\":\"d2f128898ff8543bd16b69cfae37896ab85119b0f5ed2b431d739593bb600333\",\"state\":\"full-refresh\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:45] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1368,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:45] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:45] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1368,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1365,\"provider\":\"google\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:45] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1365,\"provider\":\"google\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:45] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1365,\"provider\":\"google\",\"refreshToken\":\"7676e4a9afcd082b413248ab5ec6e487021fec6a9bdf315860a59cefad9caad8\",\"state\":\"full-refresh\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:45] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1365,\"provider\":\"google\",\"responseBody\":{\"error\":\"unauthorized_client\",\"error_description\":\"Unauthorized\"}} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:45] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:45] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1365,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1364,\"provider\":\"google\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:45] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1364,\"provider\":\"google\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:45] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1364,\"provider\":\"google\",\"refreshToken\":\"dd5882ebce76e645292ce33ae74238abbb77c0a4ecc6a2bfe723cad82e72ba8e\",\"state\":\"full-refresh\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:45] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1364,\"provider\":\"google\",\"responseBody\":{\"error\":\"unauthorized_client\",\"error_description\":\"Unauthorized\"}} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:45] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:46] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1364,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1370,\"provider\":\"office\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:46] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1370,\"provider\":\"office\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:46] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1370,\"provider\":\"office\",\"refreshToken\":\"b7ee8035306d0043cea6e00e7c4fe14f745e44074a1194db62a31cdf8b70af3e\",\"state\":\"full-refresh\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:46] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1370,\"provider\":\"office\",\"responseBody\":\"{\\\"error\\\":\\\"invalid_client\\\",\\\"error_description\\\":\\\"AADSTS7000215: Invalid client secret provided. Ensure the secret being sent in the request is the client secret value, not the client secret ID, for a secret added to app 'bbcbb2ef-6200-4fae-82bd-d81f5dd738da'. Trace ID: 320c5112-8012-438e-b59e-3160637c2400 Correlation ID: f87caf33-b771-4e58-8916-9df89ee13b6a Timestamp: 2026-05-11 11:44:46Z\\\",\\\"error_codes\\\":[7000215],\\\"timestamp\\\":\\\"2026-05-11 11:44:46Z\\\",\\\"trace_id\\\":\\\"320c5112-8012-438e-b59e-3160637c2400\\\",\\\"correlation_id\\\":\\\"f87caf33-b771-4e58-8916-9df89ee13b6a\\\",\\\"error_uri\\\":\\\"https://login.microsoftonline.com/error?code=7000215\\\"}\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:46] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:46] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1370,\"provider\":\"office\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1202,\"provider\":\"office\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:46] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1202,\"provider\":\"office\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:46] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1202,\"provider\":\"office\",\"refreshToken\":\"b458799ccc29b21a6e2eb5260fdb63e49ccba21bf942a3973fb63799bd7f0afe\",\"state\":\"full-refresh\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:47] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1202,\"provider\":\"office\",\"responseBody\":\"{\\\"error\\\":\\\"invalid_client\\\",\\\"error_description\\\":\\\"AADSTS7000215: Invalid client secret provided. Ensure the secret being sent in the request is the client secret value, not the client secret ID, for a secret added to app 'bbcbb2ef-6200-4fae-82bd-d81f5dd738da'. Trace ID: d629ca21-3ca7-44b5-9e49-1c8fdae61a00 Correlation ID: 18de3690-3388-4539-8f6f-fd2f9897cd34 Timestamp: 2026-05-11 11:44:47Z\\\",\\\"error_codes\\\":[7000215],\\\"timestamp\\\":\\\"2026-05-11 11:44:47Z\\\",\\\"trace_id\\\":\\\"d629ca21-3ca7-44b5-9e49-1c8fdae61a00\\\",\\\"correlation_id\\\":\\\"18de3690-3388-4539-8f6f-fd2f9897cd34\\\",\\\"error_uri\\\":\\\"https://login.microsoftonline.com/error?code=7000215\\\"}\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:47] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:47] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1202,\"provider\":\"office\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:48] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:48] local.INFO: Calendar sync job dispatched {\"calendar_id\":501} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1300,\"provider\":\"google\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:48] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1300,\"provider\":\"google\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:48] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1300,\"provider\":\"google\",\"refreshToken\":\"4b811db0725fd9602a95943519a7da935e2a5065da7d9ebfcb170752e3e1ddb8\",\"state\":\"full-refresh\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:48] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1300,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Account has been deleted\"}} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:48] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:48] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1300,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1409,\"provider\":\"google\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:48] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1409,\"provider\":\"google\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:48] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1409,\"provider\":\"google\",\"refreshToken\":\"e2a3f2d06894894eed1ee87d9db1ace77d4d42ee6e1288a8940ad2c10333b0c4\",\"state\":\"full-refresh\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:49] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"b0ba3c55-b39e-4817-9aaa-10ce829bb673\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:49] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"b0ba3c55-b39e-4817-9aaa-10ce829bb673\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:49] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b0ba3c55-b39e-4817-9aaa-10ce829bb673\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:49] local.INFO: [Calendar] Processing sync {\"calendarId\":\"a33076c1-8d97-431a-99f0-85c9524e118b\",\"from\":null,\"to\":null,\"delta\":\"CIiFh8TP44kDEIiFh8TP44kDGAUgkZvkzgIokZvkzgI=\",\"last_sync\":\"2024-12-09 07:12:53\",\"dateMode\":\"daily\"} {\"correlation_id\":\"b0ba3c55-b39e-4817-9aaa-10ce829bb673\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:49] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1409,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:49] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:49] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1409,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:49] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"integration-app\",\"crm_owner\":1695,\"team_id\":3143} {\"correlation_id\":\"b0ba3c55-b39e-4817-9aaa-10ce829bb673\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:49] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"b0ba3c55-b39e-4817-9aaa-10ce829bb673\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:49] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"b0ba3c55-b39e-4817-9aaa-10ce829bb673\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:49] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b0ba3c55-b39e-4817-9aaa-10ce829bb673\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:49] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1352,\"provider\":\"google\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:49] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1352,\"provider\":\"google\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:49] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:49] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1352,\"provider\":\"google\",\"refreshToken\":\"dd4b16b00fdc1216da6b717c02338c073636e29162826b2de6db3f064fc029eb\",\"state\":\"full-refresh\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:50] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1352,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Token has been expired or revoked.\"}} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:50] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:50] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1352,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1296,\"provider\":\"office\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:50] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1296,\"provider\":\"office\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:50] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1296,\"provider\":\"office\",\"refreshToken\":\"011ae723c9d800c674e0b4be76f49fc046dac7d501b66c59ef0d9549cfa56ae5\",\"state\":\"full-refresh\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:51] local.INFO: [Google Calendar] Failed to watch channel for calendar {\"calendarId\":\"a33076c1-8d97-431a-99f0-85c9524e118b\",\"code\":400,\"reason\":\"{\n \\\"error\\\": {\n \\\"errors\\\": [\n {\n \\\"domain\\\": \\\"global\\\",\n \\\"reason\\\": \\\"push.webhookUrlNotHttps\\\",\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n ],\n \\\"code\\\": 400,\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n}\"} {\"correlation_id\":\"b0ba3c55-b39e-4817-9aaa-10ce829bb673\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:51] local.WARNING: [Calendar] Sync failed {\"calendarId\":\"a33076c1-8d97-431a-99f0-85c9524e118b\",\"code\":400,\"reason\":\"{\n \\\"error\\\": {\n \\\"errors\\\": [\n {\n \\\"domain\\\": \\\"global\\\",\n \\\"reason\\\": \\\"push.webhookUrlNotHttps\\\",\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n ],\n \\\"code\\\": 400,\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n}\"} {\"correlation_id\":\"b0ba3c55-b39e-4817-9aaa-10ce829bb673\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:51] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1296,\"provider\":\"office\",\"responseBody\":\"{\\\"error\\\":\\\"invalid_client\\\",\\\"error_description\\\":\\\"AADSTS7000215: Invalid client secret provided. Ensure the secret being sent in the request is the client secret value, not the client secret ID, for a secret added to app 'bbcbb2ef-6200-4fae-82bd-d81f5dd738da'. Trace ID: db10007a-f935-4410-8801-fe3fc7f41f00 Correlation ID: 67f4abc0-cb40-498e-b741-6a92d8168e42 Timestamp: 2026-05-11 11:44:51Z\\\",\\\"error_codes\\\":[7000215],\\\"timestamp\\\":\\\"2026-05-11 11:44:51Z\\\",\\\"trace_id\\\":\\\"db10007a-f935-4410-8801-fe3fc7f41f00\\\",\\\"correlation_id\\\":\\\"67f4abc0-cb40-498e-b741-6a92d8168e42\\\",\\\"error_uri\\\":\\\"https://login.microsoftonline.com/error?code=7000215\\\"}\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:51] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:51] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1296,\"provider\":\"office\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:51] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":391,\"provider\":\"office\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:51] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":391,\"provider\":\"office\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:51] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:51] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":391,\"provider\":\"office\",\"refreshToken\":\"00045eebae0f39b34887c6d53f92ae78064f7145e1f4b67754aebd03cfb2d881\",\"state\":\"full-refresh\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:52] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":391,\"provider\":\"office\",\"responseBody\":\"{\\\"error\\\":\\\"invalid_client\\\",\\\"error_description\\\":\\\"AADSTS7000215: Invalid client secret provided. Ensure the secret being sent in the request is the client secret value, not the client secret ID, for a secret added to app 'bbcbb2ef-6200-4fae-82bd-d81f5dd738da'. Trace ID: 0d350193-c2af-4281-a07b-54de5efc2100 Correlation ID: e3aad26c-d360-4a7c-84fb-4aa3bd7e1d3c Timestamp: 2026-05-11 11:44:52Z\\\",\\\"error_codes\\\":[7000215],\\\"timestamp\\\":\\\"2026-05-11 11:44:52Z\\\",\\\"trace_id\\\":\\\"0d350193-c2af-4281-a07b-54de5efc2100\\\",\\\"correlation_id\\\":\\\"e3aad26c-d360-4a7c-84fb-4aa3bd7e1d3c\\\",\\\"error_uri\\\":\\\"https://login.microsoftonline.com/error?code=7000215\\\"}\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:52] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:52] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":391,\"provider\":\"office\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:52] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1271,\"provider\":\"office\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:52] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1271,\"provider\":\"office\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:52] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:52] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1271,\"provider\":\"office\",\"refreshToken\":\"118cde2c06993147b07ccaec4cbcd5026a819dea6c71081166a492933e392afb\",\"state\":\"full-refresh\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:52] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1271,\"provider\":\"office\",\"responseBody\":\"{\\\"error\\\":\\\"invalid_client\\\",\\\"error_description\\\":\\\"AADSTS7000215: Invalid client secret provided. Ensure the secret being sent in the request is the client secret value, not the client secret ID, for a secret added to app 'bbcbb2ef-6200-4fae-82bd-d81f5dd738da'. Trace ID: 2141a1b8-550b-4342-802b-5f2cc50c0100 Correlation ID: 6e94803a-2f67-4141-8893-d697e6158fef Timestamp: 2026-05-11 11:44:52Z\\\",\\\"error_codes\\\":[7000215],\\\"timestamp\\\":\\\"2026-05-11 11:44:52Z\\\",\\\"trace_id\\\":\\\"2141a1b8-550b-4342-802b-5f2cc50c0100\\\",\\\"correlation_id\\\":\\\"6e94803a-2f67-4141-8893-d697e6158fef\\\",\\\"error_uri\\\":\\\"https://login.microsoftonline.com/error?code=7000215\\\"}\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:52] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:52] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1271,\"provider\":\"office\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:52] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1351,\"provider\":\"google\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:52] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1351,\"provider\":\"google\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:52] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:52] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1351,\"provider\":\"google\",\"refreshToken\":\"4271d15b9e60a606439caddc68337f783e472c85b03dacff14d1b6dfded9051c\",\"state\":\"full-refresh\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:53] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1351,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:53] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:53] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1351,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:53] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1366,\"provider\":\"google\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:53] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1366,\"provider\":\"google\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:53] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:53] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1366,\"provider\":\"google\",\"refreshToken\":\"ae21385059b2eebfd43f68aecd56eccd702a1aabb6598f1f7ab594ed8af491b4\",\"state\":\"full-refresh\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:53] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1366,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:53] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:53] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1366,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:53] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:53] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:53] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:53] local.INFO: Calendar sync job dispatched {\"calendar_id\":378} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:53] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1421,\"provider\":\"office\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:53] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1421,\"provider\":\"office\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:53] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:53] local.INFO: Calendar sync job dispatched {\"calendar_id\":504} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:53] local.NOTICE: Calendar sync end {\"retrieved_calendars\":31,\"processed_calendars\":3} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:53] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"calendar:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":62.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"977b39c6-3da9-4d52-a5be-429dd70f580f\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:55] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"3c272c6b-1fda-44e0-84f4-d30b755533db\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:55] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"3c272c6b-1fda-44e0-84f4-d30b755533db\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:55] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"3c272c6b-1fda-44e0-84f4-d30b755533db\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:55] local.INFO: [Calendar] Processing sync {\"calendarId\":\"2676cb6d-f86c-427e-bf78-591e388e3c1e\",\"from\":null,\"to\":null,\"delta\":\"CJ_x49O3jpIDEJ_x49O3jpIDGAUgw67KlwMow67KlwM=\",\"last_sync\":\"2026-01-19 07:48:40\",\"dateMode\":\"daily\"} {\"correlation_id\":\"3c272c6b-1fda-44e0-84f4-d30b755533db\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:55] local.WARNING: [Pipedrive] Account not connected for user {\"userId\":\"e6538737-e7b4-455f-a37a-3e79b665a220\",\"account\":{\"Jiminny\\\\Models\\\\SocialAccount\":{\"id\":1116,\"sociable_id\":241,\"provider_user_id\":\"19555731\",\"expires\":1775683749,\"refresh_token_expires\":null,\"provider\":\"pipedrive\",\"state\":\"full-refresh\",\"auth_scope\":\"base,deals:full,activities:full,contacts:full,search:read\",\"retry_after\":null,\"created_at\":\"2023-09-08 09:44:29\",\"updated_at\":\"2026-04-08 22:58:34\"}}} {\"correlation_id\":\"3c272c6b-1fda-44e0-84f4-d30b755533db\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:55] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"pipedrive\",\"crm_owner\":241,\"team_id\":19} {\"correlation_id\":\"3c272c6b-1fda-44e0-84f4-d30b755533db\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:55] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"pipedrive\",\"team_id\":19} {\"correlation_id\":\"3c272c6b-1fda-44e0-84f4-d30b755533db\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:55] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"pipedrive\",\"team_id\":19} {\"correlation_id\":\"3c272c6b-1fda-44e0-84f4-d30b755533db\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:55] local.WARNING: [Calendar] CRM disconnected for user so events will not be matched {\"provider\":\"pipedrive\",\"user_id\":241,\"message\":\"Your Pipedrive account has become disconnected. Please login to Jiminny to reconnect.\"} {\"correlation_id\":\"3c272c6b-1fda-44e0-84f4-d30b755533db\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:55] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"3c272c6b-1fda-44e0-84f4-d30b755533db\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:55] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"3c272c6b-1fda-44e0-84f4-d30b755533db\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:55] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"3c272c6b-1fda-44e0-84f4-d30b755533db\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:55] local.INFO: [Google Calendar] Failed to watch channel for calendar {\"calendarId\":\"2676cb6d-f86c-427e-bf78-591e388e3c1e\",\"code\":400,\"reason\":\"{\n \\\"error\\\": {\n \\\"errors\\\": [\n {\n \\\"domain\\\": \\\"global\\\",\n \\\"reason\\\": \\\"push.webhookUrlNotHttps\\\",\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n ],\n \\\"code\\\": 400,\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n}\"} {\"correlation_id\":\"3c272c6b-1fda-44e0-84f4-d30b755533db\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:55] local.WARNING: [Calendar] Sync failed {\"calendarId\":\"2676cb6d-f86c-427e-bf78-591e388e3c1e\",\"code\":400,\"reason\":\"{\n \\\"error\\\": {\n \\\"errors\\\": [\n {\n \\\"domain\\\": \\\"global\\\",\n \\\"reason\\\": \\\"push.webhookUrlNotHttps\\\",\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n ],\n \\\"code\\\": 400,\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n}\"} {\"correlation_id\":\"3c272c6b-1fda-44e0-84f4-d30b755533db\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:55] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1421,\"provider\":\"office\"} {\"correlation_id\":\"90bd563f-bdb0-4222-aa3d-1aafaba59b82\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:55] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1421,\"provider\":\"office\"} {\"correlation_id\":\"90bd563f-bdb0-4222-aa3d-1aafaba59b82\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:55] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"90bd563f-bdb0-4222-aa3d-1aafaba59b82\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:55] local.INFO: [Calendar] Processing sync {\"calendarId\":\"9e8b1a2c-1a8f-42bd-b161-810fc0baf540\",\"from\":null,\"to\":null,\"delta\":\"R0usmcdvmMuZCBYV0hguCLlvcOB4kXlhlC7KgH1SnZwTrZ3faZv1fXPQqJhxe_L9AxWWlb-wASsjGiiWlhsBUg9MFb3ZdlAYerVV_ZirRPbsKWCxEXhybD90arJmok_M4ecGFUQ9_BIGu-c6RAnJy2TRKZ7gPTsJi_8TGceGAuqimlhm4G4mjDLvYVVwImjjU7M3xJvUzL47dLOGNTJCww.k1TST0VEYCgbFOkwa3ysYMi100FtVfkzfqlXLnV6gPg\",\"last_sync\":\"2026-05-11 06:13:36\",\"dateMode\":\"daily\"} {\"correlation_id\":\"90bd563f-bdb0-4222-aa3d-1aafaba59b82\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:55] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"90bd563f-bdb0-4222-aa3d-1aafaba59b82\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:55] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"90bd563f-bdb0-4222-aa3d-1aafaba59b82\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:55] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"90bd563f-bdb0-4222-aa3d-1aafaba59b82\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:55] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":89,\"team_id\":2} {\"correlation_id\":\"90bd563f-bdb0-4222-aa3d-1aafaba59b82\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:44:55] local.INFO: [MS Office Calendar] Skipping delta sync for daily mode {\"calendarId\":\"9e8b1a2c-1a8f-42bd-b161-810fc0baf540\"} {\"correlation_id\":\"90bd563f-bdb0-4222-aa3d-1aafaba59b82\",\"trace_id\":\"dbc5431b-03a4-4f2e-bbed-8b6d1c1554ef\"}\n[2026-05-11 11:45:14] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"e38cc330-c508-40e3-aae6-4886ac685e84\",\"trace_id\":\"7d3d16ad-2140-4b32-81ed-7d79adbaaa27\"}\n[2026-05-11 11:45:14] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"e38cc330-c508-40e3-aae6-4886ac685e84\",\"trace_id\":\"7d3d16ad-2140-4b32-81ed-7d79adbaaa27\"}\n[2026-05-11 11:45:14] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"e38cc330-c508-40e3-aae6-4886ac685e84\",\"trace_id\":\"7d3d16ad-2140-4b32-81ed-7d79adbaaa27\"}\n[2026-05-11 11:45:21] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"92dd58e9-61aa-4f82-88d3-4a75a2bb37fa\",\"trace_id\":\"3e36a4da-9bba-4512-9b9f-94ec5f45d7fc\"}\n[2026-05-11 11:45:21] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"92dd58e9-61aa-4f82-88d3-4a75a2bb37fa\",\"trace_id\":\"3e36a4da-9bba-4512-9b9f-94ec5f45d7fc\"}\n[2026-05-11 11:45:27] local.NOTICE: Monitoring start {\"correlation_id\":\"663c42a6-b97e-450a-aa0f-d6fef8588b9f\",\"trace_id\":\"850c5ae3-dc61-46d1-b7c4-0488f2ff1915\"}\n[2026-05-11 11:45:27] local.NOTICE: Monitoring end {\"correlation_id\":\"663c42a6-b97e-450a-aa0f-d6fef8588b9f\",\"trace_id\":\"850c5ae3-dc61-46d1-b7c4-0488f2ff1915\"}\n[2026-05-11 11:45:32] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"33fe17ca-a4e0-4873-9491-55e4622fa5c3\",\"trace_id\":\"9d6f0bd9-6599-4086-a97d-ad6d4b1aa9d6\"}\n[2026-05-11 11:45:32] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"33fe17ca-a4e0-4873-9491-55e4622fa5c3\",\"trace_id\":\"9d6f0bd9-6599-4086-a97d-ad6d4b1aa9d6\"}\n[2026-05-11 11:45:41] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"b41595aa-55cf-4c06-8c4f-848c8f357074\",\"trace_id\":\"e209cd3a-b5e8-451c-8b95-0118333fafc3\"}\n[2026-05-11 11:45:41] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"b41595aa-55cf-4c06-8c4f-848c8f357074\",\"trace_id\":\"e209cd3a-b5e8-451c-8b95-0118333fafc3\"}\n[2026-05-11 11:45:41] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"b41595aa-55cf-4c06-8c4f-848c8f357074\",\"trace_id\":\"e209cd3a-b5e8-451c-8b95-0118333fafc3\"}\n[2026-05-11 11:45:41] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"b41595aa-55cf-4c06-8c4f-848c8f357074\",\"trace_id\":\"e209cd3a-b5e8-451c-8b95-0118333fafc3\"}\n[2026-05-11 11:45:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"baa504e2-e879-4ce1-8918-7d0d096d7a0c\",\"trace_id\":\"4642c955-721c-46eb-ae85-71980708bca5\"}\n[2026-05-11 11:45:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"baa504e2-e879-4ce1-8918-7d0d096d7a0c\",\"trace_id\":\"4642c955-721c-46eb-ae85-71980708bca5\"}\n[2026-05-11 11:46:08] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"9aa7b716-b86d-471f-80fb-5c8a86342d9f\",\"trace_id\":\"f2324492-31c2-4bd2-9e85-dedc6316d313\"}\n[2026-05-11 11:46:09] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"9aa7b716-b86d-471f-80fb-5c8a86342d9f\",\"trace_id\":\"f2324492-31c2-4bd2-9e85-dedc6316d313\"}\n[2026-05-11 11:46:14] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"e4daeead-81f8-47c2-845d-8f633b42fa1f\",\"trace_id\":\"88b9994e-1ec0-42f8-b302-e9a78f56dc27\"}\n[2026-05-11 11:46:14] local.INFO: Running pre-meeting notification command {\"correlation_id\":\"e4daeead-81f8-47c2-845d-8f633b42fa1f\",\"trace_id\":\"88b9994e-1ec0-42f8-b302-e9a78f56dc27\"}\n[2026-05-11 11:46:14] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"e4daeead-81f8-47c2-845d-8f633b42fa1f\",\"trace_id\":\"88b9994e-1ec0-42f8-b302-e9a78f56dc27\"}\n[2026-05-11 11:46:19] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"2e51507c-a336-4a6f-8a13-0eec091277f2\",\"trace_id\":\"05c8c900-8947-47e0-a810-f3307a965b01\"}\n[2026-05-11 11:46:19] local.INFO: Running conference:monitor:start command for activities in (2026-05-11 11:36:00, 2026-05-11 11:41:00] {\"correlation_id\":\"2e51507c-a336-4a6f-8a13-0eec091277f2\",\"trace_id\":\"05c8c900-8947-47e0-a810-f3307a965b01\"}\n[2026-05-11 11:46:19] local.INFO: [conference:monitor:start] No activities found in (2026-05-11 11:36:00, 2026-05-11 11:41:00] {\"correlation_id\":\"2e51507c-a336-4a6f-8a13-0eec091277f2\",\"trace_id\":\"05c8c900-8947-47e0-a810-f3307a965b01\"}\n[2026-05-11 11:46:19] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"2e51507c-a336-4a6f-8a13-0eec091277f2\",\"trace_id\":\"05c8c900-8947-47e0-a810-f3307a965b01\"}\n[2026-05-11 11:46:28] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"d9815217-198c-4a8b-bf0b-9964a9dee30a\",\"trace_id\":\"cc9a27b0-4d08-4ef5-931e-ca23eff1fcd1\"}\n[2026-05-11 11:46:28] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesEnded {\"from\":\"11:41\",\"to\":\"11:46\"} {\"correlation_id\":\"d9815217-198c-4a8b-bf0b-9964a9dee30a\",\"trace_id\":\"cc9a27b0-4d08-4ef5-931e-ca23eff1fcd1\"}\n[2026-05-11 11:46:28] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesWithUnfinishedSession {\"from\":\"01:36\",\"to\":\"01:41\"} {\"correlation_id\":\"d9815217-198c-4a8b-bf0b-9964a9dee30a\",\"trace_id\":\"cc9a27b0-4d08-4ef5-931e-ca23eff1fcd1\"}\n[2026-05-11 11:46:28] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"d9815217-198c-4a8b-bf0b-9964a9dee30a\",\"trace_id\":\"cc9a27b0-4d08-4ef5-931e-ca23eff1fcd1\"}\n[2026-05-11 11:46:35] local.NOTICE: Repairing HubSpot tokens start {\"correlation_id\":\"d7252595-d0db-48fc-b018-b6227114d9be\",\"trace_id\":\"a79194f0-69e2-4629-b31c-4adc72e75e32\"}\n[2026-05-11 11:46:35] local.INFO: Trying to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\"} {\"correlation_id\":\"d7252595-d0db-48fc-b018-b6227114d9be\",\"trace_id\":\"a79194f0-69e2-4629-b31c-4adc72e75e32\"}\n[2026-05-11 11:46:35] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d7252595-d0db-48fc-b018-b6227114d9be\",\"trace_id\":\"a79194f0-69e2-4629-b31c-4adc72e75e32\"}\n[2026-05-11 11:46:35] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":59,\"provider\":\"hubspot\",\"refreshToken\":\"97b78f6e2cc49965c00c2492b602b02708b1392551e6b3f113fbaa48992af90b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"d7252595-d0db-48fc-b018-b6227114d9be\",\"trace_id\":\"a79194f0-69e2-4629-b31c-4adc72e75e32\"}\n[2026-05-11 11:46:36] local.ERROR: Failed to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"d7252595-d0db-48fc-b018-b6227114d9be\",\"trace_id\":\"a79194f0-69e2-4629-b31c-4adc72e75e32\"}\n[2026-05-11 11:46:36] local.INFO: Trying to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\"} {\"correlation_id\":\"d7252595-d0db-48fc-b018-b6227114d9be\",\"trace_id\":\"a79194f0-69e2-4629-b31c-4adc72e75e32\"}\n[2026-05-11 11:46:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d7252595-d0db-48fc-b018-b6227114d9be\",\"trace_id\":\"a79194f0-69e2-4629-b31c-4adc72e75e32\"}\n[2026-05-11 11:46:36] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":306,\"provider\":\"hubspot\",\"refreshToken\":\"6fa6aa8cc641d131231acc3470f5c03cb3b07b2e580fb18f8acb3b1dbb72549b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"d7252595-d0db-48fc-b018-b6227114d9be\",\"trace_id\":\"a79194f0-69e2-4629-b31c-4adc72e75e32\"}\n[2026-05-11 11:46:36] local.ERROR: Failed to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"d7252595-d0db-48fc-b018-b6227114d9be\",\"trace_id\":\"a79194f0-69e2-4629-b31c-4adc72e75e32\"}\n[2026-05-11 11:46:36] local.INFO: Trying to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\"} {\"correlation_id\":\"d7252595-d0db-48fc-b018-b6227114d9be\",\"trace_id\":\"a79194f0-69e2-4629-b31c-4adc72e75e32\"}\n[2026-05-11 11:46:36] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d7252595-d0db-48fc-b018-b6227114d9be\",\"trace_id\":\"a79194f0-69e2-4629-b31c-4adc72e75e32\"}\n[2026-05-11 11:46:36] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1372,\"provider\":\"hubspot\",\"refreshToken\":\"9aa73948c761da29dce46c177cf9aee1fde483a44169ca38723f9f0597d7a8c4\",\"state\":\"full-refresh\"} {\"correlation_id\":\"d7252595-d0db-48fc-b018-b6227114d9be\",\"trace_id\":\"a79194f0-69e2-4629-b31c-4adc72e75e32\"}\n[2026-05-11 11:46:37] local.ERROR: Failed to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"d7252595-d0db-48fc-b018-b6227114d9be\",\"trace_id\":\"a79194f0-69e2-4629-b31c-4adc72e75e32\"}\n[2026-05-11 11:46:37] local.NOTICE: Repairing HubSpot tokens end {\"total\":3,\"fixed\":0,\"failed\":3} {\"correlation_id\":\"d7252595-d0db-48fc-b018-b6227114d9be\",\"trace_id\":\"a79194f0-69e2-4629-b31c-4adc72e75e32\"}\n[2026-05-11 11:47:08] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"63c9aa75-5054-47c9-b90b-5153ad65c835\",\"trace_id\":\"1a57fc61-b204-4ea2-9338-b7e464153d01\"}\n[2026-05-11 11:47:08] local.INFO: [HubSpot Journal Command] Starting polling service {\"correlation_id\":\"55d77d79-bb43-40a9-940d-81d127d94c0f\",\"trace_id\":\"bcdaa1b1-0af2-4588-8b9d-058c36d0a02e\"}\n[2026-05-11 11:47:08] local.INFO: [HubSpot Journal Polling] Service starting {\"memory_limit\":\"256M\",\"max_execution_time\":\"0\",\"initial_memory_mb\":60.0} {\"correlation_id\":\"55d77d79-bb43-40a9-940d-81d127d94c0f\",\"trace_id\":\"bcdaa1b1-0af2-4588-8b9d-058c36d0a02e\"}\n[2026-05-11 11:47:08] local.INFO: [HubSpot Journal Polling] Acquired polling lock {\"expires_at\":\"2026-05-11T11:49:08.763532Z\"} {\"correlation_id\":\"55d77d79-bb43-40a9-940d-81d127d94c0f\",\"trace_id\":\"bcdaa1b1-0af2-4588-8b9d-058c36d0a02e\"}\n[2026-05-11 11:47:08] local.INFO: [HubSpot Journal Auth] Requesting new client credentials token {\"correlation_id\":\"55d77d79-bb43-40a9-940d-81d127d94c0f\",\"trace_id\":\"bcdaa1b1-0af2-4588-8b9d-058c36d0a02e\"}\n[2026-05-11 11:47:10] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"63c9aa75-5054-47c9-b90b-5153ad65c835\",\"trace_id\":\"1a57fc61-b204-4ea2-9338-b7e464153d01\"}\n[2026-05-11 11:47:11] local.INFO: [HubSpot Journal Auth] Successfully obtained new access token {\"expires_in\":1800,\"cached_for\":1500} {\"correlation_id\":\"55d77d79-bb43-40a9-940d-81d127d94c0f\",\"trace_id\":\"bcdaa1b1-0af2-4588-8b9d-058c36d0a02e\"}\n[2026-05-11 11:47:11] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"55d77d79-bb43-40a9-940d-81d127d94c0f\",\"trace_id\":\"bcdaa1b1-0af2-4588-8b9d-058c36d0a02e\"}\n[2026-05-11 11:47:16] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"55d77d79-bb43-40a9-940d-81d127d94c0f\",\"trace_id\":\"bcdaa1b1-0af2-4588-8b9d-058c36d0a02e\"}\n[2026-05-11 11:47:20] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"7a451157-281c-400a-871f-0a244fc3a0fc\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:20] local.INFO: Dispatching activity sync job {\"import_id\":812713,\"provider\":\"twilio-flex\",\"team\":\"jiminny\"} {\"correlation_id\":\"7a451157-281c-400a-871f-0a244fc3a0fc\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:20] local.INFO: Dispatching activity sync job {\"import_id\":812714,\"provider\":\"xant\",\"team\":\"jiminny\"} {\"correlation_id\":\"7a451157-281c-400a-871f-0a244fc3a0fc\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:20] local.INFO: Dispatching activity sync job {\"import_id\":812715,\"provider\":\"apollo\",\"team\":\"jiminny\"} {\"correlation_id\":\"7a451157-281c-400a-871f-0a244fc3a0fc\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:20] local.INFO: Dispatching activity sync job {\"import_id\":812716,\"provider\":\"groove\",\"team\":\"jiminny\"} {\"correlation_id\":\"7a451157-281c-400a-871f-0a244fc3a0fc\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:20] local.INFO: Dispatching activity sync job {\"import_id\":812717,\"provider\":\"twilio-video\",\"team\":\"jiminny\"} {\"correlation_id\":\"7a451157-281c-400a-871f-0a244fc3a0fc\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:20] local.INFO: Dispatching activity sync job {\"import_id\":812718,\"provider\":\"hubspot\",\"team\":\"hubspot\"} {\"correlation_id\":\"7a451157-281c-400a-871f-0a244fc3a0fc\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:20] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"7a451157-281c-400a-871f-0a244fc3a0fc\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:22] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"55d77d79-bb43-40a9-940d-81d127d94c0f\",\"trace_id\":\"bcdaa1b1-0af2-4588-8b9d-058c36d0a02e\"}\n[2026-05-11 11:47:23] local.WARNING: [Salesforce] Account not connected for user {\"userId\":\"cdf8b554-d951-4758-bc2b-c1b85d1cd0b9\",\"account\":null} {\"correlation_id\":\"8f6a7583-48c6-4fad-8aa2-396bec4d1ac9\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:23] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"salesforce\",\"crm_owner\":3,\"team_id\":1} {\"correlation_id\":\"8f6a7583-48c6-4fad-8aa2-396bec4d1ac9\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:23] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"salesforce\",\"team_id\":1} {\"correlation_id\":\"8f6a7583-48c6-4fad-8aa2-396bec4d1ac9\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:23] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"salesforce\",\"team_id\":1} {\"correlation_id\":\"8f6a7583-48c6-4fad-8aa2-396bec4d1ac9\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:23] local.ALERT: [SyncActivity] Failed {\"import_id\":812713,\"provider\":\"twilio-flex\",\"provider_id\":317,\"team\":\"jiminny\",\"team_id\":1,\"reason\":\"Social account for Salesforce cannot be found. Please login to Jiminny to connect.\",\"file\":\"/home/jiminny/app/Services/Crm/BaseService.php\",\"line\":646} {\"correlation_id\":\"8f6a7583-48c6-4fad-8aa2-396bec4d1ac9\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:23] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"8701651a-9c9f-43f7-ab16-43fdabb4fe9a\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:23] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"8701651a-9c9f-43f7-ab16-43fdabb4fe9a\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:23] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8701651a-9c9f-43f7-ab16-43fdabb4fe9a\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:25] local.ALERT: [SyncActivity] Failed {\"import_id\":812714,\"provider\":\"xant\",\"provider_id\":161,\"team\":\"jiminny\",\"team_id\":1,\"reason\":\"Activity Provider account not connected.\",\"file\":\"/home/jiminny/app/Services/Activity/ActivityProviderService.php\",\"line\":174} {\"correlation_id\":\"8701651a-9c9f-43f7-ab16-43fdabb4fe9a\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:25] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"fae9a9af-cde4-4223-9c3e-af29f4a77e21\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:25] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"fae9a9af-cde4-4223-9c3e-af29f4a77e21\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:25] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"fae9a9af-cde4-4223-9c3e-af29f4a77e21\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:26] local.ALERT: [SyncActivity] Failed {\"import_id\":812715,\"provider\":\"apollo\",\"provider_id\":441,\"team\":\"jiminny\",\"team_id\":1,\"reason\":\"Activity Provider account not connected.\",\"file\":\"/home/jiminny/app/Services/Activity/ActivityProviderService.php\",\"line\":174} {\"correlation_id\":\"fae9a9af-cde4-4223-9c3e-af29f4a77e21\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:26] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"051769e8-9372-4626-af41-b97aa2087436\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:26] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"051769e8-9372-4626-af41-b97aa2087436\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:26] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"051769e8-9372-4626-af41-b97aa2087436\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:26] local.ALERT: [SyncActivity] Failed {\"import_id\":812716,\"provider\":\"groove\",\"provider_id\":228,\"team\":\"jiminny\",\"team_id\":1,\"reason\":\"Activity Provider account not connected.\",\"file\":\"/home/jiminny/app/Services/Activity/ActivityProviderService.php\",\"line\":174} {\"correlation_id\":\"051769e8-9372-4626-af41-b97aa2087436\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"d90955fe-5897-42e4-903b-9b0aba6554a4\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"d90955fe-5897-42e4-903b-9b0aba6554a4\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d90955fe-5897-42e4-903b-9b0aba6554a4\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:27] local.ALERT: [SyncActivity] Failed {\"import_id\":812717,\"provider\":\"twilio-video\",\"provider_id\":243,\"team\":\"jiminny\",\"team_id\":1,\"reason\":\"Activity Provider account not connected.\",\"file\":\"/home/jiminny/app/Services/Activity/ActivityProviderService.php\",\"line\":174} {\"correlation_id\":\"d90955fe-5897-42e4-903b-9b0aba6554a4\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2cb89553-59d3-4a35-9941-478a398bee15\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"2cb89553-59d3-4a35-9941-478a398bee15\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2cb89553-59d3-4a35-9941-478a398bee15\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:27] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":89,\"team_id\":2} {\"correlation_id\":\"2cb89553-59d3-4a35-9941-478a398bee15\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":408,\"provider\":\"hubspot\"} {\"correlation_id\":\"2cb89553-59d3-4a35-9941-478a398bee15\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":408,\"provider\":\"hubspot\"} {\"correlation_id\":\"2cb89553-59d3-4a35-9941-478a398bee15\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2cb89553-59d3-4a35-9941-478a398bee15\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:27] local.INFO: [SyncActivity] Start {\"import_id\":812718,\"provider\":\"hubspot\",\"provider_id\":31,\"team\":\"hubspot\",\"team_id\":2} {\"correlation_id\":\"2cb89553-59d3-4a35-9941-478a398bee15\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:27] local.INFO: [HubSpot] Search calls for period {\"from\":\"2026-05-11 11:29:00\",\"to\":\"2026-05-11 11:45:00\"} {\"correlation_id\":\"2cb89553-59d3-4a35-9941-478a398bee15\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:28] local.INFO: [SyncActivity] End {\"import_id\":812718,\"provider\":\"hubspot\",\"provider_id\":31,\"team\":\"hubspot\",\"team_id\":2} {\"correlation_id\":\"2cb89553-59d3-4a35-9941-478a398bee15\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:28] local.INFO: [SyncActivity] Memory usage {\"import_id\":812718,\"provider\":\"hubspot\",\"provider_id\":31,\"team\":\"hubspot\",\"team_id\":2,\"memory_usage\":27215288,\"memory_real_usage\":65011712,\"pid\":74086} {\"correlation_id\":\"2cb89553-59d3-4a35-9941-478a398bee15\",\"trace_id\":\"a6a99752-f599-410e-a775-51a9b8fd88ba\"}\n[2026-05-11 11:47:30] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"3e054b8f-07c0-4071-8abb-21684b2bde94\",\"trace_id\":\"8ffdf755-0bf8-44fb-9a3f-6b0ae0f6bd19\"}\n[2026-05-11 11:47:30] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"3e054b8f-07c0-4071-8abb-21684b2bde94\",\"trace_id\":\"8ffdf755-0bf8-44fb-9a3f-6b0ae0f6bd19\"}\n[2026-05-11 11:47:35] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"nudges:send\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"33022db2-def5-4ad3-8403-5d77b37398b6\",\"trace_id\":\"b87f95f5-1a4f-4aa1-9f97-38e0018a8dd0\"}\n[2026-05-11 11:47:35] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"nudges:send\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"33022db2-def5-4ad3-8403-5d77b37398b6\",\"trace_id\":\"b87f95f5-1a4f-4aa1-9f97-38e0018a8dd0\"}\n[2026-05-11 11:47:37] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"55d77d79-bb43-40a9-940d-81d127d94c0f\",\"trace_id\":\"bcdaa1b1-0af2-4588-8b9d-058c36d0a02e\"}\n[2026-05-11 11:47:44] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"jiminny:playlists:normalize-sort\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"033e2297-cd6a-4dae-8867-50537224ae07\",\"trace_id\":\"7b904123-009f-4561-a9eb-ab994d7dcc1b\"}\n[2026-05-11 11:47:44] local.INFO: [Jiminny\\Component\\Playlist\\Command\\NormalizeSortCommand::handle] starting. {\"playlists\":[]} {\"correlation_id\":\"033e2297-cd6a-4dae-8867-50537224ae07\",\"trace_id\":\"7b904123-009f-4561-a9eb-ab994d7dcc1b\"}\n[2026-05-11 11:47:44] local.INFO: [Jiminny\\Component\\Playlist\\Command\\NormalizeSortCommand::handle] finished. {\"normalizedPlaylists\":[],\"deletedPlaylists\":[]} {\"correlation_id\":\"033e2297-cd6a-4dae-8867-50537224ae07\",\"trace_id\":\"7b904123-009f-4561-a9eb-ab994d7dcc1b\"}\n[2026-05-11 11:47:44] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"jiminny:playlists:normalize-sort\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"033e2297-cd6a-4dae-8867-50537224ae07\",\"trace_id\":\"7b904123-009f-4561-a9eb-ab994d7dcc1b\"}\n[2026-05-11 11:48:07] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"55d77d79-bb43-40a9-940d-81d127d94c0f\",\"trace_id\":\"bcdaa1b1-0af2-4588-8b9d-058c36d0a02e\"}\n[2026-05-11 11:48:07] local.WARNING: [HubSpot Journal Polling] Maximum empty results reached, stopping {\"empty_results\":5,\"max_empty_results\":5} {\"correlation_id\":\"55d77d79-bb43-40a9-940d-81d127d94c0f\",\"trace_id\":\"bcdaa1b1-0af2-4588-8b9d-058c36d0a02e\"}\n[2026-05-11 11:48:07] local.WARNING: [HubSpot Journal Polling] Maximum empty results reached, stopping {\"empty_results\":5,\"max_empty_results\":5} {\"correlation_id\":\"55d77d79-bb43-40a9-940d-81d127d94c0f\",\"trace_id\":\"bcdaa1b1-0af2-4588-8b9d-058c36d0a02e\"}\n[2026-05-11 11:48:07] local.INFO: [HubSpot Journal Polling] Service ending {\"runtime_seconds\":59,\"total_cycles\":5,\"files_downloaded\":0,\"empty_files\":0,\"other_portal_skipped\":0,\"total_events\":0,\"events_per_file\":0,\"avg_api_ms\":688.7,\"avg_download_ms\":0.0,\"avg_transform_ms\":0.0,\"avg_process_ms\":0.0,\"peak_memory_mb\":99.73} {\"correlation_id\":\"55d77d79-bb43-40a9-940d-81d127d94c0f\",\"trace_id\":\"bcdaa1b1-0af2-4588-8b9d-058c36d0a02e\"}\n[2026-05-11 11:48:07] local.INFO: [HubSpot Journal Polling] Saved offset to database on cleanup {\"offset\":\"019e15a9-9ea0-7da7-87bc-82592e3ccf0d\"} {\"correlation_id\":\"55d77d79-bb43-40a9-940d-81d127d94c0f\",\"trace_id\":\"bcdaa1b1-0af2-4588-8b9d-058c36d0a02e\"}\n[2026-05-11 11:48:07] local.INFO: [HubSpot Journal Polling] Released polling lock {\"correlation_id\":\"55d77d79-bb43-40a9-940d-81d127d94c0f\",\"trace_id\":\"bcdaa1b1-0af2-4588-8b9d-058c36d0a02e\"}\n[2026-05-11 11:48:27] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a1dfeed7-9d48-4036-a76d-200217298586\",\"trace_id\":\"ea05e5ac-118c-41d6-a8a9-bd374af8202d\"}\n[2026-05-11 11:48:28] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"a1dfeed7-9d48-4036-a76d-200217298586\",\"trace_id\":\"ea05e5ac-118c-41d6-a8a9-bd374af8202d\"}\n[2026-05-11 11:48:28] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a1dfeed7-9d48-4036-a76d-200217298586\",\"trace_id\":\"ea05e5ac-118c-41d6-a8a9-bd374af8202d\"}\n[2026-05-11 11:48:36] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a53fb4ea-1be1-40fb-9c37-a7b259bf1454\",\"trace_id\":\"7479d30f-36c7-40e1-8d87-af8f104f2437\"}\n[2026-05-11 11:48:36] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a53fb4ea-1be1-40fb-9c37-a7b259bf1454\",\"trace_id\":\"7479d30f-36c7-40e1-8d87-af8f104f2437\"}\n[2026-05-11 11:48:45] local.NOTICE: Monitoring start {\"correlation_id\":\"93519b60-0442-45c2-b99a-56b071f58cf2\",\"trace_id\":\"44a33d1f-5133-46df-b737-f9eefbaf7c88\"}\n[2026-05-11 11:48:45] local.NOTICE: Monitoring end {\"correlation_id\":\"93519b60-0442-45c2-b99a-56b071f58cf2\",\"trace_id\":\"44a33d1f-5133-46df-b737-f9eefbaf7c88\"}\n[2026-05-11 11:48:50] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"300727a0-a73d-4de4-a9d7-819ab867f991\",\"trace_id\":\"2252d3c0-1d34-4763-9128-58c12b77fa53\"}\n[2026-05-11 11:48:50] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"300727a0-a73d-4de4-a9d7-819ab867f991\",\"trace_id\":\"2252d3c0-1d34-4763-9128-58c12b77fa53\"}\n[2026-05-11 11:48:57] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"72d684df-1194-4e2d-a4c3-b3a9dad1eb1a\",\"trace_id\":\"2b8f69a9-d506-483a-8ea5-baa2a8a01c55\"}\n[2026-05-11 11:48:57] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"72d684df-1194-4e2d-a4c3-b3a9dad1eb1a\",\"trace_id\":\"2b8f69a9-d506-483a-8ea5-baa2a8a01c55\"}\n[2026-05-11 11:48:57] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"72d684df-1194-4e2d-a4c3-b3a9dad1eb1a\",\"trace_id\":\"2b8f69a9-d506-483a-8ea5-baa2a8a01c55\"}\n[2026-05-11 11:48:57] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"72d684df-1194-4e2d-a4c3-b3a9dad1eb1a\",\"trace_id\":\"2b8f69a9-d506-483a-8ea5-baa2a8a01c55\"}\n[2026-05-11 11:49:05] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"f11b5a06-1a7e-43bf-b3ae-96c96293ef40\",\"trace_id\":\"5cd59384-c100-4485-9874-f8807e7e3df4\"}\n[2026-05-11 11:49:05] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 11:47:00, 2026-05-11 11:49:00] {\"correlation_id\":\"f11b5a06-1a7e-43bf-b3ae-96c96293ef40\",\"trace_id\":\"5cd59384-c100-4485-9874-f8807e7e3df4\"}\n[2026-05-11 11:49:05] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 11:47:00, 2026-05-11 11:49:00] {\"correlation_id\":\"f11b5a06-1a7e-43bf-b3ae-96c96293ef40\",\"trace_id\":\"5cd59384-c100-4485-9874-f8807e7e3df4\"}\n[2026-05-11 11:49:05] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"f11b5a06-1a7e-43bf-b3ae-96c96293ef40\",\"trace_id\":\"5cd59384-c100-4485-9874-f8807e7e3df4\"}\n[2026-05-11 11:49:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"eb074790-b132-477a-b86f-58a83a3522e8\",\"trace_id\":\"53da29a1-501b-4940-ad77-35578829fe8b\"}\n[2026-05-11 11:49:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"eb074790-b132-477a-b86f-58a83a3522e8\",\"trace_id\":\"53da29a1-501b-4940-ad77-35578829fe8b\"}\n[2026-05-11 11:50:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"948b1a87-f11c-4810-856d-88f7ecbc9f62\",\"trace_id\":\"726b7391-0b3b-4874-a900-342de171d282\"}\n[2026-05-11 11:50:12] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"948b1a87-f11c-4810-856d-88f7ecbc9f62\",\"trace_id\":\"726b7391-0b3b-4874-a900-342de171d282\"}\n[2026-05-11 11:50:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"948b1a87-f11c-4810-856d-88f7ecbc9f62\",\"trace_id\":\"726b7391-0b3b-4874-a900-342de171d282\"}\n[2026-05-11 11:50:17] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"1c1ffbf8-a63d-4355-86a4-9ebaf0fb9888\",\"trace_id\":\"893f6a4b-3f1c-4305-b32c-b8841586a2e8\"}\n[2026-05-11 11:50:17] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"1c1ffbf8-a63d-4355-86a4-9ebaf0fb9888\",\"trace_id\":\"893f6a4b-3f1c-4305-b32c-b8841586a2e8\"}\n[2026-05-11 11:50:21] local.NOTICE: Monitoring start {\"correlation_id\":\"d68167e4-72d5-4891-98b2-62563f9d5c56\",\"trace_id\":\"34397c79-70c4-4231-9c85-99520d20fbd9\"}\n[2026-05-11 11:50:21] local.NOTICE: Monitoring end {\"correlation_id\":\"d68167e4-72d5-4891-98b2-62563f9d5c56\",\"trace_id\":\"34397c79-70c4-4231-9c85-99520d20fbd9\"}\n[2026-05-11 11:50:28] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"c82850cb-0f52-43fd-a003-663a3a84ebfc\",\"trace_id\":\"73ca810d-08e4-40c8-b66c-0d5f75d2370f\"}\n[2026-05-11 11:50:28] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"c82850cb-0f52-43fd-a003-663a3a84ebfc\",\"trace_id\":\"73ca810d-08e4-40c8-b66c-0d5f75d2370f\"}\n[2026-05-11 11:50:36] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"0a157432-1be8-4d23-8d59-c0162ce2d34c\",\"trace_id\":\"437bc905-f34e-4409-8ffb-0b0606fe297a\"}\n[2026-05-11 11:50:36] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"0a157432-1be8-4d23-8d59-c0162ce2d34c\",\"trace_id\":\"437bc905-f34e-4409-8ffb-0b0606fe297a\"}\n[2026-05-11 11:50:36] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"0a157432-1be8-4d23-8d59-c0162ce2d34c\",\"trace_id\":\"437bc905-f34e-4409-8ffb-0b0606fe297a\"}\n[2026-05-11 11:50:36] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"0a157432-1be8-4d23-8d59-c0162ce2d34c\",\"trace_id\":\"437bc905-f34e-4409-8ffb-0b0606fe297a\"}\n[2026-05-11 11:50:45] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"64058b5e-eddf-4aa5-87c1-f739b83fa9a2\",\"trace_id\":\"31af6a92-5010-48f1-8064-a00ce23c0137\"}\n[2026-05-11 11:50:45] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 11:48:00, 2026-05-11 11:50:00] {\"correlation_id\":\"64058b5e-eddf-4aa5-87c1-f739b83fa9a2\",\"trace_id\":\"31af6a92-5010-48f1-8064-a00ce23c0137\"}\n[2026-05-11 11:50:45] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 11:48:00, 2026-05-11 11:50:00] {\"correlation_id\":\"64058b5e-eddf-4aa5-87c1-f739b83fa9a2\",\"trace_id\":\"31af6a92-5010-48f1-8064-a00ce23c0137\"}\n[2026-05-11 11:50:45] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"64058b5e-eddf-4aa5-87c1-f739b83fa9a2\",\"trace_id\":\"31af6a92-5010-48f1-8064-a00ce23c0137\"}\n[2026-05-11 11:50:53] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"99b2e202-0a70-4675-892a-4dde6d68e1a4\",\"trace_id\":\"049ee7b4-462b-4ced-bda3-6364e78364e4\"}\n[2026-05-11 11:50:53] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"99b2e202-0a70-4675-892a-4dde6d68e1a4\",\"trace_id\":\"049ee7b4-462b-4ced-bda3-6364e78364e4\"}\n[2026-05-11 11:51:00] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"431e4cfd-4f74-407f-831b-f4c991315d07\",\"trace_id\":\"c4bd1cb5-916e-4e7a-a398-99a20270bf50\"}\n[2026-05-11 11:51:01] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"431e4cfd-4f74-407f-831b-f4c991315d07\",\"trace_id\":\"c4bd1cb5-916e-4e7a-a398-99a20270bf50\"}\n[2026-05-11 11:51:06] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"f998d202-c63e-405a-acc5-6860b64e7338\",\"trace_id\":\"37b6a9e9-6ce9-4656-a648-4da8fe55e995\"}\n[2026-05-11 11:51:06] local.INFO: Running pre-meeting notification command {\"correlation_id\":\"f998d202-c63e-405a-acc5-6860b64e7338\",\"trace_id\":\"37b6a9e9-6ce9-4656-a648-4da8fe55e995\"}\n[2026-05-11 11:51:06] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"f998d202-c63e-405a-acc5-6860b64e7338\",\"trace_id\":\"37b6a9e9-6ce9-4656-a648-4da8fe55e995\"}\n[2026-05-11 11:51:11] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"6123d3aa-f7ef-4864-9612-004c9ba3bb8d\",\"trace_id\":\"3762ceb6-9587-40a9-a6e5-a675c8c77901\"}\n[2026-05-11 11:51:11] local.INFO: Running conference:monitor:start command for activities in (2026-05-11 11:41:00, 2026-05-11 11:46:00] {\"correlation_id\":\"6123d3aa-f7ef-4864-9612-004c9ba3bb8d\",\"trace_id\":\"3762ceb6-9587-40a9-a6e5-a675c8c77901\"}\n[2026-05-11 11:51:11] local.INFO: [conference:monitor:start] No activities found in (2026-05-11 11:41:00, 2026-05-11 11:46:00] {\"correlation_id\":\"6123d3aa-f7ef-4864-9612-004c9ba3bb8d\",\"trace_id\":\"3762ceb6-9587-40a9-a6e5-a675c8c77901\"}\n[2026-05-11 11:51:11] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"6123d3aa-f7ef-4864-9612-004c9ba3bb8d\",\"trace_id\":\"3762ceb6-9587-40a9-a6e5-a675c8c77901\"}\n[2026-05-11 11:51:19] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"be92874d-e8cd-4919-a534-3f5431755d19\",\"trace_id\":\"80813f0f-16c1-48d7-b8b1-d166005d73e4\"}\n[2026-05-11 11:51:19] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesEnded {\"from\":\"11:46\",\"to\":\"11:51\"} {\"correlation_id\":\"be92874d-e8cd-4919-a534-3f5431755d19\",\"trace_id\":\"80813f0f-16c1-48d7-b8b1-d166005d73e4\"}\n[2026-05-11 11:51:20] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesWithUnfinishedSession {\"from\":\"01:41\",\"to\":\"01:46\"} {\"correlation_id\":\"be92874d-e8cd-4919-a534-3f5431755d19\",\"trace_id\":\"80813f0f-16c1-48d7-b8b1-d166005d73e4\"}\n[2026-05-11 11:51:20] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"be92874d-e8cd-4919-a534-3f5431755d19\",\"trace_id\":\"80813f0f-16c1-48d7-b8b1-d166005d73e4\"}\n[2026-05-11 11:51:23] local.NOTICE: Repairing HubSpot tokens start {\"correlation_id\":\"2b3e8d0a-a7b4-4d95-93e4-9e08f74e4937\",\"trace_id\":\"bd3e7ebd-d397-41cc-b2a0-703b4cf963eb\"}\n[2026-05-11 11:51:23] local.INFO: Trying to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\"} {\"correlation_id\":\"2b3e8d0a-a7b4-4d95-93e4-9e08f74e4937\",\"trace_id\":\"bd3e7ebd-d397-41cc-b2a0-703b4cf963eb\"}\n[2026-05-11 11:51:23] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2b3e8d0a-a7b4-4d95-93e4-9e08f74e4937\",\"trace_id\":\"bd3e7ebd-d397-41cc-b2a0-703b4cf963eb\"}\n[2026-05-11 11:51:23] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":59,\"provider\":\"hubspot\",\"refreshToken\":\"97b78f6e2cc49965c00c2492b602b02708b1392551e6b3f113fbaa48992af90b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"2b3e8d0a-a7b4-4d95-93e4-9e08f74e4937\",\"trace_id\":\"bd3e7ebd-d397-41cc-b2a0-703b4cf963eb\"}\n[2026-05-11 11:51:24] local.ERROR: Failed to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"2b3e8d0a-a7b4-4d95-93e4-9e08f74e4937\",\"trace_id\":\"bd3e7ebd-d397-41cc-b2a0-703b4cf963eb\"}\n[2026-05-11 11:51:24] local.INFO: Trying to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\"} {\"correlation_id\":\"2b3e8d0a-a7b4-4d95-93e4-9e08f74e4937\",\"trace_id\":\"bd3e7ebd-d397-41cc-b2a0-703b4cf963eb\"}\n[2026-05-11 11:51:24] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2b3e8d0a-a7b4-4d95-93e4-9e08f74e4937\",\"trace_id\":\"bd3e7ebd-d397-41cc-b2a0-703b4cf963eb\"}\n[2026-05-11 11:51:24] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":306,\"provider\":\"hubspot\",\"refreshToken\":\"6fa6aa8cc641d131231acc3470f5c03cb3b07b2e580fb18f8acb3b1dbb72549b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"2b3e8d0a-a7b4-4d95-93e4-9e08f74e4937\",\"trace_id\":\"bd3e7ebd-d397-41cc-b2a0-703b4cf963eb\"}\n[2026-05-11 11:51:24] local.ERROR: Failed to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"2b3e8d0a-a7b4-4d95-93e4-9e08f74e4937\",\"trace_id\":\"bd3e7ebd-d397-41cc-b2a0-703b4cf963eb\"}\n[2026-05-11 11:51:24] local.INFO: Trying to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\"} {\"correlation_id\":\"2b3e8d0a-a7b4-4d95-93e4-9e08f74e4937\",\"trace_id\":\"bd3e7ebd-d397-41cc-b2a0-703b4cf963eb\"}\n[2026-05-11 11:51:24] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"2b3e8d0a-a7b4-4d95-93e4-9e08f74e4937\",\"trace_id\":\"bd3e7ebd-d397-41cc-b2a0-703b4cf963eb\"}\n[2026-05-11 11:51:24] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1372,\"provider\":\"hubspot\",\"refreshToken\":\"9aa73948c761da29dce46c177cf9aee1fde483a44169ca38723f9f0597d7a8c4\",\"state\":\"full-refresh\"} {\"correlation_id\":\"2b3e8d0a-a7b4-4d95-93e4-9e08f74e4937\",\"trace_id\":\"bd3e7ebd-d397-41cc-b2a0-703b4cf963eb\"}\n[2026-05-11 11:51:25] local.ERROR: Failed to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"2b3e8d0a-a7b4-4d95-93e4-9e08f74e4937\",\"trace_id\":\"bd3e7ebd-d397-41cc-b2a0-703b4cf963eb\"}\n[2026-05-11 11:51:25] local.NOTICE: Repairing HubSpot tokens end {\"total\":3,\"fixed\":0,\"failed\":3} {\"correlation_id\":\"2b3e8d0a-a7b4-4d95-93e4-9e08f74e4937\",\"trace_id\":\"bd3e7ebd-d397-41cc-b2a0-703b4cf963eb\"}\n[2026-05-11 11:51:38] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"d35eda20-ab1d-4412-a5f1-870191e525e0\",\"trace_id\":\"55e96dc7-35b2-41c5-9a6a-2f2a57b7ec40\"}\n[2026-05-11 11:51:38] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"jiminny:transcription:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"eb8a511e-068c-45af-b635-ac8825209435\",\"trace_id\":\"f8b214b0-22a9-438c-b4dd-292b2f7d2f6f\"}\n[2026-05-11 11:51:38] local.INFO: [HubSpot Journal Command] Starting polling service {\"correlation_id\":\"a75ee2d8-c0bd-4a6c-bcf6-1d22861c4e5b\",\"trace_id\":\"c7feca3b-ca5e-4d0a-ae3e-862b35f1f9c7\"}\n[2026-05-11 11:51:38] local.INFO: [HubSpot Journal Polling] Service starting {\"memory_limit\":\"256M\",\"max_execution_time\":\"0\",\"initial_memory_mb\":60.0} {\"correlation_id\":\"a75ee2d8-c0bd-4a6c-bcf6-1d22861c4e5b\",\"trace_id\":\"c7feca3b-ca5e-4d0a-ae3e-862b35f1f9c7\"}\n[2026-05-11 11:51:38] local.INFO: [HubSpot Journal Polling] Acquired polling lock {\"expires_at\":\"2026-05-11T11:53:38.779331Z\"} {\"correlation_id\":\"a75ee2d8-c0bd-4a6c-bcf6-1d22861c4e5b\",\"trace_id\":\"c7feca3b-ca5e-4d0a-ae3e-862b35f1f9c7\"}\n[2026-05-11 11:51:39] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"jiminny:transcription:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"eb8a511e-068c-45af-b635-ac8825209435\",\"trace_id\":\"f8b214b0-22a9-438c-b4dd-292b2f7d2f6f\"}\n[2026-05-11 11:51:39] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"d35eda20-ab1d-4412-a5f1-870191e525e0\",\"trace_id\":\"55e96dc7-35b2-41c5-9a6a-2f2a57b7ec40\"}\n[2026-05-11 11:51:39] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"a75ee2d8-c0bd-4a6c-bcf6-1d22861c4e5b\",\"trace_id\":\"c7feca3b-ca5e-4d0a-ae3e-862b35f1f9c7\"}\n[2026-05-11 11:51:44] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"a75ee2d8-c0bd-4a6c-bcf6-1d22861c4e5b\",\"trace_id\":\"c7feca3b-ca5e-4d0a-ae3e-862b35f1f9c7\"}\n[2026-05-11 11:51:50] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"a75ee2d8-c0bd-4a6c-bcf6-1d22861c4e5b\",\"trace_id\":\"c7feca3b-ca5e-4d0a-ae3e-862b35f1f9c7\"}\n[2026-05-11 11:51:52] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:reset-governor\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"473b59f1-3db0-46a9-b1eb-4f231b9b4683\",\"trace_id\":\"8f56faf2-0cc2-4634-a1a5-fa1aa09f09ae\"}\n[2026-05-11 11:51:53] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:reset-governor\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"473b59f1-3db0-46a9-b1eb-4f231b9b4683\",\"trace_id\":\"8f56faf2-0cc2-4634-a1a5-fa1aa09f09ae\"}\n[2026-05-11 11:51:58] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"b067fcea-7b12-47e2-96b7-debd8c85854b\",\"trace_id\":\"8736db6b-7fb2-4229-86ca-d5f66b016c94\"}\n[2026-05-11 11:51:58] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"b067fcea-7b12-47e2-96b7-debd8c85854b\",\"trace_id\":\"8736db6b-7fb2-4229-86ca-d5f66b016c94\"}\n[2026-05-11 11:52:05] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"a75ee2d8-c0bd-4a6c-bcf6-1d22861c4e5b\",\"trace_id\":\"c7feca3b-ca5e-4d0a-ae3e-862b35f1f9c7\"}\n[2026-05-11 11:52:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"ccc7883a-47a5-4451-86a9-ae6ab6012158\",\"trace_id\":\"a1397d4c-59cf-4fc6-9d64-30d03438dbc3\"}\n[2026-05-11 11:52:15] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"ccc7883a-47a5-4451-86a9-ae6ab6012158\",\"trace_id\":\"a1397d4c-59cf-4fc6-9d64-30d03438dbc3\"}\n[2026-05-11 11:52:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"ccc7883a-47a5-4451-86a9-ae6ab6012158\",\"trace_id\":\"a1397d4c-59cf-4fc6-9d64-30d03438dbc3\"}\n[2026-05-11 11:52:29] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"3a5002c8-53b1-4eef-9bf0-fffd89a452bc\",\"trace_id\":\"c9caa5c7-fb4d-4f62-ad23-9159676d207f\"}\n[2026-05-11 11:52:29] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"3a5002c8-53b1-4eef-9bf0-fffd89a452bc\",\"trace_id\":\"c9caa5c7-fb4d-4f62-ad23-9159676d207f\"}\n[2026-05-11 11:52:35] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"a75ee2d8-c0bd-4a6c-bcf6-1d22861c4e5b\",\"trace_id\":\"c7feca3b-ca5e-4d0a-ae3e-862b35f1f9c7\"}\n[2026-05-11 11:52:35] local.WARNING: [HubSpot Journal Polling] Maximum empty results reached, stopping {\"empty_results\":5,\"max_empty_results\":5} {\"correlation_id\":\"a75ee2d8-c0bd-4a6c-bcf6-1d22861c4e5b\",\"trace_id\":\"c7feca3b-ca5e-4d0a-ae3e-862b35f1f9c7\"}\n[2026-05-11 11:52:35] local.WARNING: [HubSpot Journal Polling] Maximum empty results reached, stopping {\"empty_results\":5,\"max_empty_results\":5} {\"correlation_id\":\"a75ee2d8-c0bd-4a6c-bcf6-1d22861c4e5b\",\"trace_id\":\"c7feca3b-ca5e-4d0a-ae3e-862b35f1f9c7\"}\n[2026-05-11 11:52:36] local.INFO: [HubSpot Journal Polling] Service ending {\"runtime_seconds\":58,\"total_cycles\":5,\"files_downloaded\":0,\"empty_files\":0,\"other_portal_skipped\":0,\"total_events\":0,\"events_per_file\":0,\"avg_api_ms\":284.0,\"avg_download_ms\":0.0,\"avg_transform_ms\":0.0,\"avg_process_ms\":0.0,\"peak_memory_mb\":99.73} {\"correlation_id\":\"a75ee2d8-c0bd-4a6c-bcf6-1d22861c4e5b\",\"trace_id\":\"c7feca3b-ca5e-4d0a-ae3e-862b35f1f9c7\"}\n[2026-05-11 11:52:36] local.INFO: [HubSpot Journal Polling] Saved offset to database on cleanup {\"offset\":\"019e15a9-9ea0-7da7-87bc-82592e3ccf0d\"} {\"correlation_id\":\"a75ee2d8-c0bd-4a6c-bcf6-1d22861c4e5b\",\"trace_id\":\"c7feca3b-ca5e-4d0a-ae3e-862b35f1f9c7\"}\n[2026-05-11 11:52:36] local.INFO: [HubSpot Journal Polling] Released polling lock {\"correlation_id\":\"a75ee2d8-c0bd-4a6c-bcf6-1d22861c4e5b\",\"trace_id\":\"c7feca3b-ca5e-4d0a-ae3e-862b35f1f9c7\"}\n[2026-05-11 11:52:40] local.NOTICE: Monitoring start {\"correlation_id\":\"41f4032c-b800-4605-8e4f-cc2b2a236dd8\",\"trace_id\":\"5eead9ab-785a-45b5-b164-792552ed7d5e\"}\n[2026-05-11 11:52:40] local.NOTICE: Monitoring end {\"correlation_id\":\"41f4032c-b800-4605-8e4f-cc2b2a236dd8\",\"trace_id\":\"5eead9ab-785a-45b5-b164-792552ed7d5e\"}\n[2026-05-11 11:52:51] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"919137f6-4bd2-4b7f-9543-7dbb51d37225\",\"trace_id\":\"63a03498-5bfe-44f7-bfd6-39f5fe9cb446\"}\n[2026-05-11 11:52:51] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"919137f6-4bd2-4b7f-9543-7dbb51d37225\",\"trace_id\":\"63a03498-5bfe-44f7-bfd6-39f5fe9cb446\"}\n[2026-05-11 11:52:56] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"80abb28b-1ae5-4ddf-b3a0-29dd7b518b3d\",\"trace_id\":\"8f380427-1917-4899-9f48-5278a351b6bc\"}\n[2026-05-11 11:52:56] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"80abb28b-1ae5-4ddf-b3a0-29dd7b518b3d\",\"trace_id\":\"8f380427-1917-4899-9f48-5278a351b6bc\"}\n[2026-05-11 11:52:56] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"80abb28b-1ae5-4ddf-b3a0-29dd7b518b3d\",\"trace_id\":\"8f380427-1917-4899-9f48-5278a351b6bc\"}\n[2026-05-11 11:52:56] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"80abb28b-1ae5-4ddf-b3a0-29dd7b518b3d\",\"trace_id\":\"8f380427-1917-4899-9f48-5278a351b6bc\"}\n[2026-05-11 11:53:01] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"0551462f-4c73-42cc-aef2-4148444e9968\",\"trace_id\":\"f51275fa-b671-4b4b-8804-186bc54d1c8b\"}\n[2026-05-11 11:53:01] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 11:51:00, 2026-05-11 11:53:00] {\"correlation_id\":\"0551462f-4c73-42cc-aef2-4148444e9968\",\"trace_id\":\"f51275fa-b671-4b4b-8804-186bc54d1c8b\"}\n[2026-05-11 11:53:01] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 11:51:00, 2026-05-11 11:53:00] {\"correlation_id\":\"0551462f-4c73-42cc-aef2-4148444e9968\",\"trace_id\":\"f51275fa-b671-4b4b-8804-186bc54d1c8b\"}\n[2026-05-11 11:53:01] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"0551462f-4c73-42cc-aef2-4148444e9968\",\"trace_id\":\"f51275fa-b671-4b4b-8804-186bc54d1c8b\"}\n[2026-05-11 11:53:10] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"9da60bcb-f79b-4649-b92a-d99ca12f84f0\",\"trace_id\":\"748948b9-ac41-4a57-bd03-1d5e2c618890\"}\n[2026-05-11 11:53:10] local.INFO: [EmailSchedule] STARTING batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"9da60bcb-f79b-4649-b92a-d99ca12f84f0\",\"trace_id\":\"748948b9-ac41-4a57-bd03-1d5e2c618890\"}\n[2026-05-11 11:53:10] local.INFO: [EmailSchedule] FINISHED batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"9da60bcb-f79b-4649-b92a-d99ca12f84f0\",\"trace_id\":\"748948b9-ac41-4a57-bd03-1d5e2c618890\"}\n[2026-05-11 11:53:10] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"9da60bcb-f79b-4649-b92a-d99ca12f84f0\",\"trace_id\":\"748948b9-ac41-4a57-bd03-1d5e2c618890\"}\n[2026-05-11 11:53:12] local.INFO: [Jiminny\\Jobs\\Mailbox\\CreateBatches] processed 2 inboxes and created 0 batches {\"userId\":null,\"batchSize\":30,\"maxBatches\":1000} {\"correlation_id\":\"1f16ecff-92c2-46ac-9f10-80231fcc8d49\",\"trace_id\":\"748948b9-ac41-4a57-bd03-1d5e2c618890\"}\n[2026-05-11 11:53:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"372e28c3-dc3b-43cf-955b-5fae52524648\",\"trace_id\":\"35c6bc36-3f59-4b8e-8ba6-30a6455a0115\"}\n[2026-05-11 11:53:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"372e28c3-dc3b-43cf-955b-5fae52524648\",\"trace_id\":\"35c6bc36-3f59-4b8e-8ba6-30a6455a0115\"}\n[2026-05-11 11:54:09] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a04ad212-85fa-40a8-95c6-f908e7ad2b5a\",\"trace_id\":\"055e7151-279c-4557-913a-fec6454c8d25\"}\n[2026-05-11 11:54:09] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"a04ad212-85fa-40a8-95c6-f908e7ad2b5a\",\"trace_id\":\"055e7151-279c-4557-913a-fec6454c8d25\"}\n[2026-05-11 11:54:09] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a04ad212-85fa-40a8-95c6-f908e7ad2b5a\",\"trace_id\":\"055e7151-279c-4557-913a-fec6454c8d25\"}\n[2026-05-11 11:54:14] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"74a6757b-1136-490a-b1fd-ad8809453847\",\"trace_id\":\"58060cde-a95a-4cc1-bd60-18ffcb3ec911\"}\n[2026-05-11 11:54:14] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"74a6757b-1136-490a-b1fd-ad8809453847\",\"trace_id\":\"58060cde-a95a-4cc1-bd60-18ffcb3ec911\"}\n[2026-05-11 11:54:17] local.NOTICE: Monitoring start {\"correlation_id\":\"aa3f450c-3713-4244-a75a-b99412ebf8a1\",\"trace_id\":\"7a5ba32d-498d-4c7e-97a0-0446c1207147\"}\n[2026-05-11 11:54:17] local.NOTICE: Monitoring end {\"correlation_id\":\"aa3f450c-3713-4244-a75a-b99412ebf8a1\",\"trace_id\":\"7a5ba32d-498d-4c7e-97a0-0446c1207147\"}\n[2026-05-11 11:54:27] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"7006cf20-a853-42e7-b446-f41a7553e59c\",\"trace_id\":\"a7255ec0-f5e4-43c5-b553-3e451503e9fc\"}\n[2026-05-11 11:54:27] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"7006cf20-a853-42e7-b446-f41a7553e59c\",\"trace_id\":\"a7255ec0-f5e4-43c5-b553-3e451503e9fc\"}\n[2026-05-11 11:54:37] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"65bf742a-ee36-4468-84b6-9f0ae8ca1ff0\",\"trace_id\":\"437f8439-cbaa-4c2b-8530-c3f7bd465f5f\"}\n[2026-05-11 11:54:37] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"65bf742a-ee36-4468-84b6-9f0ae8ca1ff0\",\"trace_id\":\"437f8439-cbaa-4c2b-8530-c3f7bd465f5f\"}\n[2026-05-11 11:54:37] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"65bf742a-ee36-4468-84b6-9f0ae8ca1ff0\",\"trace_id\":\"437f8439-cbaa-4c2b-8530-c3f7bd465f5f\"}\n[2026-05-11 11:54:37] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"65bf742a-ee36-4468-84b6-9f0ae8ca1ff0\",\"trace_id\":\"437f8439-cbaa-4c2b-8530-c3f7bd465f5f\"}\n[2026-05-11 11:54:43] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"0542c01b-860d-44be-a510-390ccaae53c0\",\"trace_id\":\"fcda0b7b-e07a-4968-8455-9128c1a76c71\"}\n[2026-05-11 11:54:43] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 11:52:00, 2026-05-11 11:54:00] {\"correlation_id\":\"0542c01b-860d-44be-a510-390ccaae53c0\",\"trace_id\":\"fcda0b7b-e07a-4968-8455-9128c1a76c71\"}\n[2026-05-11 11:54:43] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 11:52:00, 2026-05-11 11:54:00] {\"correlation_id\":\"0542c01b-860d-44be-a510-390ccaae53c0\",\"trace_id\":\"fcda0b7b-e07a-4968-8455-9128c1a76c71\"}\n[2026-05-11 11:54:43] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"0542c01b-860d-44be-a510-390ccaae53c0\",\"trace_id\":\"fcda0b7b-e07a-4968-8455-9128c1a76c71\"}\n[2026-05-11 11:54:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:aircall:check-and-renew\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"5b87a7f5-f19a-4462-bcc2-ead15cf51c91\",\"trace_id\":\"668da8d9-e001-4b9d-ba52-fd4c35dbb12f\"}\n[2026-05-11 11:54:49] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1496,\"provider\":\"aircall\"} {\"correlation_id\":\"5b87a7f5-f19a-4462-bcc2-ead15cf51c91\",\"trace_id\":\"668da8d9-e001-4b9d-ba52-fd4c35dbb12f\"}\n[2026-05-11 11:54:49] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1496,\"provider\":\"aircall\"} {\"correlation_id\":\"5b87a7f5-f19a-4462-bcc2-ead15cf51c91\",\"trace_id\":\"668da8d9-e001-4b9d-ba52-fd4c35dbb12f\"}\n[2026-05-11 11:54:49] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"5b87a7f5-f19a-4462-bcc2-ead15cf51c91\",\"trace_id\":\"668da8d9-e001-4b9d-ba52-fd4c35dbb12f\"}\n[2026-05-11 11:54:50] local.ERROR: [Aircall] Re-activating webhooks failed {\"team_id\":1,\"reason\":\"{\\\"message\\\":\\\"Forbidden\\\"}\"} {\"correlation_id\":\"5b87a7f5-f19a-4462-bcc2-ead15cf51c91\",\"trace_id\":\"668da8d9-e001-4b9d-ba52-fd4c35dbb12f\"}\n[2026-05-11 11:54:50] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:aircall:check-and-renew\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"5b87a7f5-f19a-4462-bcc2-ead15cf51c91\",\"trace_id\":\"668da8d9-e001-4b9d-ba52-fd4c35dbb12f\"}\n[2026-05-11 11:55:00] local.INFO: [RetryFailedDownloads] Starting {\"options\":{\"from\":null,\"to\":null,\"help\":false,\"silent\":false,\"quiet\":false,\"verbose\":false,\"version\":false,\"ansi\":null,\"no-interaction\":false,\"env\":null}} {\"correlation_id\":\"0686e366-cdc8-491c-aed7-62c0de9ab173\",\"trace_id\":\"abd378bf-f11b-4d85-9ce2-61a7440daf0a\"}\n[2026-05-11 11:56:09] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"5b653383-846c-49e8-9ccf-2d5eacbf9952\",\"trace_id\":\"c3550546-1e58-4ca7-8796-1e0125f39e82\"}\n[2026-05-11 11:56:09] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"5b653383-846c-49e8-9ccf-2d5eacbf9952\",\"trace_id\":\"c3550546-1e58-4ca7-8796-1e0125f39e82\"}\n[2026-05-11 11:56:09] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"5b653383-846c-49e8-9ccf-2d5eacbf9952\",\"trace_id\":\"c3550546-1e58-4ca7-8796-1e0125f39e82\"}\n[2026-05-11 11:56:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"2f166d72-fbae-48eb-b27e-0287769d662c\",\"trace_id\":\"770bc4fe-999d-4602-b909-b6617892800b\"}\n[2026-05-11 11:56:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"2f166d72-fbae-48eb-b27e-0287769d662c\",\"trace_id\":\"770bc4fe-999d-4602-b909-b6617892800b\"}\n[2026-05-11 11:56:15] local.NOTICE: Monitoring start {\"correlation_id\":\"5753ad28-7d1b-4cfc-9b05-46eee7c4fa5a\",\"trace_id\":\"69b37dcd-0265-4dbd-8741-d63ce1bda1d1\"}\n[2026-05-11 11:56:15] local.NOTICE: Monitoring end {\"correlation_id\":\"5753ad28-7d1b-4cfc-9b05-46eee7c4fa5a\",\"trace_id\":\"69b37dcd-0265-4dbd-8741-d63ce1bda1d1\"}\n[2026-05-11 11:56:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"1beb4554-6ea0-48dd-8fdb-40508aea8667\",\"trace_id\":\"259709ec-e8eb-44ef-ad15-e5bf15e18bdb\"}\n[2026-05-11 11:56:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"1beb4554-6ea0-48dd-8fdb-40508aea8667\",\"trace_id\":\"259709ec-e8eb-44ef-ad15-e5bf15e18bdb\"}\n[2026-05-11 11:56:26] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"930c88ad-edf5-4502-b37e-89d10cbb7ba3\",\"trace_id\":\"e6d21b9f-a6c4-4839-9bbb-927847a41030\"}\n[2026-05-11 11:56:26] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"930c88ad-edf5-4502-b37e-89d10cbb7ba3\",\"trace_id\":\"e6d21b9f-a6c4-4839-9bbb-927847a41030\"}\n[2026-05-11 11:56:26] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"930c88ad-edf5-4502-b37e-89d10cbb7ba3\",\"trace_id\":\"e6d21b9f-a6c4-4839-9bbb-927847a41030\"}\n[2026-05-11 11:56:26] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"930c88ad-edf5-4502-b37e-89d10cbb7ba3\",\"trace_id\":\"e6d21b9f-a6c4-4839-9bbb-927847a41030\"}\n[2026-05-11 11:56:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"4d20277f-2f58-497f-bfc6-c6416e9cc762\",\"trace_id\":\"503013b4-56c3-4311-afd2-eebe508cfae6\"}\n[2026-05-11 11:56:31] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 11:54:00, 2026-05-11 11:56:00] {\"correlation_id\":\"4d20277f-2f58-497f-bfc6-c6416e9cc762\",\"trace_id\":\"503013b4-56c3-4311-afd2-eebe508cfae6\"}\n[2026-05-11 11:56:31] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 11:54:00, 2026-05-11 11:56:00] {\"correlation_id\":\"4d20277f-2f58-497f-bfc6-c6416e9cc762\",\"trace_id\":\"503013b4-56c3-4311-afd2-eebe508cfae6\"}\n[2026-05-11 11:56:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"4d20277f-2f58-497f-bfc6-c6416e9cc762\",\"trace_id\":\"503013b4-56c3-4311-afd2-eebe508cfae6\"}\n[2026-05-11 11:56:43] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:sync-hubspot-objects\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"2182f167-944c-4976-9801-8df548dd8b85\",\"trace_id\":\"d37e14ee-1171-42f2-baf8-8c5fbe1be82d\"}\n[2026-05-11 11:56:43] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:sync-hubspot-objects\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"2182f167-944c-4976-9801-8df548dd8b85\",\"trace_id\":\"d37e14ee-1171-42f2-baf8-8c5fbe1be82d\"}\n[2026-05-11 11:56:44] local.INFO: [SyncHubspotObjects] Starting sync {\"team\":\"abae74b8-bfa8-4383-9a7f-89f4bf2bdbb4\",\"usage\":23388864,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"4bc5d10a-34ba-495c-8648-2ffbb89e3dac\",\"trace_id\":\"d37e14ee-1171-42f2-baf8-8c5fbe1be82d\"}\n[2026-05-11 11:56:44] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4bc5d10a-34ba-495c-8648-2ffbb89e3dac\",\"trace_id\":\"d37e14ee-1171-42f2-baf8-8c5fbe1be82d\"}\n[2026-05-11 11:56:44] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4bc5d10a-34ba-495c-8648-2ffbb89e3dac\",\"trace_id\":\"d37e14ee-1171-42f2-baf8-8c5fbe1be82d\"}\n[2026-05-11 11:56:44] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4bc5d10a-34ba-495c-8648-2ffbb89e3dac\",\"trace_id\":\"d37e14ee-1171-42f2-baf8-8c5fbe1be82d\"}\n[2026-05-11 11:56:44] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1499,\"provider\":\"hubspot\",\"refreshToken\":\"96f94c623a404e02ebdbf07f1b75707bb6cdbf848cbf45d418baf608c41a8d86\",\"state\":\"connected\"} {\"correlation_id\":\"4bc5d10a-34ba-495c-8648-2ffbb89e3dac\",\"trace_id\":\"d37e14ee-1171-42f2-baf8-8c5fbe1be82d\"}\n[2026-05-11 11:56:45] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"4bc5d10a-34ba-495c-8648-2ffbb89e3dac\",\"trace_id\":\"d37e14ee-1171-42f2-baf8-8c5fbe1be82d\"}\n[2026-05-11 11:56:45] local.INFO: [SocialAccountObserver] Access token was modified, encrypting {\"correlation_id\":\"4bc5d10a-34ba-495c-8648-2ffbb89e3dac\",\"trace_id\":\"d37e14ee-1171-42f2-baf8-8c5fbe1be82d\"}\n[2026-05-11 11:56:46] local.INFO: [SocialAccountService] Token refreshed {\"socialAccountId\":1499,\"provider\":\"hubspot\",\"state\":\"connected\"} {\"correlation_id\":\"4bc5d10a-34ba-495c-8648-2ffbb89e3dac\",\"trace_id\":\"d37e14ee-1171-42f2-baf8-8c5fbe1be82d\"}\n[2026-05-11 11:56:46] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"4bc5d10a-34ba-495c-8648-2ffbb89e3dac\",\"trace_id\":\"d37e14ee-1171-42f2-baf8-8c5fbe1be82d\"}\n[2026-05-11 11:56:46] local.INFO: [HubSpot] Syncing opportunities using strategy: lastModified {\"team\":2} {\"correlation_id\":\"4bc5d10a-34ba-495c-8648-2ffbb89e3dac\",\"trace_id\":\"d37e14ee-1171-42f2-baf8-8c5fbe1be82d\"}\n[2026-05-11 11:56:46] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.35,\"average_seconds_per_request\":0.35} {\"correlation_id\":\"4bc5d10a-34ba-495c-8648-2ffbb89e3dac\",\"trace_id\":\"d37e14ee-1171-42f2-baf8-8c5fbe1be82d\"}\n[2026-05-11 11:56:46] local.INFO: [HubSpot] Synced opportunities {\"team\":2,\"strategies\":\"lastModified\",\"sync_count\":0,\"total\":0,\"last_synced_id\":null,\"duration_ms\":373.48} {\"correlation_id\":\"4bc5d10a-34ba-495c-8648-2ffbb89e3dac\",\"trace_id\":\"d37e14ee-1171-42f2-baf8-8c5fbe1be82d\"}\n[2026-05-11 11:56:47] local.INFO: [SyncHubspotObjects] Sync finished {\"team\":\"abae74b8-bfa8-4383-9a7f-89f4bf2bdbb4\",\"provider\":\"hubspot\",\"status\":\"completed\",\"duration_ms\":2612.71,\"usage\":23729856,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"4bc5d10a-34ba-495c-8648-2ffbb89e3dac\",\"trace_id\":\"d37e14ee-1171-42f2-baf8-8c5fbe1be82d\"}\n[2026-05-11 11:56:47] local.INFO: [SyncHubspotObjects] Starting sync {\"team\":\"b2b115eb-93ce-4d1b-929c-173757df8fba\",\"usage\":23770424,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"625d9e06-edae-40fc-b0e7-2acc36ebbc92\",\"trace_id\":\"d37e14ee-1171-42f2-baf8-8c5fbe1be82d\"}\n[2026-05-11 11:56:47] local.WARNING: [HubSpot] Account not connected for user {\"userId\":\"33e34a7a-1c02-4f04-87ac-22c3a385e6e3\",\"account\":{\"Jiminny\\\\Models\\\\SocialAccount\":{\"id\":306,\"sociable_id\":109,\"provider_user_id\":\"11348452\",\"expires\":1701077403,\"refresh_token_expires\":null,\"provider\":\"hubspot\",\"state\":\"full-refresh\",\"auth_scope\":null,\"retry_after\":null,\"created_at\":\"2020-09-01 16:59:04\",\"updated_at\":\"2023-11-27 09:30:03\"}}} {\"correlation_id\":\"625d9e06-edae-40fc-b0e7-2acc36ebbc92\",\"trace_id\":\"d37e14ee-1171-42f2-baf8-8c5fbe1be82d\"}\n[2026-05-11 11:56:47] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"hubspot\",\"crm_owner\":109,\"team_id\":29} {\"correlation_id\":\"625d9e06-edae-40fc-b0e7-2acc36ebbc92\",\"trace_id\":\"d37e14ee-1171-42f2-baf8-8c5fbe1be82d\"}\n[2026-05-11 11:56:47] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":29} {\"correlation_id\":\"625d9e06-edae-40fc-b0e7-2acc36ebbc92\",\"trace_id\":\"d37e14ee-1171-42f2-baf8-8c5fbe1be82d\"}\n[2026-05-11 11:56:47] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":29} {\"correlation_id\":\"625d9e06-edae-40fc-b0e7-2acc36ebbc92\",\"trace_id\":\"d37e14ee-1171-42f2-baf8-8c5fbe1be82d\"}\n[2026-05-11 11:56:47] local.INFO: [SyncHubspotObjects] Sync finished {\"team\":\"b2b115eb-93ce-4d1b-929c-173757df8fba\",\"provider\":\"hubspot\",\"status\":\"disconnected\",\"duration_ms\":78.69,\"usage\":23770720,\"real_usage\":62914560,\"pid\":74083,\"reason\":\"Your HubSpot account has become disconnected. Please login to Jiminny to reconnect.\"} {\"correlation_id\":\"625d9e06-edae-40fc-b0e7-2acc36ebbc92\",\"trace_id\":\"d37e14ee-1171-42f2-baf8-8c5fbe1be82d\"}\n[2026-05-11 11:56:47] local.INFO: [SyncHubspotObjects] Starting sync {\"team\":\"b2d49a54-b645-4637-a7ae-a86cfce6e8e4\",\"usage\":23728224,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"12a5c71f-9483-447e-b21e-626fc744f233\",\"trace_id\":\"d37e14ee-1171-42f2-baf8-8c5fbe1be82d\"}\n[2026-05-11 11:56:47] local.WARNING: [HubSpot] Account not connected for user {\"userId\":\"2ac0447f-3c8c-4ce0-baeb-b63ddb76fa9b\",\"account\":null} {\"correlation_id\":\"12a5c71f-9483-447e-b21e-626fc744f233\",\"trace_id\":\"d37e14ee-1171-42f2-baf8-8c5fbe1be82d\"}\n[2026-05-11 11:56:47] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"hubspot\",\"crm_owner\":130,\"team_id\":42} {\"correlation_id\":\"12a5c71f-9483-447e-b21e-626fc744f233\",\"trace_id\":\"d37e14ee-1171-42f2-baf8-8c5fbe1be82d\"}\n[2026-05-11 11:56:47] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":42} {\"correlation_id\":\"12a5c71f-9483-447e-b21e-626fc744f233\",\"trace_id\":\"d37e14ee-1171-42f2-baf8-8c5fbe1be82d\"}\n[2026-05-11 11:56:47] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":42} {\"correlation_id\":\"12a5c71f-9483-447e-b21e-626fc744f233\",\"trace_id\":\"d37e14ee-1171-42f2-baf8-8c5fbe1be82d\"}\n[2026-05-11 11:56:47] local.INFO: [SyncHubspotObjects] Sync finished {\"team\":\"b2d49a54-b645-4637-a7ae-a86cfce6e8e4\",\"provider\":\"hubspot\",\"status\":\"disconnected\",\"duration_ms\":50.69,\"usage\":23747928,\"real_usage\":62914560,\"pid\":74083,\"reason\":\"Social account for HubSpot cannot be found. Please login to Jiminny to connect.\"} {\"correlation_id\":\"12a5c71f-9483-447e-b21e-626fc744f233\",\"trace_id\":\"d37e14ee-1171-42f2-baf8-8c5fbe1be82d\"}\n[2026-05-11 11:56:47] local.INFO: [SyncHubspotObjects] Starting sync {\"team\":\"c6b9d6b0-b48d-4832-a68c-a57d60651888\",\"usage\":23708608,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"7fe1d215-cc89-4f5f-a8cf-5c8d69f142fa\",\"trace_id\":\"d37e14ee-1171-42f2-baf8-8c5fbe1be82d\"}\n[2026-05-11 11:56:47] local.WARNING: [HubSpot] Account not connected for user {\"userId\":\"71e3aac5-fb66-47c5-a236-2d051ae3e319\",\"account\":null} {\"correlation_id\":\"7fe1d215-cc89-4f5f-a8cf-5c8d69f142fa\",\"trace_id\":\"d37e14ee-1171-42f2-baf8-8c5fbe1be82d\"}\n[2026-05-11 11:56:47] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"hubspot\",\"crm_owner\":256,\"team_id\":49} {\"correlation_id\":\"7fe1d215-cc89-4f5f-a8cf-5c8d69f142fa\",\"trace_id\":\"d37e14ee-1171-42f2-baf8-8c5fbe1be82d\"}\n[2026-05-11 11:56:47] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":49} {\"correlation_id\":\"7fe1d215-cc89-4f5f-a8cf-5c8d69f142fa\",\"trace_id\":\"d37e14ee-1171-42f2-baf8-8c5fbe1be82d\"}\n[2026-05-11 11:56:47] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":49} {\"correlation_id\":\"7fe1d215-cc89-4f5f-a8cf-5c8d69f142fa\",\"trace_id\":\"d37e14ee-1171-42f2-baf8-8c5fbe1be82d\"}\n[2026-05-11 11:56:47] local.INFO: [SyncHubspotObjects] Sync finished {\"team\":\"c6b9d6b0-b48d-4832-a68c-a57d60651888\",\"provider\":\"hubspot\",\"status\":\"disconnected\",\"duration_ms\":43.34,\"usage\":23744344,\"real_usage\":62914560,\"pid\":74083,\"reason\":\"Social account for HubSpot cannot be found. Please login to Jiminny to connect.\"} {\"correlation_id\":\"7fe1d215-cc89-4f5f-a8cf-5c8d69f142fa\",\"trace_id\":\"d37e14ee-1171-42f2-baf8-8c5fbe1be82d\"}\n[2026-05-11 11:56:52] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:notify-not-logged\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"6eaca20d-14ef-48f9-8af6-9f44a1bdf35b\",\"trace_id\":\"b19e8762-5f37-4f5c-858f-bf486e12bce8\"}\n[2026-05-11 11:56:52] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:notify-not-logged\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"6eaca20d-14ef-48f9-8af6-9f44a1bdf35b\",\"trace_id\":\"b19e8762-5f37-4f5c-858f-bf486e12bce8\"}\n[2026-05-11 11:57:06] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"bda8f0bc-556a-4d28-a8aa-81395fe53859\",\"trace_id\":\"05ad21f5-7896-4958-9a0e-090360adc00d\"}\n[2026-05-11 11:57:06] local.INFO: [EmailSchedule] STARTING Inbox Sync {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"bda8f0bc-556a-4d28-a8aa-81395fe53859\",\"trace_id\":\"05ad21f5-7896-4958-9a0e-090360adc00d\"}\n[2026-05-11 11:57:07] local.INFO: [EmailSchedule] FINISHED Inbox Sync {\"host\":\"docker_lamp_1\",\"events\":2} {\"correlation_id\":\"bda8f0bc-556a-4d28-a8aa-81395fe53859\",\"trace_id\":\"05ad21f5-7896-4958-9a0e-090360adc00d\"}\n[2026-05-11 11:57:07] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"bda8f0bc-556a-4d28-a8aa-81395fe53859\",\"trace_id\":\"05ad21f5-7896-4958-9a0e-090360adc00d\"}\n[2026-05-11 11:57:09] local.INFO: [Sync Mailbox] Sync start {\"inbox_id\":59} {\"correlation_id\":\"9ca07234-69a8-45e3-b302-b94798ef2ef4\",\"trace_id\":\"05ad21f5-7896-4958-9a0e-090360adc00d\"}\n[2026-05-11 11:57:09] local.INFO: [Inbox service] Skipping METADATA SYNC for inbox 59 due to unauthorized access to the mailbox {\"correlation_id\":\"9ca07234-69a8-45e3-b302-b94798ef2ef4\",\"trace_id\":\"05ad21f5-7896-4958-9a0e-090360adc00d\"}\n[2026-05-11 11:57:09] local.INFO: [Sync Mailbox] Sync complete {\"inbox_id\":59} {\"correlation_id\":\"9ca07234-69a8-45e3-b302-b94798ef2ef4\",\"trace_id\":\"05ad21f5-7896-4958-9a0e-090360adc00d\"}\n[2026-05-11 11:57:09] local.INFO: [Sync Mailbox] Sync start {\"inbox_id\":212} {\"correlation_id\":\"bbdb7dd9-1141-4e3a-9fdf-577b027755e6\",\"trace_id\":\"05ad21f5-7896-4958-9a0e-090360adc00d\"}\n[2026-05-11 11:57:09] local.INFO: [Inbox service] Skipping METADATA SYNC for inbox 212 due to unauthorized access to the mailbox {\"correlation_id\":\"bbdb7dd9-1141-4e3a-9fdf-577b027755e6\",\"trace_id\":\"05ad21f5-7896-4958-9a0e-090360adc00d\"}\n[2026-05-11 11:57:09] local.INFO: [Sync Mailbox] Sync complete {\"inbox_id\":212} {\"correlation_id\":\"bbdb7dd9-1141-4e3a-9fdf-577b027755e6\",\"trace_id\":\"05ad21f5-7896-4958-9a0e-090360adc00d\"}\n[2026-05-11 11:58:07] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"c06e8ab1-c6e0-4886-9311-8a8c38e5f4d4\",\"trace_id\":\"8c89a150-31c9-434b-bf1f-9f601d4d01ff\"}\n[2026-05-11 11:58:07] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"c06e8ab1-c6e0-4886-9311-8a8c38e5f4d4\",\"trace_id\":\"8c89a150-31c9-434b-bf1f-9f601d4d01ff\"}\n[2026-05-11 11:58:07] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"c06e8ab1-c6e0-4886-9311-8a8c38e5f4d4\",\"trace_id\":\"8c89a150-31c9-434b-bf1f-9f601d4d01ff\"}\n[2026-05-11 11:58:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"e92217b4-38e6-4ecd-b711-93dc229de4a9\",\"trace_id\":\"1c224464-03b0-46be-b4d8-6a507406e82e\"}\n[2026-05-11 11:58:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"e92217b4-38e6-4ecd-b711-93dc229de4a9\",\"trace_id\":\"1c224464-03b0-46be-b4d8-6a507406e82e\"}\n[2026-05-11 11:58:22] local.NOTICE: Monitoring start {\"correlation_id\":\"16b628fc-3633-4340-a883-797b5a349ab2\",\"trace_id\":\"fcb270cd-ef19-4703-98c4-b0811abd4f58\"}\n[2026-05-11 11:58:22] local.NOTICE: Monitoring end {\"correlation_id\":\"16b628fc-3633-4340-a883-797b5a349ab2\",\"trace_id\":\"fcb270cd-ef19-4703-98c4-b0811abd4f58\"}\n[2026-05-11 11:58:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"d69edd16-d773-4915-b3a5-973155e15291\",\"trace_id\":\"ce870c27-1bc8-492f-92ef-df4e0eb6bb97\"}\n[2026-05-11 11:58:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"d69edd16-d773-4915-b3a5-973155e15291\",\"trace_id\":\"ce870c27-1bc8-492f-92ef-df4e0eb6bb97\"}\n[2026-05-11 11:58:36] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"024593d6-27c6-40d6-b6f2-52cbe5779c62\",\"trace_id\":\"c9706f1d-67cf-4045-a5a6-4737be7ee635\"}\n[2026-05-11 11:58:37] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"024593d6-27c6-40d6-b6f2-52cbe5779c62\",\"trace_id\":\"c9706f1d-67cf-4045-a5a6-4737be7ee635\"}\n[2026-05-11 11:58:37] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"024593d6-27c6-40d6-b6f2-52cbe5779c62\",\"trace_id\":\"c9706f1d-67cf-4045-a5a6-4737be7ee635\"}\n[2026-05-11 11:58:37] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"024593d6-27c6-40d6-b6f2-52cbe5779c62\",\"trace_id\":\"c9706f1d-67cf-4045-a5a6-4737be7ee635\"}\n[2026-05-11 11:58:51] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"681a970b-a2a3-4764-a8a0-61c148a4a63c\",\"trace_id\":\"7fd62869-3148-43b5-bb62-8a73a39690eb\"}\n[2026-05-11 11:58:51] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 11:56:00, 2026-05-11 11:58:00] {\"correlation_id\":\"681a970b-a2a3-4764-a8a0-61c148a4a63c\",\"trace_id\":\"7fd62869-3148-43b5-bb62-8a73a39690eb\"}\n[2026-05-11 11:58:51] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 11:56:00, 2026-05-11 11:58:00] {\"correlation_id\":\"681a970b-a2a3-4764-a8a0-61c148a4a63c\",\"trace_id\":\"7fd62869-3148-43b5-bb62-8a73a39690eb\"}\n[2026-05-11 11:58:51] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"681a970b-a2a3-4764-a8a0-61c148a4a63c\",\"trace_id\":\"7fd62869-3148-43b5-bb62-8a73a39690eb\"}\n[2026-05-11 11:59:14] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"dfe0db36-4a84-49f4-aaea-fca8e5f52886\",\"trace_id\":\"ea0b1144-1737-4e90-a784-da1b0acb4b37\"}\n[2026-05-11 11:59:14] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"calendar:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:14] local.NOTICE: Calendar sync start {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:14] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"dfe0db36-4a84-49f4-aaea-fca8e5f52886\",\"trace_id\":\"ea0b1144-1737-4e90-a784-da1b0acb4b37\"}\n[2026-05-11 11:59:15] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1393,\"provider\":\"google\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:15] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1393,\"provider\":\"google\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:15] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:15] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1393,\"provider\":\"google\",\"refreshToken\":\"5aa7e2d96b53201cd16fca5d2e4ef3ad03320971fc064781d18aee3ae7b99fbf\",\"state\":\"full-refresh\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:15] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1393,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Account has been deleted\"}} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:15] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:15] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1393,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:15] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1387,\"provider\":\"google\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:15] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1387,\"provider\":\"google\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:15] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:15] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1387,\"provider\":\"google\",\"refreshToken\":\"8157ac6de94842937194009e9c50e459253600f799dacf6a40755ffdbeb5bba6\",\"state\":\"full-refresh\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:16] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1387,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Account has been deleted\"}} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:16] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:16] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1387,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:16] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1348,\"provider\":\"google\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:16] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1348,\"provider\":\"google\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:16] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:16] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1348,\"provider\":\"google\",\"refreshToken\":\"9e7d13d3032d0cb1b79d8e95aef01383e8e91eb52ff8ee960c8a0b6b95cd8c73\",\"state\":\"full-refresh\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:16] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1348,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:16] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:16] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1348,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:16] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1361,\"provider\":\"google\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:16] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1361,\"provider\":\"google\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:16] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:16] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1361,\"provider\":\"google\",\"refreshToken\":\"6c843da199c2b9907445329304fcc4ec5057a4ee748d8299641764395c08e1fd\",\"state\":\"full-refresh\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:16] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1361,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Account has been deleted\"}} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:16] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:16] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1361,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:16] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1310,\"provider\":\"google\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:16] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1310,\"provider\":\"google\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:16] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:16] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1310,\"provider\":\"google\",\"refreshToken\":\"e34818922c2830a660813a63f6169a4a9a992ae2cccd7dc8dd7796cfdb470ef1\",\"state\":\"full-refresh\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:16] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1310,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:16] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:16] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1310,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:16] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1333,\"provider\":\"google\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:16] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1333,\"provider\":\"google\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:16] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:16] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1333,\"provider\":\"google\",\"refreshToken\":\"6c902986546d8e8da1dc539b046cdc1d458f519acc972e5b5f1d6a1a295165e0\",\"state\":\"full-refresh\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:17] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1333,\"provider\":\"google\",\"responseBody\":{\"error\":\"unauthorized_client\",\"error_description\":\"Unauthorized\"}} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:17] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:17] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1333,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:17] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1368,\"provider\":\"google\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:17] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1368,\"provider\":\"google\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:17] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:17] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1368,\"provider\":\"google\",\"refreshToken\":\"d2f128898ff8543bd16b69cfae37896ab85119b0f5ed2b431d739593bb600333\",\"state\":\"full-refresh\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:17] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1368,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:17] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:17] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1368,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:17] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1365,\"provider\":\"google\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:17] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1365,\"provider\":\"google\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:17] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:17] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1365,\"provider\":\"google\",\"refreshToken\":\"7676e4a9afcd082b413248ab5ec6e487021fec6a9bdf315860a59cefad9caad8\",\"state\":\"full-refresh\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:17] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1365,\"provider\":\"google\",\"responseBody\":{\"error\":\"unauthorized_client\",\"error_description\":\"Unauthorized\"}} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:17] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:17] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1365,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:17] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1364,\"provider\":\"google\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:17] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1364,\"provider\":\"google\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:17] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:17] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1364,\"provider\":\"google\",\"refreshToken\":\"dd5882ebce76e645292ce33ae74238abbb77c0a4ecc6a2bfe723cad82e72ba8e\",\"state\":\"full-refresh\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:18] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1364,\"provider\":\"google\",\"responseBody\":{\"error\":\"unauthorized_client\",\"error_description\":\"Unauthorized\"}} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:18] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:18] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1364,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:18] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1370,\"provider\":\"office\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:18] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1370,\"provider\":\"office\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:18] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:18] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1370,\"provider\":\"office\",\"refreshToken\":\"b7ee8035306d0043cea6e00e7c4fe14f745e44074a1194db62a31cdf8b70af3e\",\"state\":\"full-refresh\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:18] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1370,\"provider\":\"office\",\"responseBody\":\"{\\\"error\\\":\\\"invalid_client\\\",\\\"error_description\\\":\\\"AADSTS7000215: Invalid client secret provided. Ensure the secret being sent in the request is the client secret value, not the client secret ID, for a secret added to app 'bbcbb2ef-6200-4fae-82bd-d81f5dd738da'. Trace ID: 4c2bb697-406d-40cc-86ee-e5e0d3190200 Correlation ID: 59fa5567-af47-471c-ade4-32427bc3696d Timestamp: 2026-05-11 11:59:18Z\\\",\\\"error_codes\\\":[7000215],\\\"timestamp\\\":\\\"2026-05-11 11:59:18Z\\\",\\\"trace_id\\\":\\\"4c2bb697-406d-40cc-86ee-e5e0d3190200\\\",\\\"correlation_id\\\":\\\"59fa5567-af47-471c-ade4-32427bc3696d\\\",\\\"error_uri\\\":\\\"https://login.microsoftonline.com/error?code=7000215\\\"}\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:18] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:18] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1370,\"provider\":\"office\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:18] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1202,\"provider\":\"office\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:18] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1202,\"provider\":\"office\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:18] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:18] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1202,\"provider\":\"office\",\"refreshToken\":\"b458799ccc29b21a6e2eb5260fdb63e49ccba21bf942a3973fb63799bd7f0afe\",\"state\":\"full-refresh\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:19] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1202,\"provider\":\"office\",\"responseBody\":\"{\\\"error\\\":\\\"invalid_client\\\",\\\"error_description\\\":\\\"AADSTS7000215: Invalid client secret provided. Ensure the secret being sent in the request is the client secret value, not the client secret ID, for a secret added to app 'bbcbb2ef-6200-4fae-82bd-d81f5dd738da'. Trace ID: cdef5555-9c61-4f37-9329-636c2fac2000 Correlation ID: 665a5fe7-5773-46b1-b0c5-355b56f63238 Timestamp: 2026-05-11 11:59:19Z\\\",\\\"error_codes\\\":[7000215],\\\"timestamp\\\":\\\"2026-05-11 11:59:19Z\\\",\\\"trace_id\\\":\\\"cdef5555-9c61-4f37-9329-636c2fac2000\\\",\\\"correlation_id\\\":\\\"665a5fe7-5773-46b1-b0c5-355b56f63238\\\",\\\"error_uri\\\":\\\"https://login.microsoftonline.com/error?code=7000215\\\"}\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:19] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:19] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1202,\"provider\":\"office\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:19] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:19] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:19] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:19] local.INFO: Calendar sync job dispatched {\"calendar_id\":501} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:19] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1300,\"provider\":\"google\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:19] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1300,\"provider\":\"google\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:19] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:19] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1300,\"provider\":\"google\",\"refreshToken\":\"4b811db0725fd9602a95943519a7da935e2a5065da7d9ebfcb170752e3e1ddb8\",\"state\":\"full-refresh\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:19] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1300,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Account has been deleted\"}} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:19] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:19] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1300,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:19] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1409,\"provider\":\"google\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:19] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1409,\"provider\":\"google\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:19] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:19] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1409,\"provider\":\"google\",\"refreshToken\":\"e2a3f2d06894894eed1ee87d9db1ace77d4d42ee6e1288a8940ad2c10333b0c4\",\"state\":\"full-refresh\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:20] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1409,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:20] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:20] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1409,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1352,\"provider\":\"google\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:20] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1352,\"provider\":\"google\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:20] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1352,\"provider\":\"google\",\"refreshToken\":\"dd4b16b00fdc1216da6b717c02338c073636e29162826b2de6db3f064fc029eb\",\"state\":\"full-refresh\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:20] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1352,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Token has been expired or revoked.\"}} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:20] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:20] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1352,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1296,\"provider\":\"office\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:20] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1296,\"provider\":\"office\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:20] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1296,\"provider\":\"office\",\"refreshToken\":\"011ae723c9d800c674e0b4be76f49fc046dac7d501b66c59ef0d9549cfa56ae5\",\"state\":\"full-refresh\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"72554f2b-390c-41ec-90d1-a47821355d8d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:20] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"72554f2b-390c-41ec-90d1-a47821355d8d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"72554f2b-390c-41ec-90d1-a47821355d8d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:20] local.INFO: [Calendar] Processing sync {\"calendarId\":\"a33076c1-8d97-431a-99f0-85c9524e118b\",\"from\":null,\"to\":null,\"delta\":\"CIiFh8TP44kDEIiFh8TP44kDGAUgkZvkzgIokZvkzgI=\",\"last_sync\":\"2024-12-09 07:12:53\",\"dateMode\":\"daily\"} {\"correlation_id\":\"72554f2b-390c-41ec-90d1-a47821355d8d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:20] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"integration-app\",\"crm_owner\":1695,\"team_id\":3143} {\"correlation_id\":\"72554f2b-390c-41ec-90d1-a47821355d8d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"72554f2b-390c-41ec-90d1-a47821355d8d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:20] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"72554f2b-390c-41ec-90d1-a47821355d8d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"72554f2b-390c-41ec-90d1-a47821355d8d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:20] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1296,\"provider\":\"office\",\"responseBody\":\"{\\\"error\\\":\\\"invalid_client\\\",\\\"error_description\\\":\\\"AADSTS7000215: Invalid client secret provided. Ensure the secret being sent in the request is the client secret value, not the client secret ID, for a secret added to app 'bbcbb2ef-6200-4fae-82bd-d81f5dd738da'. Trace ID: 3eb29fa5-b102-4a40-ac03-2d533e321e00 Correlation ID: c777a41f-c760-4f54-9bef-de2c41baf41c Timestamp: 2026-05-11 11:59:20Z\\\",\\\"error_codes\\\":[7000215],\\\"timestamp\\\":\\\"2026-05-11 11:59:20Z\\\",\\\"trace_id\\\":\\\"3eb29fa5-b102-4a40-ac03-2d533e321e00\\\",\\\"correlation_id\\\":\\\"c777a41f-c760-4f54-9bef-de2c41baf41c\\\",\\\"error_uri\\\":\\\"https://login.microsoftonline.com/error?code=7000215\\\"}\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:20] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:20] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1296,\"provider\":\"office\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":391,\"provider\":\"office\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:20] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":391,\"provider\":\"office\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:20] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":391,\"provider\":\"office\",\"refreshToken\":\"00045eebae0f39b34887c6d53f92ae78064f7145e1f4b67754aebd03cfb2d881\",\"state\":\"full-refresh\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:21] local.INFO: [Google Calendar] Failed to watch channel for calendar {\"calendarId\":\"a33076c1-8d97-431a-99f0-85c9524e118b\",\"code\":400,\"reason\":\"{\n \\\"error\\\": {\n \\\"errors\\\": [\n {\n \\\"domain\\\": \\\"global\\\",\n \\\"reason\\\": \\\"push.webhookUrlNotHttps\\\",\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n ],\n \\\"code\\\": 400,\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n}\"} {\"correlation_id\":\"72554f2b-390c-41ec-90d1-a47821355d8d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:21] local.WARNING: [Calendar] Sync failed {\"calendarId\":\"a33076c1-8d97-431a-99f0-85c9524e118b\",\"code\":400,\"reason\":\"{\n \\\"error\\\": {\n \\\"errors\\\": [\n {\n \\\"domain\\\": \\\"global\\\",\n \\\"reason\\\": \\\"push.webhookUrlNotHttps\\\",\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n ],\n \\\"code\\\": 400,\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n}\"} {\"correlation_id\":\"72554f2b-390c-41ec-90d1-a47821355d8d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:21] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":391,\"provider\":\"office\",\"responseBody\":\"{\\\"error\\\":\\\"invalid_client\\\",\\\"error_description\\\":\\\"AADSTS7000215: Invalid client secret provided. Ensure the secret being sent in the request is the client secret value, not the client secret ID, for a secret added to app 'bbcbb2ef-6200-4fae-82bd-d81f5dd738da'. Trace ID: 8dc49cab-e0e8-49a6-b0ec-4dec88342600 Correlation ID: c4c4610b-b8ec-41e3-956f-c37115f2cc02 Timestamp: 2026-05-11 11:59:21Z\\\",\\\"error_codes\\\":[7000215],\\\"timestamp\\\":\\\"2026-05-11 11:59:21Z\\\",\\\"trace_id\\\":\\\"8dc49cab-e0e8-49a6-b0ec-4dec88342600\\\",\\\"correlation_id\\\":\\\"c4c4610b-b8ec-41e3-956f-c37115f2cc02\\\",\\\"error_uri\\\":\\\"https://login.microsoftonline.com/error?code=7000215\\\"}\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:21] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:21] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":391,\"provider\":\"office\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:21] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1271,\"provider\":\"office\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:21] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1271,\"provider\":\"office\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:21] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:21] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1271,\"provider\":\"office\",\"refreshToken\":\"118cde2c06993147b07ccaec4cbcd5026a819dea6c71081166a492933e392afb\",\"state\":\"full-refresh\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:21] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1271,\"provider\":\"office\",\"responseBody\":\"{\\\"error\\\":\\\"invalid_client\\\",\\\"error_description\\\":\\\"AADSTS7000215: Invalid client secret provided. Ensure the secret being sent in the request is the client secret value, not the client secret ID, for a secret added to app 'bbcbb2ef-6200-4fae-82bd-d81f5dd738da'. Trace ID: 9e93c930-8d89-4e10-bb33-f0a79e232300 Correlation ID: d196fba1-ae81-40c2-8be0-f9198045bf60 Timestamp: 2026-05-11 11:59:21Z\\\",\\\"error_codes\\\":[7000215],\\\"timestamp\\\":\\\"2026-05-11 11:59:21Z\\\",\\\"trace_id\\\":\\\"9e93c930-8d89-4e10-bb33-f0a79e232300\\\",\\\"correlation_id\\\":\\\"d196fba1-ae81-40c2-8be0-f9198045bf60\\\",\\\"error_uri\\\":\\\"https://login.microsoftonline.com/error?code=7000215\\\"}\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:21] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:21] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1271,\"provider\":\"office\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:21] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1351,\"provider\":\"google\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:21] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1351,\"provider\":\"google\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:21] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:21] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1351,\"provider\":\"google\",\"refreshToken\":\"4271d15b9e60a606439caddc68337f783e472c85b03dacff14d1b6dfded9051c\",\"state\":\"full-refresh\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:22] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1351,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:22] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:22] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1351,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:22] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1366,\"provider\":\"google\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:22] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1366,\"provider\":\"google\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:22] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:22] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1366,\"provider\":\"google\",\"refreshToken\":\"ae21385059b2eebfd43f68aecd56eccd702a1aabb6598f1f7ab594ed8af491b4\",\"state\":\"full-refresh\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:22] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1366,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:22] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:22] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1366,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:22] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:22] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:22] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:22] local.INFO: Calendar sync job dispatched {\"calendar_id\":378} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:22] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1421,\"provider\":\"office\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:22] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1421,\"provider\":\"office\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:22] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:22] local.INFO: Calendar sync job dispatched {\"calendar_id\":504} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:22] local.NOTICE: Calendar sync end {\"retrieved_calendars\":31,\"processed_calendars\":3} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:22] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"calendar:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":62.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"f3e48c8b-cbeb-41c9-a6bb-a5801d61735d\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:23] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"27d1c642-b0b5-4456-9b7c-7d8f6241ccac\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:23] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"27d1c642-b0b5-4456-9b7c-7d8f6241ccac\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:23] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"27d1c642-b0b5-4456-9b7c-7d8f6241ccac\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:23] local.INFO: [Calendar] Processing sync {\"calendarId\":\"2676cb6d-f86c-427e-bf78-591e388e3c1e\",\"from\":null,\"to\":null,\"delta\":\"CJ_x49O3jpIDEJ_x49O3jpIDGAUgw67KlwMow67KlwM=\",\"last_sync\":\"2026-01-19 07:48:40\",\"dateMode\":\"daily\"} {\"correlation_id\":\"27d1c642-b0b5-4456-9b7c-7d8f6241ccac\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:23] local.WARNING: [Pipedrive] Account not connected for user {\"userId\":\"e6538737-e7b4-455f-a37a-3e79b665a220\",\"account\":{\"Jiminny\\\\Models\\\\SocialAccount\":{\"id\":1116,\"sociable_id\":241,\"provider_user_id\":\"19555731\",\"expires\":1775683749,\"refresh_token_expires\":null,\"provider\":\"pipedrive\",\"state\":\"full-refresh\",\"auth_scope\":\"base,deals:full,activities:full,contacts:full,search:read\",\"retry_after\":null,\"created_at\":\"2023-09-08 09:44:29\",\"updated_at\":\"2026-04-08 22:58:34\"}}} {\"correlation_id\":\"27d1c642-b0b5-4456-9b7c-7d8f6241ccac\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:23] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"pipedrive\",\"crm_owner\":241,\"team_id\":19} {\"correlation_id\":\"27d1c642-b0b5-4456-9b7c-7d8f6241ccac\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:23] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"pipedrive\",\"team_id\":19} {\"correlation_id\":\"27d1c642-b0b5-4456-9b7c-7d8f6241ccac\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:23] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"pipedrive\",\"team_id\":19} {\"correlation_id\":\"27d1c642-b0b5-4456-9b7c-7d8f6241ccac\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:23] local.WARNING: [Calendar] CRM disconnected for user so events will not be matched {\"provider\":\"pipedrive\",\"user_id\":241,\"message\":\"Your Pipedrive account has become disconnected. Please login to Jiminny to reconnect.\"} {\"correlation_id\":\"27d1c642-b0b5-4456-9b7c-7d8f6241ccac\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:23] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"27d1c642-b0b5-4456-9b7c-7d8f6241ccac\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:23] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"27d1c642-b0b5-4456-9b7c-7d8f6241ccac\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:23] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"27d1c642-b0b5-4456-9b7c-7d8f6241ccac\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:23] local.INFO: [Google Calendar] Failed to watch channel for calendar {\"calendarId\":\"2676cb6d-f86c-427e-bf78-591e388e3c1e\",\"code\":400,\"reason\":\"{\n \\\"error\\\": {\n \\\"errors\\\": [\n {\n \\\"domain\\\": \\\"global\\\",\n \\\"reason\\\": \\\"push.webhookUrlNotHttps\\\",\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n ],\n \\\"code\\\": 400,\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n}\"} {\"correlation_id\":\"27d1c642-b0b5-4456-9b7c-7d8f6241ccac\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:23] local.WARNING: [Calendar] Sync failed {\"calendarId\":\"2676cb6d-f86c-427e-bf78-591e388e3c1e\",\"code\":400,\"reason\":\"{\n \\\"error\\\": {\n \\\"errors\\\": [\n {\n \\\"domain\\\": \\\"global\\\",\n \\\"reason\\\": \\\"push.webhookUrlNotHttps\\\",\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n ],\n \\\"code\\\": 400,\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n}\"} {\"correlation_id\":\"27d1c642-b0b5-4456-9b7c-7d8f6241ccac\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:23] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1421,\"provider\":\"office\"} {\"correlation_id\":\"43ff8e45-ea67-4944-93ae-3234fb3f62d8\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:23] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1421,\"provider\":\"office\"} {\"correlation_id\":\"43ff8e45-ea67-4944-93ae-3234fb3f62d8\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:23] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"43ff8e45-ea67-4944-93ae-3234fb3f62d8\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:23] local.INFO: [Calendar] Processing sync {\"calendarId\":\"9e8b1a2c-1a8f-42bd-b161-810fc0baf540\",\"from\":null,\"to\":null,\"delta\":\"R0usmcdvmMuZCBYV0hguCLlvcOB4kXlhlC7KgH1SnZwTrZ3faZv1fXPQqJhxe_L9AxWWlb-wASsjGiiWlhsBUg9MFb3ZdlAYerVV_ZirRPbsKWCxEXhybD90arJmok_M4ecGFUQ9_BIGu-c6RAnJy2TRKZ7gPTsJi_8TGceGAuqimlhm4G4mjDLvYVVwImjjU7M3xJvUzL47dLOGNTJCww.k1TST0VEYCgbFOkwa3ysYMi100FtVfkzfqlXLnV6gPg\",\"last_sync\":\"2026-05-11 06:13:36\",\"dateMode\":\"daily\"} {\"correlation_id\":\"43ff8e45-ea67-4944-93ae-3234fb3f62d8\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:23] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"43ff8e45-ea67-4944-93ae-3234fb3f62d8\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:23] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"43ff8e45-ea67-4944-93ae-3234fb3f62d8\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:23] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"43ff8e45-ea67-4944-93ae-3234fb3f62d8\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:23] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":89,\"team_id\":2} {\"correlation_id\":\"43ff8e45-ea67-4944-93ae-3234fb3f62d8\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 11:59:23] local.INFO: [MS Office Calendar] Skipping delta sync for daily mode {\"calendarId\":\"9e8b1a2c-1a8f-42bd-b161-810fc0baf540\"} {\"correlation_id\":\"43ff8e45-ea67-4944-93ae-3234fb3f62d8\",\"trace_id\":\"cec652d7-8574-4f49-9683-74ddf4316a4b\"}\n[2026-05-11 12:00:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"16764cf4-b2f9-4ea6-b8a7-07857da37383\",\"trace_id\":\"d9e5f444-633d-45ab-b487-571cee7de329\"}\n[2026-05-11 12:00:18] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"16764cf4-b2f9-4ea6-b8a7-07857da37383\",\"trace_id\":\"d9e5f444-633d-45ab-b487-571cee7de329\"}\n[2026-05-11 12:00:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"16764cf4-b2f9-4ea6-b8a7-07857da37383\",\"trace_id\":\"d9e5f444-633d-45ab-b487-571cee7de329\"}\n[2026-05-11 12:00:22] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"43f339b1-32c0-42ae-9aac-9268dea7d69c\",\"trace_id\":\"6400214f-9fc1-487d-b16d-27b678738800\"}\n[2026-05-11 12:00:22] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"43f339b1-32c0-42ae-9aac-9268dea7d69c\",\"trace_id\":\"6400214f-9fc1-487d-b16d-27b678738800\"}\n[2026-05-11 12:00:27] local.NOTICE: Monitoring start {\"correlation_id\":\"cc967e7a-75d5-4bc9-8265-4495f751e999\",\"trace_id\":\"ec8bd9fe-5311-4307-8aff-ad8fa7e7ca75\"}\n[2026-05-11 12:00:27] local.NOTICE: Monitoring end {\"correlation_id\":\"cc967e7a-75d5-4bc9-8265-4495f751e999\",\"trace_id\":\"ec8bd9fe-5311-4307-8aff-ad8fa7e7ca75\"}\n[2026-05-11 12:00:32] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"83c202cc-53cc-4a51-acb0-f88fe85b06bb\",\"trace_id\":\"fcf16c02-0fa4-4310-99d5-e155100773b9\"}\n[2026-05-11 12:00:32] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"83c202cc-53cc-4a51-acb0-f88fe85b06bb\",\"trace_id\":\"fcf16c02-0fa4-4310-99d5-e155100773b9\"}\n[2026-05-11 12:00:38] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"b98923e0-1664-4349-a8c6-80dc188f9a20\",\"trace_id\":\"aa4b783b-8ff4-475e-9407-4559a3152798\"}\n[2026-05-11 12:00:38] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"b98923e0-1664-4349-a8c6-80dc188f9a20\",\"trace_id\":\"aa4b783b-8ff4-475e-9407-4559a3152798\"}\n[2026-05-11 12:00:38] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"b98923e0-1664-4349-a8c6-80dc188f9a20\",\"trace_id\":\"aa4b783b-8ff4-475e-9407-4559a3152798\"}\n[2026-05-11 12:00:38] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"b98923e0-1664-4349-a8c6-80dc188f9a20\",\"trace_id\":\"aa4b783b-8ff4-475e-9407-4559a3152798\"}\n[2026-05-11 12:00:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"c67986e6-b263-426c-a847-483103e2780c\",\"trace_id\":\"88b99f49-829d-47d1-b6f8-fcedc2df94c8\"}\n[2026-05-11 12:00:48] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 11:58:00, 2026-05-11 12:00:00] {\"correlation_id\":\"c67986e6-b263-426c-a847-483103e2780c\",\"trace_id\":\"88b99f49-829d-47d1-b6f8-fcedc2df94c8\"}\n[2026-05-11 12:00:48] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 11:58:00, 2026-05-11 12:00:00] {\"correlation_id\":\"c67986e6-b263-426c-a847-483103e2780c\",\"trace_id\":\"88b99f49-829d-47d1-b6f8-fcedc2df94c8\"}\n[2026-05-11 12:00:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"c67986e6-b263-426c-a847-483103e2780c\",\"trace_id\":\"88b99f49-829d-47d1-b6f8-fcedc2df94c8\"}\n[2026-05-11 12:00:56] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"69e8e70b-cb80-4948-9a99-d768c7fabb18\",\"trace_id\":\"49c9b704-6bb0-479c-97bd-6a5178b1af28\"}\n[2026-05-11 12:00:57] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"69e8e70b-cb80-4948-9a99-d768c7fabb18\",\"trace_id\":\"49c9b704-6bb0-479c-97bd-6a5178b1af28\"}\n[2026-05-11 12:01:08] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"508b85d3-8683-456d-ab3f-5cd1528db1b3\",\"trace_id\":\"ac8356b6-93bc-47f5-bebe-f2f4a666ab44\"}\n[2026-05-11 12:01:09] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"508b85d3-8683-456d-ab3f-5cd1528db1b3\",\"trace_id\":\"ac8356b6-93bc-47f5-bebe-f2f4a666ab44\"}\n[2026-05-11 12:01:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"3d1a378d-60e3-4927-8905-f8887e1d17f3\",\"trace_id\":\"944b7b8f-179d-4ba5-9a06-0fd3f175c075\"}\n[2026-05-11 12:01:16] local.INFO: Running pre-meeting notification command {\"correlation_id\":\"3d1a378d-60e3-4927-8905-f8887e1d17f3\",\"trace_id\":\"944b7b8f-179d-4ba5-9a06-0fd3f175c075\"}\n[2026-05-11 12:01:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"3d1a378d-60e3-4927-8905-f8887e1d17f3\",\"trace_id\":\"944b7b8f-179d-4ba5-9a06-0fd3f175c075\"}\n[2026-05-11 12:01:23] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"59b02f73-ae3f-4e46-9109-e80049515ff5\",\"trace_id\":\"5614ddaf-8e1e-4975-bab7-28cc5230ecce\"}\n[2026-05-11 12:01:23] local.INFO: Running conference:monitor:start command for activities in (2026-05-11 11:51:00, 2026-05-11 11:56:00] {\"correlation_id\":\"59b02f73-ae3f-4e46-9109-e80049515ff5\",\"trace_id\":\"5614ddaf-8e1e-4975-bab7-28cc5230ecce\"}\n[2026-05-11 12:01:23] local.INFO: [conference:monitor:start] No activities found in (2026-05-11 11:51:00, 2026-05-11 11:56:00] {\"correlation_id\":\"59b02f73-ae3f-4e46-9109-e80049515ff5\",\"trace_id\":\"5614ddaf-8e1e-4975-bab7-28cc5230ecce\"}\n[2026-05-11 12:01:23] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"59b02f73-ae3f-4e46-9109-e80049515ff5\",\"trace_id\":\"5614ddaf-8e1e-4975-bab7-28cc5230ecce\"}\n[2026-05-11 12:01:32] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"ccd17019-afa7-4e62-8f7e-56f74b18e2ed\",\"trace_id\":\"491d0999-cf10-4f33-bd48-ca0374754ce5\"}\n[2026-05-11 12:01:32] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesEnded {\"from\":\"11:56\",\"to\":\"12:01\"} {\"correlation_id\":\"ccd17019-afa7-4e62-8f7e-56f74b18e2ed\",\"trace_id\":\"491d0999-cf10-4f33-bd48-ca0374754ce5\"}\n[2026-05-11 12:01:33] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesWithUnfinishedSession {\"from\":\"01:51\",\"to\":\"01:56\"} {\"correlation_id\":\"ccd17019-afa7-4e62-8f7e-56f74b18e2ed\",\"trace_id\":\"491d0999-cf10-4f33-bd48-ca0374754ce5\"}\n[2026-05-11 12:01:33] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"ccd17019-afa7-4e62-8f7e-56f74b18e2ed\",\"trace_id\":\"491d0999-cf10-4f33-bd48-ca0374754ce5\"}\n[2026-05-11 12:01:39] local.NOTICE: Repairing HubSpot tokens start {\"correlation_id\":\"151e8889-735a-4331-9efa-440a1c9f11b2\",\"trace_id\":\"062d8887-fc2e-448f-9f14-555bfbeabeda\"}\n[2026-05-11 12:01:40] local.INFO: Trying to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\"} {\"correlation_id\":\"151e8889-735a-4331-9efa-440a1c9f11b2\",\"trace_id\":\"062d8887-fc2e-448f-9f14-555bfbeabeda\"}\n[2026-05-11 12:01:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"151e8889-735a-4331-9efa-440a1c9f11b2\",\"trace_id\":\"062d8887-fc2e-448f-9f14-555bfbeabeda\"}\n[2026-05-11 12:01:40] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":59,\"provider\":\"hubspot\",\"refreshToken\":\"97b78f6e2cc49965c00c2492b602b02708b1392551e6b3f113fbaa48992af90b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"151e8889-735a-4331-9efa-440a1c9f11b2\",\"trace_id\":\"062d8887-fc2e-448f-9f14-555bfbeabeda\"}\n[2026-05-11 12:01:40] local.ERROR: Failed to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"151e8889-735a-4331-9efa-440a1c9f11b2\",\"trace_id\":\"062d8887-fc2e-448f-9f14-555bfbeabeda\"}\n[2026-05-11 12:01:40] local.INFO: Trying to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\"} {\"correlation_id\":\"151e8889-735a-4331-9efa-440a1c9f11b2\",\"trace_id\":\"062d8887-fc2e-448f-9f14-555bfbeabeda\"}\n[2026-05-11 12:01:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"151e8889-735a-4331-9efa-440a1c9f11b2\",\"trace_id\":\"062d8887-fc2e-448f-9f14-555bfbeabeda\"}\n[2026-05-11 12:01:40] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":306,\"provider\":\"hubspot\",\"refreshToken\":\"6fa6aa8cc641d131231acc3470f5c03cb3b07b2e580fb18f8acb3b1dbb72549b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"151e8889-735a-4331-9efa-440a1c9f11b2\",\"trace_id\":\"062d8887-fc2e-448f-9f14-555bfbeabeda\"}\n[2026-05-11 12:01:41] local.ERROR: Failed to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"151e8889-735a-4331-9efa-440a1c9f11b2\",\"trace_id\":\"062d8887-fc2e-448f-9f14-555bfbeabeda\"}\n[2026-05-11 12:01:41] local.INFO: Trying to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\"} {\"correlation_id\":\"151e8889-735a-4331-9efa-440a1c9f11b2\",\"trace_id\":\"062d8887-fc2e-448f-9f14-555bfbeabeda\"}\n[2026-05-11 12:01:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"151e8889-735a-4331-9efa-440a1c9f11b2\",\"trace_id\":\"062d8887-fc2e-448f-9f14-555bfbeabeda\"}\n[2026-05-11 12:01:41] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1372,\"provider\":\"hubspot\",\"refreshToken\":\"9aa73948c761da29dce46c177cf9aee1fde483a44169ca38723f9f0597d7a8c4\",\"state\":\"full-refresh\"} {\"correlation_id\":\"151e8889-735a-4331-9efa-440a1c9f11b2\",\"trace_id\":\"062d8887-fc2e-448f-9f14-555bfbeabeda\"}\n[2026-05-11 12:01:41] local.ERROR: Failed to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"151e8889-735a-4331-9efa-440a1c9f11b2\",\"trace_id\":\"062d8887-fc2e-448f-9f14-555bfbeabeda\"}\n[2026-05-11 12:01:41] local.NOTICE: Repairing HubSpot tokens end {\"total\":3,\"fixed\":0,\"failed\":3} {\"correlation_id\":\"151e8889-735a-4331-9efa-440a1c9f11b2\",\"trace_id\":\"062d8887-fc2e-448f-9f14-555bfbeabeda\"}\n[2026-05-11 12:02:01] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"4633f3e5-fa89-4b9f-af74-85e20c5575a4\",\"trace_id\":\"26218fe6-75fb-4591-adb1-5291ac0e574f\"}\n[2026-05-11 12:02:01] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"jiminny:transcription:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"6b664950-d65b-427a-bfaa-97590c083f36\",\"trace_id\":\"aa7aa5f3-c4c9-4a35-bc44-c4a3c55a8d5c\"}\n[2026-05-11 12:02:01] local.INFO: [HubSpot Journal Command] Starting polling service {\"correlation_id\":\"cabbf04d-6060-440b-9dd4-cabc547f7ee8\",\"trace_id\":\"cb94e764-8868-41c8-9a3b-1d00d7e9292a\"}\n[2026-05-11 12:02:01] local.INFO: [HubSpot Journal Polling] Service starting {\"memory_limit\":\"256M\",\"max_execution_time\":\"0\",\"initial_memory_mb\":60.0} {\"correlation_id\":\"cabbf04d-6060-440b-9dd4-cabc547f7ee8\",\"trace_id\":\"cb94e764-8868-41c8-9a3b-1d00d7e9292a\"}\n[2026-05-11 12:02:01] local.INFO: [HubSpot Journal Polling] Acquired polling lock {\"expires_at\":\"2026-05-11T12:04:01.310141Z\"} {\"correlation_id\":\"cabbf04d-6060-440b-9dd4-cabc547f7ee8\",\"trace_id\":\"cb94e764-8868-41c8-9a3b-1d00d7e9292a\"}\n[2026-05-11 12:02:01] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"jiminny:transcription:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"6b664950-d65b-427a-bfaa-97590c083f36\",\"trace_id\":\"aa7aa5f3-c4c9-4a35-bc44-c4a3c55a8d5c\"}\n[2026-05-11 12:02:01] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"4633f3e5-fa89-4b9f-af74-85e20c5575a4\",\"trace_id\":\"26218fe6-75fb-4591-adb1-5291ac0e574f\"}\n[2026-05-11 12:02:02] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"cabbf04d-6060-440b-9dd4-cabc547f7ee8\",\"trace_id\":\"cb94e764-8868-41c8-9a3b-1d00d7e9292a\"}\n[2026-05-11 12:02:07] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"cabbf04d-6060-440b-9dd4-cabc547f7ee8\",\"trace_id\":\"cb94e764-8868-41c8-9a3b-1d00d7e9292a\"}\n[2026-05-11 12:02:10] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:reset-governor\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"c8b56854-4e30-4556-9b46-f560b0f45211\",\"trace_id\":\"3a6784eb-469c-443d-81c1-bc70ed4e0646\"}\n[2026-05-11 12:02:10] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:reset-governor\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"c8b56854-4e30-4556-9b46-f560b0f45211\",\"trace_id\":\"3a6784eb-469c-443d-81c1-bc70ed4e0646\"}\n[2026-05-11 12:02:12] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"cabbf04d-6060-440b-9dd4-cabc547f7ee8\",\"trace_id\":\"cb94e764-8868-41c8-9a3b-1d00d7e9292a\"}\n[2026-05-11 12:02:25] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"6dea41d7-ee3e-4e7f-a97a-60b6016a09bc\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:25] local.INFO: Dispatching activity sync job {\"import_id\":812719,\"provider\":\"twilio-flex\",\"team\":\"jiminny\"} {\"correlation_id\":\"6dea41d7-ee3e-4e7f-a97a-60b6016a09bc\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:25] local.INFO: Dispatching activity sync job {\"import_id\":812720,\"provider\":\"xant\",\"team\":\"jiminny\"} {\"correlation_id\":\"6dea41d7-ee3e-4e7f-a97a-60b6016a09bc\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:25] local.INFO: Dispatching activity sync job {\"import_id\":812721,\"provider\":\"apollo\",\"team\":\"jiminny\"} {\"correlation_id\":\"6dea41d7-ee3e-4e7f-a97a-60b6016a09bc\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:25] local.INFO: Dispatching activity sync job {\"import_id\":812722,\"provider\":\"groove\",\"team\":\"jiminny\"} {\"correlation_id\":\"6dea41d7-ee3e-4e7f-a97a-60b6016a09bc\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:25] local.INFO: Dispatching activity sync job {\"import_id\":812723,\"provider\":\"twilio-video\",\"team\":\"jiminny\"} {\"correlation_id\":\"6dea41d7-ee3e-4e7f-a97a-60b6016a09bc\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:25] local.INFO: Dispatching activity sync job {\"import_id\":812724,\"provider\":\"hubspot\",\"team\":\"hubspot\"} {\"correlation_id\":\"6dea41d7-ee3e-4e7f-a97a-60b6016a09bc\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:25] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"6dea41d7-ee3e-4e7f-a97a-60b6016a09bc\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:27] local.WARNING: [Salesforce] Account not connected for user {\"userId\":\"cdf8b554-d951-4758-bc2b-c1b85d1cd0b9\",\"account\":null} {\"correlation_id\":\"00ff4d65-3fa5-493c-b0e6-5a0a585055d2\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:27] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"salesforce\",\"crm_owner\":3,\"team_id\":1} {\"correlation_id\":\"00ff4d65-3fa5-493c-b0e6-5a0a585055d2\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:27] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"salesforce\",\"team_id\":1} {\"correlation_id\":\"00ff4d65-3fa5-493c-b0e6-5a0a585055d2\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:27] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"salesforce\",\"team_id\":1} {\"correlation_id\":\"00ff4d65-3fa5-493c-b0e6-5a0a585055d2\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:27] local.ALERT: [SyncActivity] Failed {\"import_id\":812719,\"provider\":\"twilio-flex\",\"provider_id\":317,\"team\":\"jiminny\",\"team_id\":1,\"reason\":\"Social account for Salesforce cannot be found. Please login to Jiminny to connect.\",\"file\":\"/home/jiminny/app/Services/Crm/BaseService.php\",\"line\":646} {\"correlation_id\":\"00ff4d65-3fa5-493c-b0e6-5a0a585055d2\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"7d015a53-1758-4ad0-8885-9ec40f6ee1e5\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:27] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"7d015a53-1758-4ad0-8885-9ec40f6ee1e5\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7d015a53-1758-4ad0-8885-9ec40f6ee1e5\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:28] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"cabbf04d-6060-440b-9dd4-cabc547f7ee8\",\"trace_id\":\"cb94e764-8868-41c8-9a3b-1d00d7e9292a\"}\n[2026-05-11 12:02:28] local.ALERT: [SyncActivity] Failed {\"import_id\":812720,\"provider\":\"xant\",\"provider_id\":161,\"team\":\"jiminny\",\"team_id\":1,\"reason\":\"Activity Provider account not connected.\",\"file\":\"/home/jiminny/app/Services/Activity/ActivityProviderService.php\",\"line\":174} {\"correlation_id\":\"7d015a53-1758-4ad0-8885-9ec40f6ee1e5\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:28] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"c47d3748-a9fc-4ff6-91c2-5756ac61d83c\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:28] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"c47d3748-a9fc-4ff6-91c2-5756ac61d83c\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:28] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"c47d3748-a9fc-4ff6-91c2-5756ac61d83c\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:29] local.ALERT: [SyncActivity] Failed {\"import_id\":812721,\"provider\":\"apollo\",\"provider_id\":441,\"team\":\"jiminny\",\"team_id\":1,\"reason\":\"Activity Provider account not connected.\",\"file\":\"/home/jiminny/app/Services/Activity/ActivityProviderService.php\",\"line\":174} {\"correlation_id\":\"c47d3748-a9fc-4ff6-91c2-5756ac61d83c\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"af70dfd5-1584-4eb5-a88d-13ac6ed503ac\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:30] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"af70dfd5-1584-4eb5-a88d-13ac6ed503ac\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"af70dfd5-1584-4eb5-a88d-13ac6ed503ac\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:30] local.ALERT: [SyncActivity] Failed {\"import_id\":812722,\"provider\":\"groove\",\"provider_id\":228,\"team\":\"jiminny\",\"team_id\":1,\"reason\":\"Activity Provider account not connected.\",\"file\":\"/home/jiminny/app/Services/Activity/ActivityProviderService.php\",\"line\":174} {\"correlation_id\":\"af70dfd5-1584-4eb5-a88d-13ac6ed503ac\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"51b192af-e79f-4e2b-ad98-feaebcf20c48\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"51b192af-e79f-4e2b-ad98-feaebcf20c48\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"51b192af-e79f-4e2b-ad98-feaebcf20c48\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:32] local.ALERT: [SyncActivity] Failed {\"import_id\":812723,\"provider\":\"twilio-video\",\"provider_id\":243,\"team\":\"jiminny\",\"team_id\":1,\"reason\":\"Activity Provider account not connected.\",\"file\":\"/home/jiminny/app/Services/Activity/ActivityProviderService.php\",\"line\":174} {\"correlation_id\":\"51b192af-e79f-4e2b-ad98-feaebcf20c48\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"85d11b4b-b935-429a-bc5a-4584707f151f\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"85d11b4b-b935-429a-bc5a-4584707f151f\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"85d11b4b-b935-429a-bc5a-4584707f151f\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:32] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":89,\"team_id\":2} {\"correlation_id\":\"85d11b4b-b935-429a-bc5a-4584707f151f\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":408,\"provider\":\"hubspot\"} {\"correlation_id\":\"85d11b4b-b935-429a-bc5a-4584707f151f\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:32] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":408,\"provider\":\"hubspot\"} {\"correlation_id\":\"85d11b4b-b935-429a-bc5a-4584707f151f\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"85d11b4b-b935-429a-bc5a-4584707f151f\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:32] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":408,\"provider\":\"hubspot\",\"refreshToken\":\"de4e47eb985578f4218833e763e31059e88b562e87e10749b3389be2328f0aa7\",\"state\":\"connected\"} {\"correlation_id\":\"85d11b4b-b935-429a-bc5a-4584707f151f\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:33] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"85d11b4b-b935-429a-bc5a-4584707f151f\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:33] local.INFO: [SocialAccountObserver] Access token was modified, encrypting {\"correlation_id\":\"85d11b4b-b935-429a-bc5a-4584707f151f\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:33] local.INFO: [SocialAccountService] Token refreshed {\"socialAccountId\":408,\"provider\":\"hubspot\",\"state\":\"connected\"} {\"correlation_id\":\"85d11b4b-b935-429a-bc5a-4584707f151f\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:33] local.INFO: [SyncActivity] Start {\"import_id\":812724,\"provider\":\"hubspot\",\"provider_id\":31,\"team\":\"hubspot\",\"team_id\":2} {\"correlation_id\":\"85d11b4b-b935-429a-bc5a-4584707f151f\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:34] local.INFO: [HubSpot] Search calls for period {\"from\":\"2026-05-11 11:44:00\",\"to\":\"2026-05-11 12:00:00\"} {\"correlation_id\":\"85d11b4b-b935-429a-bc5a-4584707f151f\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:34] local.INFO: [SyncActivity] End {\"import_id\":812724,\"provider\":\"hubspot\",\"provider_id\":31,\"team\":\"hubspot\",\"team_id\":2} {\"correlation_id\":\"85d11b4b-b935-429a-bc5a-4584707f151f\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:34] local.INFO: [SyncActivity] Memory usage {\"import_id\":812724,\"provider\":\"hubspot\",\"provider_id\":31,\"team\":\"hubspot\",\"team_id\":2,\"memory_usage\":28724792,\"memory_real_usage\":65011712,\"pid\":74086} {\"correlation_id\":\"85d11b4b-b935-429a-bc5a-4584707f151f\",\"trace_id\":\"1bcf0d5e-e4e2-4f50-8024-7f68fbcb8e6d\"}\n[2026-05-11 12:02:40] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:fail-stalled\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"1a4d5069-a7b3-4b3e-8d7f-c076e44351b3\",\"trace_id\":\"d6c6e772-8962-4940-877d-64950182e999\"}\n[2026-05-11 12:02:40] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:fail-stalled\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"1a4d5069-a7b3-4b3e-8d7f-c076e44351b3\",\"trace_id\":\"d6c6e772-8962-4940-877d-64950182e999\"}\n[2026-05-11 12:02:51] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"jiminny:transcription:retry-stuck\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"b6b032b5-4d0b-441a-a8b3-e4cc1ca06bd0\",\"trace_id\":\"27f07167-c0df-41b6-a65c-8209f1a593a7\"}\n[2026-05-11 12:02:51] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"jiminny:transcription:retry-stuck\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"b6b032b5-4d0b-441a-a8b3-e4cc1ca06bd0\",\"trace_id\":\"27f07167-c0df-41b6-a65c-8209f1a593a7\"}\n[2026-05-11 12:02:58] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"cabbf04d-6060-440b-9dd4-cabc547f7ee8\",\"trace_id\":\"cb94e764-8868-41c8-9a3b-1d00d7e9292a\"}\n[2026-05-11 12:02:58] local.WARNING: [HubSpot Journal Polling] Maximum empty results reached, stopping {\"empty_results\":5,\"max_empty_results\":5} {\"correlation_id\":\"cabbf04d-6060-440b-9dd4-cabc547f7ee8\",\"trace_id\":\"cb94e764-8868-41c8-9a3b-1d00d7e9292a\"}\n[2026-05-11 12:02:58] local.WARNING: [HubSpot Journal Polling] Maximum empty results reached, stopping {\"empty_results\":5,\"max_empty_results\":5} {\"correlation_id\":\"cabbf04d-6060-440b-9dd4-cabc547f7ee8\",\"trace_id\":\"cb94e764-8868-41c8-9a3b-1d00d7e9292a\"}\n[2026-05-11 12:02:58] local.INFO: [HubSpot Journal Polling] Service ending {\"runtime_seconds\":57,\"total_cycles\":5,\"files_downloaded\":0,\"empty_files\":0,\"other_portal_skipped\":0,\"total_events\":0,\"events_per_file\":0,\"avg_api_ms\":318.0,\"avg_download_ms\":0.0,\"avg_transform_ms\":0.0,\"avg_process_ms\":0.0,\"peak_memory_mb\":99.73} {\"correlation_id\":\"cabbf04d-6060-440b-9dd4-cabc547f7ee8\",\"trace_id\":\"cb94e764-8868-41c8-9a3b-1d00d7e9292a\"}\n[2026-05-11 12:02:58] local.INFO: [HubSpot Journal Polling] Saved offset to database on cleanup {\"offset\":\"019e15a9-9ea0-7da7-87bc-82592e3ccf0d\"} {\"correlation_id\":\"cabbf04d-6060-440b-9dd4-cabc547f7ee8\",\"trace_id\":\"cb94e764-8868-41c8-9a3b-1d00d7e9292a\"}\n[2026-05-11 12:02:58] local.INFO: [HubSpot Journal Polling] Released polling lock {\"correlation_id\":\"cabbf04d-6060-440b-9dd4-cabc547f7ee8\",\"trace_id\":\"cb94e764-8868-41c8-9a3b-1d00d7e9292a\"}\n[2026-05-11 12:03:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"9a5b22ae-4849-4cb5-84a1-de89e04cd5b8\",\"trace_id\":\"8447064c-43dc-422d-894e-a54ffbbf7181\"}\n[2026-05-11 12:03:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"9a5b22ae-4849-4cb5-84a1-de89e04cd5b8\",\"trace_id\":\"8447064c-43dc-422d-894e-a54ffbbf7181\"}\n[2026-05-11 12:03:23] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"64980aec-2896-42fb-bcb9-02034393441c\",\"trace_id\":\"5350fe7e-a328-46e9-8205-8293d02f206c\"}\n[2026-05-11 12:03:23] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"64980aec-2896-42fb-bcb9-02034393441c\",\"trace_id\":\"5350fe7e-a328-46e9-8205-8293d02f206c\"}\n[2026-05-11 12:03:26] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"4a8727b3-dd1a-4c4b-9b62-033f1040e6a5\",\"trace_id\":\"36c76caf-78a3-42a5-be8c-510bd9c6e036\"}\n[2026-05-11 12:03:27] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"4a8727b3-dd1a-4c4b-9b62-033f1040e6a5\",\"trace_id\":\"36c76caf-78a3-42a5-be8c-510bd9c6e036\"}\n[2026-05-11 12:03:30] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"6bd83c32-112d-4211-94e0-33cf12b0491c\",\"trace_id\":\"566fa6e6-4ce9-405d-8ca5-36dae51c8385\"}\n[2026-05-11 12:03:30] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"6bd83c32-112d-4211-94e0-33cf12b0491c\",\"trace_id\":\"566fa6e6-4ce9-405d-8ca5-36dae51c8385\"}\n[2026-05-11 12:03:40] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a7dfd1ad-f565-4ea4-a7b3-6ad8ad72cb82\",\"trace_id\":\"b028c50a-c9f4-43c2-90b1-e32ad7d85610\"}\n[2026-05-11 12:03:40] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a7dfd1ad-f565-4ea4-a7b3-6ad8ad72cb82\",\"trace_id\":\"b028c50a-c9f4-43c2-90b1-e32ad7d85610\"}\n[2026-05-11 12:03:49] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"990087d4-ae3a-4724-ba67-901c58aab41f\",\"trace_id\":\"bdf3c73c-0948-4490-91b7-953c76289e13\"}\n[2026-05-11 12:03:50] local.INFO: Dispatching activity sync job {\"import_id\":812725,\"provider\":\"hubspot\",\"team\":\"hubspot\"} {\"correlation_id\":\"990087d4-ae3a-4724-ba67-901c58aab41f\",\"trace_id\":\"bdf3c73c-0948-4490-91b7-953c76289e13\"}\n[2026-05-11 12:03:50] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"990087d4-ae3a-4724-ba67-901c58aab41f\",\"trace_id\":\"bdf3c73c-0948-4490-91b7-953c76289e13\"}\n[2026-05-11 12:03:51] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4e0b1920-6943-4fd0-832d-2f878ad84821\",\"trace_id\":\"bdf3c73c-0948-4490-91b7-953c76289e13\"}\n[2026-05-11 12:03:51] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"4e0b1920-6943-4fd0-832d-2f878ad84821\",\"trace_id\":\"bdf3c73c-0948-4490-91b7-953c76289e13\"}\n[2026-05-11 12:03:51] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4e0b1920-6943-4fd0-832d-2f878ad84821\",\"trace_id\":\"bdf3c73c-0948-4490-91b7-953c76289e13\"}\n[2026-05-11 12:03:51] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":89,\"team_id\":2} {\"correlation_id\":\"4e0b1920-6943-4fd0-832d-2f878ad84821\",\"trace_id\":\"bdf3c73c-0948-4490-91b7-953c76289e13\"}\n[2026-05-11 12:03:51] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":408,\"provider\":\"hubspot\"} {\"correlation_id\":\"4e0b1920-6943-4fd0-832d-2f878ad84821\",\"trace_id\":\"bdf3c73c-0948-4490-91b7-953c76289e13\"}\n[2026-05-11 12:03:51] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":408,\"provider\":\"hubspot\"} {\"correlation_id\":\"4e0b1920-6943-4fd0-832d-2f878ad84821\",\"trace_id\":\"bdf3c73c-0948-4490-91b7-953c76289e13\"}\n[2026-05-11 12:03:51] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4e0b1920-6943-4fd0-832d-2f878ad84821\",\"trace_id\":\"bdf3c73c-0948-4490-91b7-953c76289e13\"}\n[2026-05-11 12:03:51] local.INFO: [SyncActivity] Start {\"import_id\":812725,\"provider\":\"hubspot\",\"provider_id\":31,\"team\":\"hubspot\",\"team_id\":2} {\"correlation_id\":\"4e0b1920-6943-4fd0-832d-2f878ad84821\",\"trace_id\":\"bdf3c73c-0948-4490-91b7-953c76289e13\"}\n[2026-05-11 12:03:51] local.INFO: [HubSpot] Search calls for period {\"from\":\"2026-05-11 11:00:00\",\"to\":\"2026-05-11 12:00:00\"} {\"correlation_id\":\"4e0b1920-6943-4fd0-832d-2f878ad84821\",\"trace_id\":\"bdf3c73c-0948-4490-91b7-953c76289e13\"}\n[2026-05-11 12:03:51] local.INFO: [SyncActivity] End {\"import_id\":812725,\"provider\":\"hubspot\",\"provider_id\":31,\"team\":\"hubspot\",\"team_id\":2} {\"correlation_id\":\"4e0b1920-6943-4fd0-832d-2f878ad84821\",\"trace_id\":\"bdf3c73c-0948-4490-91b7-953c76289e13\"}\n[2026-05-11 12:03:51] local.INFO: [SyncActivity] Memory usage {\"import_id\":812725,\"provider\":\"hubspot\",\"provider_id\":31,\"team\":\"hubspot\",\"team_id\":2,\"memory_usage\":28883304,\"memory_real_usage\":65011712,\"pid\":74086} {\"correlation_id\":\"4e0b1920-6943-4fd0-832d-2f878ad84821\",\"trace_id\":\"bdf3c73c-0948-4490-91b7-953c76289e13\"}\n[2026-05-11 12:03:58] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"e1b9c81d-937c-4057-88dd-842fdbb3118f\",\"trace_id\":\"b45cc768-e8ce-4277-9d31-37cf858c8706\"}\n[2026-05-11 12:03:59] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"e1b9c81d-937c-4057-88dd-842fdbb3118f\",\"trace_id\":\"b45cc768-e8ce-4277-9d31-37cf858c8706\"}\n[2026-05-11 12:04:07] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"nudges:send\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"09ce46fe-edd8-441f-ab67-82736c438274\",\"trace_id\":\"d49cdd65-6530-44c0-adaa-92661a4d3a2a\"}\n[2026-05-11 12:04:08] local.INFO: [Jiminny\\Component\\Nudge\\Command\\NudgesSendCommand::iterate] Processing user nudges. {\"id\":1845,\"uuid\":\"5486011b-8a99-4711-a7ad-c31d433f7c05\",\"email\":\"carter.leila@example.com\",\"timezone\":{\"DateTimeZone\":{\"timezone_type\":3,\"timezone\":\"Pacific/Tarawa\"}}} {\"correlation_id\":\"09ce46fe-edd8-441f-ab67-82736c438274\",\"trace_id\":\"d49cdd65-6530-44c0-adaa-92661a4d3a2a\"}\n[2026-05-11 12:04:08] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"nudges:send\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"09ce46fe-edd8-441f-ab67-82736c438274\",\"trace_id\":\"d49cdd65-6530-44c0-adaa-92661a4d3a2a\"}\n[2026-05-11 12:04:08] local.INFO: [Jiminny\\Component\\Nudge\\Job\\ProcessUserNudgesJob::handle] Start dispatching Jiminny\\Component\\Nudge\\Job\\ProcessNudgeSearchJob {\"user_id\":1845,\"user_uuid\":\"5486011b-8a99-4711-a7ad-c31d433f7c05\",\"email\":\"carter.leila@example.com\"} {\"correlation_id\":\"b3746f54-9a21-41f1-a545-fff64f47a45d\",\"trace_id\":\"d49cdd65-6530-44c0-adaa-92661a4d3a2a\"}\n[2026-05-11 12:04:09] local.INFO: [Jiminny\\Component\\Nudge\\Job\\ProcessUserNudgesJob::handle] End dispatching Jiminny\\Component\\Nudge\\Job\\ProcessNudgeSearchJob. {\"user_id\":1845,\"user_uuid\":\"5486011b-8a99-4711-a7ad-c31d433f7c05\",\"email\":\"carter.leila@example.com\"} {\"correlation_id\":\"b3746f54-9a21-41f1-a545-fff64f47a45d\",\"trace_id\":\"d49cdd65-6530-44c0-adaa-92661a4d3a2a\"}\n[2026-05-11 12:04:13] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"jiminny:playlists:normalize-sort\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"1eb61e71-41c9-48f1-bd67-637a1ba5f503\",\"trace_id\":\"0db0cf8d-b37a-4008-b1ac-c1cdeaf41594\"}\n[2026-05-11 12:04:13] local.INFO: [Jiminny\\Component\\Playlist\\Command\\NormalizeSortCommand::handle] starting. {\"playlists\":[]} {\"correlation_id\":\"1eb61e71-41c9-48f1-bd67-637a1ba5f503\",\"trace_id\":\"0db0cf8d-b37a-4008-b1ac-c1cdeaf41594\"}\n[2026-05-11 12:04:13] local.INFO: [Jiminny\\Component\\Playlist\\Command\\NormalizeSortCommand::handle] finished. {\"normalizedPlaylists\":[],\"deletedPlaylists\":[]} {\"correlation_id\":\"1eb61e71-41c9-48f1-bd67-637a1ba5f503\",\"trace_id\":\"0db0cf8d-b37a-4008-b1ac-c1cdeaf41594\"}\n[2026-05-11 12:04:13] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"jiminny:playlists:normalize-sort\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"1eb61e71-41c9-48f1-bd67-637a1ba5f503\",\"trace_id\":\"0db0cf8d-b37a-4008-b1ac-c1cdeaf41594\"}\n[2026-05-11 12:05:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"eff18911-c17a-4bba-a97f-7cf16da8b350\",\"trace_id\":\"96ec2dbb-57ad-4fc8-9171-82c50cfd6b6b\"}\n[2026-05-11 12:05:12] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"eff18911-c17a-4bba-a97f-7cf16da8b350\",\"trace_id\":\"96ec2dbb-57ad-4fc8-9171-82c50cfd6b6b\"}\n[2026-05-11 12:05:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"eff18911-c17a-4bba-a97f-7cf16da8b350\",\"trace_id\":\"96ec2dbb-57ad-4fc8-9171-82c50cfd6b6b\"}\n[2026-05-11 12:05:21] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"04df40b6-3fa6-4748-a21e-d6b4e03d49e3\",\"trace_id\":\"b2caed43-1ac0-4346-98ac-b1d8373bad9e\"}\n[2026-05-11 12:05:21] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"04df40b6-3fa6-4748-a21e-d6b4e03d49e3\",\"trace_id\":\"b2caed43-1ac0-4346-98ac-b1d8373bad9e\"}\n[2026-05-11 12:05:33] local.NOTICE: Monitoring start {\"correlation_id\":\"82274a99-1da1-46bd-81b4-672c345c65b4\",\"trace_id\":\"22eb2bfc-4c6c-4a13-8044-f6f22c2ab31c\"}\n[2026-05-11 12:05:33] local.NOTICE: Monitoring end {\"correlation_id\":\"82274a99-1da1-46bd-81b4-672c345c65b4\",\"trace_id\":\"22eb2bfc-4c6c-4a13-8044-f6f22c2ab31c\"}\n[2026-05-11 12:05:43] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"535019c1-c234-4a08-a81d-035757d004ed\",\"trace_id\":\"1d1b219b-fee2-47e2-8d79-7e44968935e0\"}\n[2026-05-11 12:05:44] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"535019c1-c234-4a08-a81d-035757d004ed\",\"trace_id\":\"1d1b219b-fee2-47e2-8d79-7e44968935e0\"}\n[2026-05-11 12:05:54] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"fc6999a4-cb9b-4ac2-b72d-14f128961266\",\"trace_id\":\"c58f0405-d34a-4516-952f-d553c07bd5e3\"}\n[2026-05-11 12:05:54] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"fc6999a4-cb9b-4ac2-b72d-14f128961266\",\"trace_id\":\"c58f0405-d34a-4516-952f-d553c07bd5e3\"}\n[2026-05-11 12:05:55] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"fc6999a4-cb9b-4ac2-b72d-14f128961266\",\"trace_id\":\"c58f0405-d34a-4516-952f-d553c07bd5e3\"}\n[2026-05-11 12:05:55] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"fc6999a4-cb9b-4ac2-b72d-14f128961266\",\"trace_id\":\"c58f0405-d34a-4516-952f-d553c07bd5e3\"}\n[2026-05-11 12:06:06] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"8af611ee-0aff-4743-ac38-fba683437367\",\"trace_id\":\"c9e3adbe-e3ab-4df2-9faf-26c552c4bbf2\"}\n[2026-05-11 12:06:06] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"8af611ee-0aff-4743-ac38-fba683437367\",\"trace_id\":\"c9e3adbe-e3ab-4df2-9faf-26c552c4bbf2\"}\n[2026-05-11 12:06:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"c510da3d-c908-453c-8060-817821948925\",\"trace_id\":\"6fe7b865-d9f5-4a7c-b338-d25cfb454e33\"}\n[2026-05-11 12:06:22] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"c510da3d-c908-453c-8060-817821948925\",\"trace_id\":\"6fe7b865-d9f5-4a7c-b338-d25cfb454e33\"}\n[2026-05-11 12:06:27] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"4cbfb372-6d55-41a1-8b5c-60080241a64e\",\"trace_id\":\"8a369363-0208-451e-aa5f-bfdfb51eac9f\"}\n[2026-05-11 12:06:27] local.INFO: Running pre-meeting notification command {\"correlation_id\":\"4cbfb372-6d55-41a1-8b5c-60080241a64e\",\"trace_id\":\"8a369363-0208-451e-aa5f-bfdfb51eac9f\"}\n[2026-05-11 12:06:27] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"4cbfb372-6d55-41a1-8b5c-60080241a64e\",\"trace_id\":\"8a369363-0208-451e-aa5f-bfdfb51eac9f\"}\n[2026-05-11 12:06:34] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"c1b4ec81-d995-457b-8662-ecfbebb3ba75\",\"trace_id\":\"92afc10e-8b2d-4cff-b5ed-c6c3bd2889a2\"}\n[2026-05-11 12:06:34] local.INFO: Running conference:monitor:start command for activities in (2026-05-11 11:56:00, 2026-05-11 12:01:00] {\"correlation_id\":\"c1b4ec81-d995-457b-8662-ecfbebb3ba75\",\"trace_id\":\"92afc10e-8b2d-4cff-b5ed-c6c3bd2889a2\"}\n[2026-05-11 12:06:34] local.INFO: [conference:monitor:start] No activities found in (2026-05-11 11:56:00, 2026-05-11 12:01:00] {\"correlation_id\":\"c1b4ec81-d995-457b-8662-ecfbebb3ba75\",\"trace_id\":\"92afc10e-8b2d-4cff-b5ed-c6c3bd2889a2\"}\n[2026-05-11 12:06:34] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"c1b4ec81-d995-457b-8662-ecfbebb3ba75\",\"trace_id\":\"92afc10e-8b2d-4cff-b5ed-c6c3bd2889a2\"}\n[2026-05-11 12:06:44] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"c88b0977-fbc8-415b-8b6b-1bda91cd2b52\",\"trace_id\":\"2de00b9b-5685-4cec-95e5-0b400a8e7f6c\"}\n[2026-05-11 12:06:44] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesEnded {\"from\":\"12:01\",\"to\":\"12:06\"} {\"correlation_id\":\"c88b0977-fbc8-415b-8b6b-1bda91cd2b52\",\"trace_id\":\"2de00b9b-5685-4cec-95e5-0b400a8e7f6c\"}\n[2026-05-11 12:06:44] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesWithUnfinishedSession {\"from\":\"01:56\",\"to\":\"02:01\"} {\"correlation_id\":\"c88b0977-fbc8-415b-8b6b-1bda91cd2b52\",\"trace_id\":\"2de00b9b-5685-4cec-95e5-0b400a8e7f6c\"}\n[2026-05-11 12:06:44] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"c88b0977-fbc8-415b-8b6b-1bda91cd2b52\",\"trace_id\":\"2de00b9b-5685-4cec-95e5-0b400a8e7f6c\"}\n[2026-05-11 12:06:48] local.NOTICE: Repairing HubSpot tokens start {\"correlation_id\":\"c74a5560-7396-421f-a52f-dd3ff49f3c41\",\"trace_id\":\"640c35d8-2323-4b13-998e-260c6e91361c\"}\n[2026-05-11 12:06:48] local.INFO: Trying to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\"} {\"correlation_id\":\"c74a5560-7396-421f-a52f-dd3ff49f3c41\",\"trace_id\":\"640c35d8-2323-4b13-998e-260c6e91361c\"}\n[2026-05-11 12:06:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"c74a5560-7396-421f-a52f-dd3ff49f3c41\",\"trace_id\":\"640c35d8-2323-4b13-998e-260c6e91361c\"}\n[2026-05-11 12:06:48] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":59,\"provider\":\"hubspot\",\"refreshToken\":\"97b78f6e2cc49965c00c2492b602b02708b1392551e6b3f113fbaa48992af90b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"c74a5560-7396-421f-a52f-dd3ff49f3c41\",\"trace_id\":\"640c35d8-2323-4b13-998e-260c6e91361c\"}\n[2026-05-11 12:06:49] local.ERROR: Failed to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"c74a5560-7396-421f-a52f-dd3ff49f3c41\",\"trace_id\":\"640c35d8-2323-4b13-998e-260c6e91361c\"}\n[2026-05-11 12:06:49] local.INFO: Trying to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\"} {\"correlation_id\":\"c74a5560-7396-421f-a52f-dd3ff49f3c41\",\"trace_id\":\"640c35d8-2323-4b13-998e-260c6e91361c\"}\n[2026-05-11 12:06:49] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"c74a5560-7396-421f-a52f-dd3ff49f3c41\",\"trace_id\":\"640c35d8-2323-4b13-998e-260c6e91361c\"}\n[2026-05-11 12:06:49] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":306,\"provider\":\"hubspot\",\"refreshToken\":\"6fa6aa8cc641d131231acc3470f5c03cb3b07b2e580fb18f8acb3b1dbb72549b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"c74a5560-7396-421f-a52f-dd3ff49f3c41\",\"trace_id\":\"640c35d8-2323-4b13-998e-260c6e91361c\"}\n[2026-05-11 12:06:49] local.ERROR: Failed to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"c74a5560-7396-421f-a52f-dd3ff49f3c41\",\"trace_id\":\"640c35d8-2323-4b13-998e-260c6e91361c\"}\n[2026-05-11 12:06:49] local.INFO: Trying to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\"} {\"correlation_id\":\"c74a5560-7396-421f-a52f-dd3ff49f3c41\",\"trace_id\":\"640c35d8-2323-4b13-998e-260c6e91361c\"}\n[2026-05-11 12:06:49] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"c74a5560-7396-421f-a52f-dd3ff49f3c41\",\"trace_id\":\"640c35d8-2323-4b13-998e-260c6e91361c\"}\n[2026-05-11 12:06:49] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1372,\"provider\":\"hubspot\",\"refreshToken\":\"9aa73948c761da29dce46c177cf9aee1fde483a44169ca38723f9f0597d7a8c4\",\"state\":\"full-refresh\"} {\"correlation_id\":\"c74a5560-7396-421f-a52f-dd3ff49f3c41\",\"trace_id\":\"640c35d8-2323-4b13-998e-260c6e91361c\"}\n[2026-05-11 12:06:49] local.ERROR: Failed to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"c74a5560-7396-421f-a52f-dd3ff49f3c41\",\"trace_id\":\"640c35d8-2323-4b13-998e-260c6e91361c\"}\n[2026-05-11 12:06:49] local.NOTICE: Repairing HubSpot tokens end {\"total\":3,\"fixed\":0,\"failed\":3} {\"correlation_id\":\"c74a5560-7396-421f-a52f-dd3ff49f3c41\",\"trace_id\":\"640c35d8-2323-4b13-998e-260c6e91361c\"}\n[2026-05-11 12:07:07] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"65229f31-e7c6-49db-8e10-3c2473d907f6\",\"trace_id\":\"e091aa06-3bdc-43f6-8e0a-faa009ea6d1f\"}\n[2026-05-11 12:07:07] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"bb1a0aaf-fb11-4615-94f7-b4f379d99c3e\",\"trace_id\":\"f76bd232-88c3-4422-b056-8e4be3f65c95\"}\n[2026-05-11 12:07:07] local.INFO: [HubSpot Journal Command] Starting polling service {\"correlation_id\":\"7bb2749c-da32-424f-9850-c953b2bdd464\",\"trace_id\":\"e391239c-c4ac-4c0e-8474-13a6df5fcc9b\"}\n[2026-05-11 12:07:07] local.INFO: [HubSpot Journal Polling] Service starting {\"memory_limit\":\"256M\",\"max_execution_time\":\"0\",\"initial_memory_mb\":60.0} {\"correlation_id\":\"7bb2749c-da32-424f-9850-c953b2bdd464\",\"trace_id\":\"e391239c-c4ac-4c0e-8474-13a6df5fcc9b\"}\n[2026-05-11 12:07:07] local.INFO: [HubSpot Journal Polling] Acquired polling lock {\"expires_at\":\"2026-05-11T12:09:07.585541Z\"} {\"correlation_id\":\"7bb2749c-da32-424f-9850-c953b2bdd464\",\"trace_id\":\"e391239c-c4ac-4c0e-8474-13a6df5fcc9b\"}\n[2026-05-11 12:07:07] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"bb1a0aaf-fb11-4615-94f7-b4f379d99c3e\",\"trace_id\":\"f76bd232-88c3-4422-b056-8e4be3f65c95\"}\n[2026-05-11 12:07:07] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"65229f31-e7c6-49db-8e10-3c2473d907f6\",\"trace_id\":\"e091aa06-3bdc-43f6-8e0a-faa009ea6d1f\"}\n[2026-05-11 12:07:07] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"7bb2749c-da32-424f-9850-c953b2bdd464\",\"trace_id\":\"e391239c-c4ac-4c0e-8474-13a6df5fcc9b\"}\n[2026-05-11 12:07:13] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"7bb2749c-da32-424f-9850-c953b2bdd464\",\"trace_id\":\"e391239c-c4ac-4c0e-8474-13a6df5fcc9b\"}\n[2026-05-11 12:07:18] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"7bb2749c-da32-424f-9850-c953b2bdd464\",\"trace_id\":\"e391239c-c4ac-4c0e-8474-13a6df5fcc9b\"}\n[2026-05-11 12:07:33] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"7bb2749c-da32-424f-9850-c953b2bdd464\",\"trace_id\":\"e391239c-c4ac-4c0e-8474-13a6df5fcc9b\"}\n[2026-05-11 12:08:03] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"7bb2749c-da32-424f-9850-c953b2bdd464\",\"trace_id\":\"e391239c-c4ac-4c0e-8474-13a6df5fcc9b\"}\n[2026-05-11 12:08:03] local.WARNING: [HubSpot Journal Polling] Maximum empty results reached, stopping {\"empty_results\":5,\"max_empty_results\":5} {\"correlation_id\":\"7bb2749c-da32-424f-9850-c953b2bdd464\",\"trace_id\":\"e391239c-c4ac-4c0e-8474-13a6df5fcc9b\"}\n[2026-05-11 12:08:03] local.WARNING: [HubSpot Journal Polling] Maximum empty results reached, stopping {\"empty_results\":5,\"max_empty_results\":5} {\"correlation_id\":\"7bb2749c-da32-424f-9850-c953b2bdd464\",\"trace_id\":\"e391239c-c4ac-4c0e-8474-13a6df5fcc9b\"}\n[2026-05-11 12:08:03] local.INFO: [HubSpot Journal Polling] Service ending {\"runtime_seconds\":56,\"total_cycles\":5,\"files_downloaded\":0,\"empty_files\":0,\"other_portal_skipped\":0,\"total_events\":0,\"events_per_file\":0,\"avg_api_ms\":211.5,\"avg_download_ms\":0.0,\"avg_transform_ms\":0.0,\"avg_process_ms\":0.0,\"peak_memory_mb\":99.73} {\"correlation_id\":\"7bb2749c-da32-424f-9850-c953b2bdd464\",\"trace_id\":\"e391239c-c4ac-4c0e-8474-13a6df5fcc9b\"}\n[2026-05-11 12:08:04] local.INFO: [HubSpot Journal Polling] Saved offset to database on cleanup {\"offset\":\"019e15a9-9ea0-7da7-87bc-82592e3ccf0d\"} {\"correlation_id\":\"7bb2749c-da32-424f-9850-c953b2bdd464\",\"trace_id\":\"e391239c-c4ac-4c0e-8474-13a6df5fcc9b\"}\n[2026-05-11 12:08:04] local.INFO: [HubSpot Journal Polling] Released polling lock {\"correlation_id\":\"7bb2749c-da32-424f-9850-c953b2bdd464\",\"trace_id\":\"e391239c-c4ac-4c0e-8474-13a6df5fcc9b\"}\n[2026-05-11 12:08:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"e373212e-5d4b-4991-8f5d-eb8b9f5cff2a\",\"trace_id\":\"01e853a8-729a-4b1c-9ee9-e5336a8b1712\"}\n[2026-05-11 12:08:16] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"e373212e-5d4b-4991-8f5d-eb8b9f5cff2a\",\"trace_id\":\"01e853a8-729a-4b1c-9ee9-e5336a8b1712\"}\n[2026-05-11 12:08:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"e373212e-5d4b-4991-8f5d-eb8b9f5cff2a\",\"trace_id\":\"01e853a8-729a-4b1c-9ee9-e5336a8b1712\"}\n[2026-05-11 12:08:26] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"5f5720b6-644d-4163-b814-287dbe01c92a\",\"trace_id\":\"852182e9-078f-475d-8dba-7d169e35ab4c\"}\n[2026-05-11 12:08:26] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"5f5720b6-644d-4163-b814-287dbe01c92a\",\"trace_id\":\"852182e9-078f-475d-8dba-7d169e35ab4c\"}\n[2026-05-11 12:08:33] local.NOTICE: Monitoring start {\"correlation_id\":\"4c0161c0-a8f7-4212-b593-ea274557c0cc\",\"trace_id\":\"3a8a4c1b-bab3-419c-9b06-cb7d570b57e2\"}\n[2026-05-11 12:08:34] local.NOTICE: Monitoring end {\"correlation_id\":\"4c0161c0-a8f7-4212-b593-ea274557c0cc\",\"trace_id\":\"3a8a4c1b-bab3-419c-9b06-cb7d570b57e2\"}\n[2026-05-11 12:08:40] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"09aa9c09-6c8e-4834-8981-9e7714e04d2a\",\"trace_id\":\"f06ba8f0-2eaa-404d-8ef7-f45e6028df66\"}\n[2026-05-11 12:08:40] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"09aa9c09-6c8e-4834-8981-9e7714e04d2a\",\"trace_id\":\"f06ba8f0-2eaa-404d-8ef7-f45e6028df66\"}\n[2026-05-11 12:08:51] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"20b3aa2e-017f-467e-ab72-6acf06e93255\",\"trace_id\":\"fdabe0c5-1e47-4af4-9d9e-31d39f953d06\"}\n[2026-05-11 12:08:51] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"20b3aa2e-017f-467e-ab72-6acf06e93255\",\"trace_id\":\"fdabe0c5-1e47-4af4-9d9e-31d39f953d06\"}\n[2026-05-11 12:08:51] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"20b3aa2e-017f-467e-ab72-6acf06e93255\",\"trace_id\":\"fdabe0c5-1e47-4af4-9d9e-31d39f953d06\"}\n[2026-05-11 12:08:51] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"20b3aa2e-017f-467e-ab72-6acf06e93255\",\"trace_id\":\"fdabe0c5-1e47-4af4-9d9e-31d39f953d06\"}\n[2026-05-11 12:09:05] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"137bea0c-5bfb-4b13-9f03-c7338703ae55\",\"trace_id\":\"c582158f-f3bd-43a1-ab83-c7c774737368\"}\n[2026-05-11 12:09:05] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 12:07:00, 2026-05-11 12:09:00] {\"correlation_id\":\"137bea0c-5bfb-4b13-9f03-c7338703ae55\",\"trace_id\":\"c582158f-f3bd-43a1-ab83-c7c774737368\"}\n[2026-05-11 12:09:05] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 12:07:00, 2026-05-11 12:09:00] {\"correlation_id\":\"137bea0c-5bfb-4b13-9f03-c7338703ae55\",\"trace_id\":\"c582158f-f3bd-43a1-ab83-c7c774737368\"}\n[2026-05-11 12:09:05] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"137bea0c-5bfb-4b13-9f03-c7338703ae55\",\"trace_id\":\"c582158f-f3bd-43a1-ab83-c7c774737368\"}\n[2026-05-11 12:09:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"540a3110-aaa8-4bdc-94db-2b38ea90bca0\",\"trace_id\":\"fa71ab3f-a184-4e23-a387-205bf215f087\"}\n[2026-05-11 12:09:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"540a3110-aaa8-4bdc-94db-2b38ea90bca0\",\"trace_id\":\"fa71ab3f-a184-4e23-a387-205bf215f087\"}\n[2026-05-11 12:10:08] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"c2ad4eaf-2a63-435f-a919-2955b5926937\",\"trace_id\":\"51f8e0b7-5d1c-4ac0-936e-6d03d4ee6cb7\"}\n[2026-05-11 12:10:09] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"c2ad4eaf-2a63-435f-a919-2955b5926937\",\"trace_id\":\"51f8e0b7-5d1c-4ac0-936e-6d03d4ee6cb7\"}\n[2026-05-11 12:10:09] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"c2ad4eaf-2a63-435f-a919-2955b5926937\",\"trace_id\":\"51f8e0b7-5d1c-4ac0-936e-6d03d4ee6cb7\"}\n[2026-05-11 12:10:19] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"02407a13-5fca-4054-8cf2-ea75d2861254\",\"trace_id\":\"e293aa8b-3853-4489-9f8c-61c7d0b555e5\"}\n[2026-05-11 12:10:19] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"02407a13-5fca-4054-8cf2-ea75d2861254\",\"trace_id\":\"e293aa8b-3853-4489-9f8c-61c7d0b555e5\"}\n[2026-05-11 12:10:31] local.NOTICE: Monitoring start {\"correlation_id\":\"5936b994-c849-4686-a679-531338c96513\",\"trace_id\":\"049073d9-1e62-4ca6-873c-39b21f1a97de\"}\n[2026-05-11 12:10:31] local.NOTICE: Monitoring end {\"correlation_id\":\"5936b994-c849-4686-a679-531338c96513\",\"trace_id\":\"049073d9-1e62-4ca6-873c-39b21f1a97de\"}\n[2026-05-11 12:10:36] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"ba8926f9-8c2a-4bb5-98e5-454445b7133e\",\"trace_id\":\"e55fa948-3518-4420-9735-2d3ba3f0cc35\"}\n[2026-05-11 12:10:37] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"ba8926f9-8c2a-4bb5-98e5-454445b7133e\",\"trace_id\":\"e55fa948-3518-4420-9735-2d3ba3f0cc35\"}\n[2026-05-11 12:10:44] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"c263d0c8-b089-404b-bab6-89efdc806169\",\"trace_id\":\"0551ff6b-4560-4a83-9cca-935e27602890\"}\n[2026-05-11 12:10:44] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"c263d0c8-b089-404b-bab6-89efdc806169\",\"trace_id\":\"0551ff6b-4560-4a83-9cca-935e27602890\"}\n[2026-05-11 12:10:44] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"c263d0c8-b089-404b-bab6-89efdc806169\",\"trace_id\":\"0551ff6b-4560-4a83-9cca-935e27602890\"}\n[2026-05-11 12:10:44] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"c263d0c8-b089-404b-bab6-89efdc806169\",\"trace_id\":\"0551ff6b-4560-4a83-9cca-935e27602890\"}\n[2026-05-11 12:10:50] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"ec106243-5821-4819-80fb-53edf60bb4db\",\"trace_id\":\"a0b3918b-5903-4bfc-9756-0394eb4ad6ac\"}\n[2026-05-11 12:10:50] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 12:08:00, 2026-05-11 12:10:00] {\"correlation_id\":\"ec106243-5821-4819-80fb-53edf60bb4db\",\"trace_id\":\"a0b3918b-5903-4bfc-9756-0394eb4ad6ac\"}\n[2026-05-11 12:10:50] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 12:08:00, 2026-05-11 12:10:00] {\"correlation_id\":\"ec106243-5821-4819-80fb-53edf60bb4db\",\"trace_id\":\"a0b3918b-5903-4bfc-9756-0394eb4ad6ac\"}\n[2026-05-11 12:10:50] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"ec106243-5821-4819-80fb-53edf60bb4db\",\"trace_id\":\"a0b3918b-5903-4bfc-9756-0394eb4ad6ac\"}\n[2026-05-11 12:10:54] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"6c55831c-ab94-4ee5-8d5f-b4dba4eea283\",\"trace_id\":\"0ef9db15-547e-45aa-b145-681052b0e038\"}\n[2026-05-11 12:10:54] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"6c55831c-ab94-4ee5-8d5f-b4dba4eea283\",\"trace_id\":\"0ef9db15-547e-45aa-b145-681052b0e038\"}\n[2026-05-11 12:11:06] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"4845d426-47cb-4aaa-a9f7-b60252955d67\",\"trace_id\":\"cb4e58ce-8b91-40e8-a826-ef4e08cdb713\"}\n[2026-05-11 12:11:06] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"4845d426-47cb-4aaa-a9f7-b60252955d67\",\"trace_id\":\"cb4e58ce-8b91-40e8-a826-ef4e08cdb713\"}\n[2026-05-11 12:11:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"c89d8e7b-ba20-440f-bee3-7023fcbe078c\",\"trace_id\":\"65c1ef93-379e-4e7c-bbea-c28bea906500\"}\n[2026-05-11 12:11:16] local.INFO: Running pre-meeting notification command {\"correlation_id\":\"c89d8e7b-ba20-440f-bee3-7023fcbe078c\",\"trace_id\":\"65c1ef93-379e-4e7c-bbea-c28bea906500\"}\n[2026-05-11 12:11:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"c89d8e7b-ba20-440f-bee3-7023fcbe078c\",\"trace_id\":\"65c1ef93-379e-4e7c-bbea-c28bea906500\"}\n[2026-05-11 12:11:22] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"90d0a36d-82fd-4da9-8f46-6e82a7e60f83\",\"trace_id\":\"2acfa347-b7f3-4738-b1f7-00a3a04ab7a4\"}\n[2026-05-11 12:11:22] local.INFO: Running conference:monitor:start command for activities in (2026-05-11 12:01:00, 2026-05-11 12:06:00] {\"correlation_id\":\"90d0a36d-82fd-4da9-8f46-6e82a7e60f83\",\"trace_id\":\"2acfa347-b7f3-4738-b1f7-00a3a04ab7a4\"}\n[2026-05-11 12:11:22] local.INFO: [conference:monitor:start] No activities found in (2026-05-11 12:01:00, 2026-05-11 12:06:00] {\"correlation_id\":\"90d0a36d-82fd-4da9-8f46-6e82a7e60f83\",\"trace_id\":\"2acfa347-b7f3-4738-b1f7-00a3a04ab7a4\"}\n[2026-05-11 12:11:22] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"90d0a36d-82fd-4da9-8f46-6e82a7e60f83\",\"trace_id\":\"2acfa347-b7f3-4738-b1f7-00a3a04ab7a4\"}\n[2026-05-11 12:11:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"41320f33-7f6d-4d2e-8d8d-9eba0f0eb50d\",\"trace_id\":\"67fa621d-0511-4cac-b5fb-a617f21d0df7\"}\n[2026-05-11 12:11:31] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesEnded {\"from\":\"12:06\",\"to\":\"12:11\"} {\"correlation_id\":\"41320f33-7f6d-4d2e-8d8d-9eba0f0eb50d\",\"trace_id\":\"67fa621d-0511-4cac-b5fb-a617f21d0df7\"}\n[2026-05-11 12:11:31] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesWithUnfinishedSession {\"from\":\"02:01\",\"to\":\"02:06\"} {\"correlation_id\":\"41320f33-7f6d-4d2e-8d8d-9eba0f0eb50d\",\"trace_id\":\"67fa621d-0511-4cac-b5fb-a617f21d0df7\"}\n[2026-05-11 12:11:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"41320f33-7f6d-4d2e-8d8d-9eba0f0eb50d\",\"trace_id\":\"67fa621d-0511-4cac-b5fb-a617f21d0df7\"}\n[2026-05-11 12:11:40] local.NOTICE: Repairing HubSpot tokens start {\"correlation_id\":\"93b00bf3-c8ee-465e-b76a-fb39e774f00e\",\"trace_id\":\"754ecb93-e74e-432a-a232-9ec45223e39d\"}\n[2026-05-11 12:11:40] local.INFO: Trying to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\"} {\"correlation_id\":\"93b00bf3-c8ee-465e-b76a-fb39e774f00e\",\"trace_id\":\"754ecb93-e74e-432a-a232-9ec45223e39d\"}\n[2026-05-11 12:11:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"93b00bf3-c8ee-465e-b76a-fb39e774f00e\",\"trace_id\":\"754ecb93-e74e-432a-a232-9ec45223e39d\"}\n[2026-05-11 12:11:40] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":59,\"provider\":\"hubspot\",\"refreshToken\":\"97b78f6e2cc49965c00c2492b602b02708b1392551e6b3f113fbaa48992af90b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"93b00bf3-c8ee-465e-b76a-fb39e774f00e\",\"trace_id\":\"754ecb93-e74e-432a-a232-9ec45223e39d\"}\n[2026-05-11 12:11:40] local.ERROR: Failed to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"93b00bf3-c8ee-465e-b76a-fb39e774f00e\",\"trace_id\":\"754ecb93-e74e-432a-a232-9ec45223e39d\"}\n[2026-05-11 12:11:40] local.INFO: Trying to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\"} {\"correlation_id\":\"93b00bf3-c8ee-465e-b76a-fb39e774f00e\",\"trace_id\":\"754ecb93-e74e-432a-a232-9ec45223e39d\"}\n[2026-05-11 12:11:40] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"93b00bf3-c8ee-465e-b76a-fb39e774f00e\",\"trace_id\":\"754ecb93-e74e-432a-a232-9ec45223e39d\"}\n[2026-05-11 12:11:40] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":306,\"provider\":\"hubspot\",\"refreshToken\":\"6fa6aa8cc641d131231acc3470f5c03cb3b07b2e580fb18f8acb3b1dbb72549b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"93b00bf3-c8ee-465e-b76a-fb39e774f00e\",\"trace_id\":\"754ecb93-e74e-432a-a232-9ec45223e39d\"}\n[2026-05-11 12:11:41] local.ERROR: Failed to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"93b00bf3-c8ee-465e-b76a-fb39e774f00e\",\"trace_id\":\"754ecb93-e74e-432a-a232-9ec45223e39d\"}\n[2026-05-11 12:11:41] local.INFO: Trying to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\"} {\"correlation_id\":\"93b00bf3-c8ee-465e-b76a-fb39e774f00e\",\"trace_id\":\"754ecb93-e74e-432a-a232-9ec45223e39d\"}\n[2026-05-11 12:11:41] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"93b00bf3-c8ee-465e-b76a-fb39e774f00e\",\"trace_id\":\"754ecb93-e74e-432a-a232-9ec45223e39d\"}\n[2026-05-11 12:11:41] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1372,\"provider\":\"hubspot\",\"refreshToken\":\"9aa73948c761da29dce46c177cf9aee1fde483a44169ca38723f9f0597d7a8c4\",\"state\":\"full-refresh\"} {\"correlation_id\":\"93b00bf3-c8ee-465e-b76a-fb39e774f00e\",\"trace_id\":\"754ecb93-e74e-432a-a232-9ec45223e39d\"}\n[2026-05-11 12:11:41] local.ERROR: Failed to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"93b00bf3-c8ee-465e-b76a-fb39e774f00e\",\"trace_id\":\"754ecb93-e74e-432a-a232-9ec45223e39d\"}\n[2026-05-11 12:11:41] local.NOTICE: Repairing HubSpot tokens end {\"total\":3,\"fixed\":0,\"failed\":3} {\"correlation_id\":\"93b00bf3-c8ee-465e-b76a-fb39e774f00e\",\"trace_id\":\"754ecb93-e74e-432a-a232-9ec45223e39d\"}\n[2026-05-11 12:11:55] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"jiminny:transcription:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"350cc154-ed9c-47d7-b2f7-2d43d78a72ac\",\"trace_id\":\"8791deab-702c-4a13-9ee5-c0ad8bd8f50c\"}\n[2026-05-11 12:11:55] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"c00dfe1b-972e-40fb-abaf-756e6b712939\",\"trace_id\":\"5b50862e-1a7c-49e4-9b32-1c2125788d17\"}\n[2026-05-11 12:11:55] local.INFO: [HubSpot Journal Command] Starting polling service {\"correlation_id\":\"871fa879-6628-4b78-b29f-778ee41729a9\",\"trace_id\":\"24655a87-eaaa-4cc1-810f-2480c9c1d55f\"}\n[2026-05-11 12:11:55] local.INFO: [HubSpot Journal Polling] Service starting {\"memory_limit\":\"256M\",\"max_execution_time\":\"0\",\"initial_memory_mb\":60.0} {\"correlation_id\":\"871fa879-6628-4b78-b29f-778ee41729a9\",\"trace_id\":\"24655a87-eaaa-4cc1-810f-2480c9c1d55f\"}\n[2026-05-11 12:11:55] local.INFO: [HubSpot Journal Polling] Acquired polling lock {\"expires_at\":\"2026-05-11T12:13:55.701427Z\"} {\"correlation_id\":\"871fa879-6628-4b78-b29f-778ee41729a9\",\"trace_id\":\"24655a87-eaaa-4cc1-810f-2480c9c1d55f\"}\n[2026-05-11 12:11:56] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"jiminny:transcription:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"350cc154-ed9c-47d7-b2f7-2d43d78a72ac\",\"trace_id\":\"8791deab-702c-4a13-9ee5-c0ad8bd8f50c\"}\n[2026-05-11 12:11:56] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"c00dfe1b-972e-40fb-abaf-756e6b712939\",\"trace_id\":\"5b50862e-1a7c-49e4-9b32-1c2125788d17\"}\n[2026-05-11 12:11:56] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"871fa879-6628-4b78-b29f-778ee41729a9\",\"trace_id\":\"24655a87-eaaa-4cc1-810f-2480c9c1d55f\"}\n[2026-05-11 12:12:02] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"871fa879-6628-4b78-b29f-778ee41729a9\",\"trace_id\":\"24655a87-eaaa-4cc1-810f-2480c9c1d55f\"}\n[2026-05-11 12:12:07] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"871fa879-6628-4b78-b29f-778ee41729a9\",\"trace_id\":\"24655a87-eaaa-4cc1-810f-2480c9c1d55f\"}\n[2026-05-11 12:12:10] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:reset-governor\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"df34a605-d107-465f-9da2-b61e3ff56f38\",\"trace_id\":\"6bcc3610-a7c1-4b9e-9bf4-f67d7511e5f9\"}\n[2026-05-11 12:12:10] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:reset-governor\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"df34a605-d107-465f-9da2-b61e3ff56f38\",\"trace_id\":\"6bcc3610-a7c1-4b9e-9bf4-f67d7511e5f9\"}\n[2026-05-11 12:12:22] local.INFO: [HubSpot Journal Auth] Requesting new client credentials token {\"correlation_id\":\"871fa879-6628-4b78-b29f-778ee41729a9\",\"trace_id\":\"24655a87-eaaa-4cc1-810f-2480c9c1d55f\"}\n[2026-05-11 12:12:23] local.INFO: [HubSpot Journal Auth] Successfully obtained new access token {\"expires_in\":1800,\"cached_for\":1500} {\"correlation_id\":\"871fa879-6628-4b78-b29f-778ee41729a9\",\"trace_id\":\"24655a87-eaaa-4cc1-810f-2480c9c1d55f\"}\n[2026-05-11 12:12:23] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"871fa879-6628-4b78-b29f-778ee41729a9\",\"trace_id\":\"24655a87-eaaa-4cc1-810f-2480c9c1d55f\"}\n[2026-05-11 12:12:24] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"8de8a972-0d7a-4a35-b7c0-6d5bc2b25746\",\"trace_id\":\"df8a8c1e-1571-4a50-bba2-07e34c7cbf2c\"}\n[2026-05-11 12:12:24] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"8de8a972-0d7a-4a35-b7c0-6d5bc2b25746\",\"trace_id\":\"df8a8c1e-1571-4a50-bba2-07e34c7cbf2c\"}\n[2026-05-11 12:12:53] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"871fa879-6628-4b78-b29f-778ee41729a9\",\"trace_id\":\"24655a87-eaaa-4cc1-810f-2480c9c1d55f\"}\n[2026-05-11 12:12:53] local.WARNING: [HubSpot Journal Polling] Maximum empty results reached, stopping {\"empty_results\":5,\"max_empty_results\":5} {\"correlation_id\":\"871fa879-6628-4b78-b29f-778ee41729a9\",\"trace_id\":\"24655a87-eaaa-4cc1-810f-2480c9c1d55f\"}\n[2026-05-11 12:12:53] local.WARNING: [HubSpot Journal Polling] Maximum empty results reached, stopping {\"empty_results\":5,\"max_empty_results\":5} {\"correlation_id\":\"871fa879-6628-4b78-b29f-778ee41729a9\",\"trace_id\":\"24655a87-eaaa-4cc1-810f-2480c9c1d55f\"}\n[2026-05-11 12:12:53] local.INFO: [HubSpot Journal Polling] Service ending {\"runtime_seconds\":58,\"total_cycles\":5,\"files_downloaded\":0,\"empty_files\":0,\"other_portal_skipped\":0,\"total_events\":0,\"events_per_file\":0,\"avg_api_ms\":474.2,\"avg_download_ms\":0.0,\"avg_transform_ms\":0.0,\"avg_process_ms\":0.0,\"peak_memory_mb\":99.73} {\"correlation_id\":\"871fa879-6628-4b78-b29f-778ee41729a9\",\"trace_id\":\"24655a87-eaaa-4cc1-810f-2480c9c1d55f\"}\n[2026-05-11 12:12:54] local.INFO: [HubSpot Journal Polling] Saved offset to database on cleanup {\"offset\":\"019e15a9-9ea0-7da7-87bc-82592e3ccf0d\"} {\"correlation_id\":\"871fa879-6628-4b78-b29f-778ee41729a9\",\"trace_id\":\"24655a87-eaaa-4cc1-810f-2480c9c1d55f\"}\n[2026-05-11 12:12:54] local.INFO: [HubSpot Journal Polling] Released polling lock {\"correlation_id\":\"871fa879-6628-4b78-b29f-778ee41729a9\",\"trace_id\":\"24655a87-eaaa-4cc1-810f-2480c9c1d55f\"}\n[2026-05-11 12:13:28] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"c35776f8-62c9-41ff-b6d4-a23750a1a889\",\"trace_id\":\"5c2537e6-9a1b-420f-8c9e-bb65fcd82302\"}\n[2026-05-11 12:13:28] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"c35776f8-62c9-41ff-b6d4-a23750a1a889\",\"trace_id\":\"5c2537e6-9a1b-420f-8c9e-bb65fcd82302\"}\n[2026-05-11 12:13:28] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"c35776f8-62c9-41ff-b6d4-a23750a1a889\",\"trace_id\":\"5c2537e6-9a1b-420f-8c9e-bb65fcd82302\"}\n[2026-05-11 12:13:38] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"319a5d19-1dc4-4013-ab90-f349b03395c2\",\"trace_id\":\"f9ac67b6-4131-43d1-ac74-5f26ee330b55\"}\n[2026-05-11 12:13:38] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"319a5d19-1dc4-4013-ab90-f349b03395c2\",\"trace_id\":\"f9ac67b6-4131-43d1-ac74-5f26ee330b55\"}\n[2026-05-11 12:13:45] local.NOTICE: Monitoring start {\"correlation_id\":\"4a33e003-3405-40cd-a89d-2b7cc6f78637\",\"trace_id\":\"70fb87ea-843d-4768-a3f5-7f986571d6b5\"}\n[2026-05-11 12:13:45] local.NOTICE: Monitoring end {\"correlation_id\":\"4a33e003-3405-40cd-a89d-2b7cc6f78637\",\"trace_id\":\"70fb87ea-843d-4768-a3f5-7f986571d6b5\"}\n[2026-05-11 12:14:01] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"ac82aa35-8897-40ba-a650-c663dadfd5b2\",\"trace_id\":\"2ffb91a9-1d0b-4a20-97d0-557952cb1ced\"}\n[2026-05-11 12:14:01] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"ac82aa35-8897-40ba-a650-c663dadfd5b2\",\"trace_id\":\"2ffb91a9-1d0b-4a20-97d0-557952cb1ced\"}\n[2026-05-11 12:14:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"fb99b43c-e8c2-4d74-ad60-653e57fca84c\",\"trace_id\":\"dac1a19a-1962-4e6f-be53-7b22a20784f8\"}\n[2026-05-11 12:14:12] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"fb99b43c-e8c2-4d74-ad60-653e57fca84c\",\"trace_id\":\"dac1a19a-1962-4e6f-be53-7b22a20784f8\"}\n[2026-05-11 12:14:12] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"fb99b43c-e8c2-4d74-ad60-653e57fca84c\",\"trace_id\":\"dac1a19a-1962-4e6f-be53-7b22a20784f8\"}\n[2026-05-11 12:14:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"fb99b43c-e8c2-4d74-ad60-653e57fca84c\",\"trace_id\":\"dac1a19a-1962-4e6f-be53-7b22a20784f8\"}\n[2026-05-11 12:14:22] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"d239566f-ccbf-4143-bb0f-e24eb6a77126\",\"trace_id\":\"af5f5156-3fdb-4cd1-ac6c-52881c44951d\"}\n[2026-05-11 12:14:22] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"calendar:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:22] local.NOTICE: Calendar sync start {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:22] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"d239566f-ccbf-4143-bb0f-e24eb6a77126\",\"trace_id\":\"af5f5156-3fdb-4cd1-ac6c-52881c44951d\"}\n[2026-05-11 12:14:23] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1393,\"provider\":\"google\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:23] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1393,\"provider\":\"google\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:23] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:23] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1393,\"provider\":\"google\",\"refreshToken\":\"5aa7e2d96b53201cd16fca5d2e4ef3ad03320971fc064781d18aee3ae7b99fbf\",\"state\":\"full-refresh\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:24] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1393,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Account has been deleted\"}} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:24] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:24] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1393,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:24] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1387,\"provider\":\"google\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:24] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1387,\"provider\":\"google\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:24] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:24] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1387,\"provider\":\"google\",\"refreshToken\":\"8157ac6de94842937194009e9c50e459253600f799dacf6a40755ffdbeb5bba6\",\"state\":\"full-refresh\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:24] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1387,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Account has been deleted\"}} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:24] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:24] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1387,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:24] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1348,\"provider\":\"google\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:24] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1348,\"provider\":\"google\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:24] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:24] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1348,\"provider\":\"google\",\"refreshToken\":\"9e7d13d3032d0cb1b79d8e95aef01383e8e91eb52ff8ee960c8a0b6b95cd8c73\",\"state\":\"full-refresh\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:25] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1348,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:25] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:25] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1348,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:25] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1361,\"provider\":\"google\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:25] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1361,\"provider\":\"google\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:25] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:25] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1361,\"provider\":\"google\",\"refreshToken\":\"6c843da199c2b9907445329304fcc4ec5057a4ee748d8299641764395c08e1fd\",\"state\":\"full-refresh\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:25] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1361,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Account has been deleted\"}} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:25] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:25] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1361,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:25] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1310,\"provider\":\"google\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:25] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1310,\"provider\":\"google\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:25] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:25] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1310,\"provider\":\"google\",\"refreshToken\":\"e34818922c2830a660813a63f6169a4a9a992ae2cccd7dc8dd7796cfdb470ef1\",\"state\":\"full-refresh\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:25] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1310,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:25] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:25] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1310,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:25] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1333,\"provider\":\"google\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:25] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1333,\"provider\":\"google\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:25] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:25] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1333,\"provider\":\"google\",\"refreshToken\":\"6c902986546d8e8da1dc539b046cdc1d458f519acc972e5b5f1d6a1a295165e0\",\"state\":\"full-refresh\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:26] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1333,\"provider\":\"google\",\"responseBody\":{\"error\":\"unauthorized_client\",\"error_description\":\"Unauthorized\"}} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:26] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:26] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1333,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:26] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1368,\"provider\":\"google\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:26] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1368,\"provider\":\"google\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:26] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:26] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1368,\"provider\":\"google\",\"refreshToken\":\"d2f128898ff8543bd16b69cfae37896ab85119b0f5ed2b431d739593bb600333\",\"state\":\"full-refresh\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:26] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1368,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:26] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:26] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1368,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:26] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1365,\"provider\":\"google\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:26] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1365,\"provider\":\"google\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:26] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:26] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1365,\"provider\":\"google\",\"refreshToken\":\"7676e4a9afcd082b413248ab5ec6e487021fec6a9bdf315860a59cefad9caad8\",\"state\":\"full-refresh\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:26] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1365,\"provider\":\"google\",\"responseBody\":{\"error\":\"unauthorized_client\",\"error_description\":\"Unauthorized\"}} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:26] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:26] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1365,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:26] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1364,\"provider\":\"google\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:26] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1364,\"provider\":\"google\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:26] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:26] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1364,\"provider\":\"google\",\"refreshToken\":\"dd5882ebce76e645292ce33ae74238abbb77c0a4ecc6a2bfe723cad82e72ba8e\",\"state\":\"full-refresh\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:26] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1364,\"provider\":\"google\",\"responseBody\":{\"error\":\"unauthorized_client\",\"error_description\":\"Unauthorized\"}} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:26] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:26] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1364,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1370,\"provider\":\"office\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:27] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1370,\"provider\":\"office\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:27] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1370,\"provider\":\"office\",\"refreshToken\":\"b7ee8035306d0043cea6e00e7c4fe14f745e44074a1194db62a31cdf8b70af3e\",\"state\":\"full-refresh\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:27] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1370,\"provider\":\"office\",\"responseBody\":\"{\\\"error\\\":\\\"invalid_client\\\",\\\"error_description\\\":\\\"AADSTS7000215: Invalid client secret provided. Ensure the secret being sent in the request is the client secret value, not the client secret ID, for a secret added to app 'bbcbb2ef-6200-4fae-82bd-d81f5dd738da'. Trace ID: 7401461f-0309-4080-ae0f-82ead7662000 Correlation ID: 8dd767f6-c91d-429a-8249-cd1a0c12ae8e Timestamp: 2026-05-11 12:14:27Z\\\",\\\"error_codes\\\":[7000215],\\\"timestamp\\\":\\\"2026-05-11 12:14:27Z\\\",\\\"trace_id\\\":\\\"7401461f-0309-4080-ae0f-82ead7662000\\\",\\\"correlation_id\\\":\\\"8dd767f6-c91d-429a-8249-cd1a0c12ae8e\\\",\\\"error_uri\\\":\\\"https://login.microsoftonline.com/error?code=7000215\\\"}\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:27] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:27] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1370,\"provider\":\"office\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:27] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1202,\"provider\":\"office\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:27] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1202,\"provider\":\"office\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:27] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:27] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1202,\"provider\":\"office\",\"refreshToken\":\"b458799ccc29b21a6e2eb5260fdb63e49ccba21bf942a3973fb63799bd7f0afe\",\"state\":\"full-refresh\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:28] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1202,\"provider\":\"office\",\"responseBody\":\"{\\\"error\\\":\\\"invalid_client\\\",\\\"error_description\\\":\\\"AADSTS7000215: Invalid client secret provided. Ensure the secret being sent in the request is the client secret value, not the client secret ID, for a secret added to app 'bbcbb2ef-6200-4fae-82bd-d81f5dd738da'. Trace ID: 4d47225a-8d39-486b-b214-3b9f93b30100 Correlation ID: 387f2f6b-a3e1-446a-ae99-10f5684ecd51 Timestamp: 2026-05-11 12:14:28Z\\\",\\\"error_codes\\\":[7000215],\\\"timestamp\\\":\\\"2026-05-11 12:14:28Z\\\",\\\"trace_id\\\":\\\"4d47225a-8d39-486b-b214-3b9f93b30100\\\",\\\"correlation_id\\\":\\\"387f2f6b-a3e1-446a-ae99-10f5684ecd51\\\",\\\"error_uri\\\":\\\"https://login.microsoftonline.com/error?code=7000215\\\"}\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:28] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:28] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1202,\"provider\":\"office\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:28] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:28] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:28] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:28] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1502,\"provider\":\"google\",\"refreshToken\":\"d417c92ebaa137295a04675f715d0511ae8acac9d779b102eac50d6300116d3e\",\"state\":\"connected\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:28] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:28] local.INFO: [SocialAccountObserver] Access token was modified, encrypting {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:28] local.INFO: [SocialAccountService] Token refreshed {\"socialAccountId\":1502,\"provider\":\"google\",\"state\":\"connected\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:28] local.INFO: Calendar sync job dispatched {\"calendar_id\":501} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:28] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1300,\"provider\":\"google\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:28] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1300,\"provider\":\"google\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:28] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:28] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1300,\"provider\":\"google\",\"refreshToken\":\"4b811db0725fd9602a95943519a7da935e2a5065da7d9ebfcb170752e3e1ddb8\",\"state\":\"full-refresh\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:29] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1300,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Account has been deleted\"}} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:29] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:29] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1300,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:29] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1409,\"provider\":\"google\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:29] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1409,\"provider\":\"google\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:29] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1409,\"provider\":\"google\",\"refreshToken\":\"e2a3f2d06894894eed1ee87d9db1ace77d4d42ee6e1288a8940ad2c10333b0c4\",\"state\":\"full-refresh\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:29] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"8fee47c6-d80c-4bbd-8e93-270099d267a5\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:29] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"8fee47c6-d80c-4bbd-8e93-270099d267a5\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8fee47c6-d80c-4bbd-8e93-270099d267a5\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:29] local.INFO: [Calendar] Processing sync {\"calendarId\":\"a33076c1-8d97-431a-99f0-85c9524e118b\",\"from\":null,\"to\":null,\"delta\":\"CIiFh8TP44kDEIiFh8TP44kDGAUgkZvkzgIokZvkzgI=\",\"last_sync\":\"2024-12-09 07:12:53\",\"dateMode\":\"daily\"} {\"correlation_id\":\"8fee47c6-d80c-4bbd-8e93-270099d267a5\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:29] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"integration-app\",\"crm_owner\":1695,\"team_id\":3143} {\"correlation_id\":\"8fee47c6-d80c-4bbd-8e93-270099d267a5\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:29] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"8fee47c6-d80c-4bbd-8e93-270099d267a5\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:29] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"8fee47c6-d80c-4bbd-8e93-270099d267a5\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8fee47c6-d80c-4bbd-8e93-270099d267a5\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:29] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1409,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:29] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:29] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1409,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:29] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1352,\"provider\":\"google\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:29] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1352,\"provider\":\"google\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:29] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1352,\"provider\":\"google\",\"refreshToken\":\"dd4b16b00fdc1216da6b717c02338c073636e29162826b2de6db3f064fc029eb\",\"state\":\"full-refresh\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:29] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1352,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Token has been expired or revoked.\"}} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:29] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:29] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1352,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:29] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1296,\"provider\":\"office\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:29] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1296,\"provider\":\"office\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:29] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1296,\"provider\":\"office\",\"refreshToken\":\"011ae723c9d800c674e0b4be76f49fc046dac7d501b66c59ef0d9549cfa56ae5\",\"state\":\"full-refresh\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:30] local.INFO: [Google Calendar] Failed to watch channel for calendar {\"calendarId\":\"a33076c1-8d97-431a-99f0-85c9524e118b\",\"code\":400,\"reason\":\"{\n \\\"error\\\": {\n \\\"errors\\\": [\n {\n \\\"domain\\\": \\\"global\\\",\n \\\"reason\\\": \\\"push.webhookUrlNotHttps\\\",\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n ],\n \\\"code\\\": 400,\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n}\"} {\"correlation_id\":\"8fee47c6-d80c-4bbd-8e93-270099d267a5\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:30] local.WARNING: [Calendar] Sync failed {\"calendarId\":\"a33076c1-8d97-431a-99f0-85c9524e118b\",\"code\":400,\"reason\":\"{\n \\\"error\\\": {\n \\\"errors\\\": [\n {\n \\\"domain\\\": \\\"global\\\",\n \\\"reason\\\": \\\"push.webhookUrlNotHttps\\\",\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n ],\n \\\"code\\\": 400,\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n}\"} {\"correlation_id\":\"8fee47c6-d80c-4bbd-8e93-270099d267a5\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:30] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1296,\"provider\":\"office\",\"responseBody\":\"{\\\"error\\\":\\\"invalid_client\\\",\\\"error_description\\\":\\\"AADSTS7000215: Invalid client secret provided. Ensure the secret being sent in the request is the client secret value, not the client secret ID, for a secret added to app 'bbcbb2ef-6200-4fae-82bd-d81f5dd738da'. Trace ID: 70afa108-a352-4d05-923d-a8339be31f00 Correlation ID: ed656a37-fdf4-4336-9b3a-1b3a24815b73 Timestamp: 2026-05-11 12:14:30Z\\\",\\\"error_codes\\\":[7000215],\\\"timestamp\\\":\\\"2026-05-11 12:14:30Z\\\",\\\"trace_id\\\":\\\"70afa108-a352-4d05-923d-a8339be31f00\\\",\\\"correlation_id\\\":\\\"ed656a37-fdf4-4336-9b3a-1b3a24815b73\\\",\\\"error_uri\\\":\\\"https://login.microsoftonline.com/error?code=7000215\\\"}\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:30] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:30] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1296,\"provider\":\"office\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":391,\"provider\":\"office\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:30] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":391,\"provider\":\"office\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:30] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":391,\"provider\":\"office\",\"refreshToken\":\"00045eebae0f39b34887c6d53f92ae78064f7145e1f4b67754aebd03cfb2d881\",\"state\":\"full-refresh\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:30] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":391,\"provider\":\"office\",\"responseBody\":\"{\\\"error\\\":\\\"invalid_client\\\",\\\"error_description\\\":\\\"AADSTS7000215: Invalid client secret provided. Ensure the secret being sent in the request is the client secret value, not the client secret ID, for a secret added to app 'bbcbb2ef-6200-4fae-82bd-d81f5dd738da'. Trace ID: f38b455a-055d-472a-8f95-5d0c61da0200 Correlation ID: 45c692e5-7f27-44d6-b2c4-9a09c3a08153 Timestamp: 2026-05-11 12:14:30Z\\\",\\\"error_codes\\\":[7000215],\\\"timestamp\\\":\\\"2026-05-11 12:14:30Z\\\",\\\"trace_id\\\":\\\"f38b455a-055d-472a-8f95-5d0c61da0200\\\",\\\"correlation_id\\\":\\\"45c692e5-7f27-44d6-b2c4-9a09c3a08153\\\",\\\"error_uri\\\":\\\"https://login.microsoftonline.com/error?code=7000215\\\"}\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:30] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:30] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":391,\"provider\":\"office\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:30] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1271,\"provider\":\"office\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:30] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1271,\"provider\":\"office\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:30] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:30] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1271,\"provider\":\"office\",\"refreshToken\":\"118cde2c06993147b07ccaec4cbcd5026a819dea6c71081166a492933e392afb\",\"state\":\"full-refresh\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:31] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1271,\"provider\":\"office\",\"responseBody\":\"{\\\"error\\\":\\\"invalid_client\\\",\\\"error_description\\\":\\\"AADSTS7000215: Invalid client secret provided. Ensure the secret being sent in the request is the client secret value, not the client secret ID, for a secret added to app 'bbcbb2ef-6200-4fae-82bd-d81f5dd738da'. Trace ID: 4d668ac8-90d6-44d2-b46c-5478babe0100 Correlation ID: cdb475ab-2bda-446d-b41c-84ce3b7f8698 Timestamp: 2026-05-11 12:14:31Z\\\",\\\"error_codes\\\":[7000215],\\\"timestamp\\\":\\\"2026-05-11 12:14:31Z\\\",\\\"trace_id\\\":\\\"4d668ac8-90d6-44d2-b46c-5478babe0100\\\",\\\"correlation_id\\\":\\\"cdb475ab-2bda-446d-b41c-84ce3b7f8698\\\",\\\"error_uri\\\":\\\"https://login.microsoftonline.com/error?code=7000215\\\"}\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:31] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:31] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1271,\"provider\":\"office\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1351,\"provider\":\"google\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:31] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1351,\"provider\":\"google\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:31] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1351,\"provider\":\"google\",\"refreshToken\":\"4271d15b9e60a606439caddc68337f783e472c85b03dacff14d1b6dfded9051c\",\"state\":\"full-refresh\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:32] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1351,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:32] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:32] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1351,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1366,\"provider\":\"google\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:32] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1366,\"provider\":\"google\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:32] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1366,\"provider\":\"google\",\"refreshToken\":\"ae21385059b2eebfd43f68aecd56eccd702a1aabb6598f1f7ab594ed8af491b4\",\"state\":\"full-refresh\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:32] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1366,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:32] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:32] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1366,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:32] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:32] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1115,\"provider\":\"google\",\"refreshToken\":\"356b60f12e262a5e24d3042386ef47d6a6cfe3074c242f4426edcec8646192b1\",\"state\":\"connected\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:32] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:32] local.INFO: [SocialAccountObserver] Access token was modified, encrypting {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:32] local.INFO: [SocialAccountService] Token refreshed {\"socialAccountId\":1115,\"provider\":\"google\",\"state\":\"connected\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:32] local.INFO: Calendar sync job dispatched {\"calendar_id\":378} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1421,\"provider\":\"office\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1421,\"provider\":\"office\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:32] local.INFO: Calendar sync job dispatched {\"calendar_id\":504} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:32] local.NOTICE: Calendar sync end {\"retrieved_calendars\":31,\"processed_calendars\":3} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:32] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"calendar:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":62.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"b61b54d7-634b-491a-b181-5ef01b0a660c\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:34] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"3443b55d-63cb-41e1-9c98-8139490ef002\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:34] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"3443b55d-63cb-41e1-9c98-8139490ef002\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:34] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"3443b55d-63cb-41e1-9c98-8139490ef002\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:34] local.INFO: [Calendar] Processing sync {\"calendarId\":\"2676cb6d-f86c-427e-bf78-591e388e3c1e\",\"from\":null,\"to\":null,\"delta\":\"CJ_x49O3jpIDEJ_x49O3jpIDGAUgw67KlwMow67KlwM=\",\"last_sync\":\"2026-01-19 07:48:40\",\"dateMode\":\"daily\"} {\"correlation_id\":\"3443b55d-63cb-41e1-9c98-8139490ef002\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:34] local.WARNING: [Pipedrive] Account not connected for user {\"userId\":\"e6538737-e7b4-455f-a37a-3e79b665a220\",\"account\":{\"Jiminny\\\\Models\\\\SocialAccount\":{\"id\":1116,\"sociable_id\":241,\"provider_user_id\":\"19555731\",\"expires\":1775683749,\"refresh_token_expires\":null,\"provider\":\"pipedrive\",\"state\":\"full-refresh\",\"auth_scope\":\"base,deals:full,activities:full,contacts:full,search:read\",\"retry_after\":null,\"created_at\":\"2023-09-08 09:44:29\",\"updated_at\":\"2026-04-08 22:58:34\"}}} {\"correlation_id\":\"3443b55d-63cb-41e1-9c98-8139490ef002\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:34] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"pipedrive\",\"crm_owner\":241,\"team_id\":19} {\"correlation_id\":\"3443b55d-63cb-41e1-9c98-8139490ef002\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:34] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"pipedrive\",\"team_id\":19} {\"correlation_id\":\"3443b55d-63cb-41e1-9c98-8139490ef002\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:34] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"pipedrive\",\"team_id\":19} {\"correlation_id\":\"3443b55d-63cb-41e1-9c98-8139490ef002\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:34] local.WARNING: [Calendar] CRM disconnected for user so events will not be matched {\"provider\":\"pipedrive\",\"user_id\":241,\"message\":\"Your Pipedrive account has become disconnected. Please login to Jiminny to reconnect.\"} {\"correlation_id\":\"3443b55d-63cb-41e1-9c98-8139490ef002\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:34] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"3443b55d-63cb-41e1-9c98-8139490ef002\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:34] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"3443b55d-63cb-41e1-9c98-8139490ef002\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:34] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"3443b55d-63cb-41e1-9c98-8139490ef002\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:34] local.INFO: [Google Calendar] Failed to watch channel for calendar {\"calendarId\":\"2676cb6d-f86c-427e-bf78-591e388e3c1e\",\"code\":400,\"reason\":\"{\n \\\"error\\\": {\n \\\"errors\\\": [\n {\n \\\"domain\\\": \\\"global\\\",\n \\\"reason\\\": \\\"push.webhookUrlNotHttps\\\",\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n ],\n \\\"code\\\": 400,\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n}\"} {\"correlation_id\":\"3443b55d-63cb-41e1-9c98-8139490ef002\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:34] local.WARNING: [Calendar] Sync failed {\"calendarId\":\"2676cb6d-f86c-427e-bf78-591e388e3c1e\",\"code\":400,\"reason\":\"{\n \\\"error\\\": {\n \\\"errors\\\": [\n {\n \\\"domain\\\": \\\"global\\\",\n \\\"reason\\\": \\\"push.webhookUrlNotHttps\\\",\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n ],\n \\\"code\\\": 400,\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n}\"} {\"correlation_id\":\"3443b55d-63cb-41e1-9c98-8139490ef002\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:34] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1421,\"provider\":\"office\"} {\"correlation_id\":\"6c4802d0-2244-4954-9183-a6ae9a8231ba\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:34] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1421,\"provider\":\"office\"} {\"correlation_id\":\"6c4802d0-2244-4954-9183-a6ae9a8231ba\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:34] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"6c4802d0-2244-4954-9183-a6ae9a8231ba\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:34] local.INFO: [Calendar] Processing sync {\"calendarId\":\"9e8b1a2c-1a8f-42bd-b161-810fc0baf540\",\"from\":null,\"to\":null,\"delta\":\"R0usmcdvmMuZCBYV0hguCLlvcOB4kXlhlC7KgH1SnZwTrZ3faZv1fXPQqJhxe_L9AxWWlb-wASsjGiiWlhsBUg9MFb3ZdlAYerVV_ZirRPbsKWCxEXhybD90arJmok_M4ecGFUQ9_BIGu-c6RAnJy2TRKZ7gPTsJi_8TGceGAuqimlhm4G4mjDLvYVVwImjjU7M3xJvUzL47dLOGNTJCww.k1TST0VEYCgbFOkwa3ysYMi100FtVfkzfqlXLnV6gPg\",\"last_sync\":\"2026-05-11 06:13:36\",\"dateMode\":\"daily\"} {\"correlation_id\":\"6c4802d0-2244-4954-9183-a6ae9a8231ba\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:34] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6c4802d0-2244-4954-9183-a6ae9a8231ba\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:34] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6c4802d0-2244-4954-9183-a6ae9a8231ba\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:34] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"6c4802d0-2244-4954-9183-a6ae9a8231ba\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:34] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":89,\"team_id\":2} {\"correlation_id\":\"6c4802d0-2244-4954-9183-a6ae9a8231ba\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:14:34] local.INFO: [MS Office Calendar] Skipping delta sync for daily mode {\"calendarId\":\"9e8b1a2c-1a8f-42bd-b161-810fc0baf540\"} {\"correlation_id\":\"6c4802d0-2244-4954-9183-a6ae9a8231ba\",\"trace_id\":\"24ce815c-e804-47fd-9b66-85d28edaf62c\"}\n[2026-05-11 12:15:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"8c894e4d-e783-4dc9-bcd7-226924204268\",\"trace_id\":\"a4b070a3-71d7-4cef-81ec-886b50935301\"}\n[2026-05-11 12:15:13] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"8c894e4d-e783-4dc9-bcd7-226924204268\",\"trace_id\":\"a4b070a3-71d7-4cef-81ec-886b50935301\"}\n[2026-05-11 12:15:13] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"8c894e4d-e783-4dc9-bcd7-226924204268\",\"trace_id\":\"a4b070a3-71d7-4cef-81ec-886b50935301\"}\n[2026-05-11 12:15:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"565e34f3-a349-414b-9d5f-c7128e6519af\",\"trace_id\":\"b116eb89-70b4-4f05-984d-30e4a2b41ef4\"}\n[2026-05-11 12:15:17] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"565e34f3-a349-414b-9d5f-c7128e6519af\",\"trace_id\":\"b116eb89-70b4-4f05-984d-30e4a2b41ef4\"}\n[2026-05-11 12:15:25] local.NOTICE: Monitoring start {\"correlation_id\":\"32b9ac45-6ad5-4b76-a01a-40a4fe9bcafc\",\"trace_id\":\"ca81b817-876d-4e75-9cc3-cb7a50c8f100\"}\n[2026-05-11 12:15:25] local.NOTICE: Monitoring end {\"correlation_id\":\"32b9ac45-6ad5-4b76-a01a-40a4fe9bcafc\",\"trace_id\":\"ca81b817-876d-4e75-9cc3-cb7a50c8f100\"}\n[2026-05-11 12:15:34] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"49df8a6c-3151-4a1e-8b86-c53f65ec2e63\",\"trace_id\":\"a7ca3146-a5c5-47c1-b0a7-b3f5bb28afb3\"}\n[2026-05-11 12:15:34] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"49df8a6c-3151-4a1e-8b86-c53f65ec2e63\",\"trace_id\":\"a7ca3146-a5c5-47c1-b0a7-b3f5bb28afb3\"}\n[2026-05-11 12:15:50] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"65c763a5-5ec5-4ead-b605-02d44c12452d\",\"trace_id\":\"04470fe1-aafa-44c6-bc4e-df3c35d9f1ae\"}\n[2026-05-11 12:15:51] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"65c763a5-5ec5-4ead-b605-02d44c12452d\",\"trace_id\":\"04470fe1-aafa-44c6-bc4e-df3c35d9f1ae\"}\n[2026-05-11 12:15:51] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"65c763a5-5ec5-4ead-b605-02d44c12452d\",\"trace_id\":\"04470fe1-aafa-44c6-bc4e-df3c35d9f1ae\"}\n[2026-05-11 12:15:51] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"65c763a5-5ec5-4ead-b605-02d44c12452d\",\"trace_id\":\"04470fe1-aafa-44c6-bc4e-df3c35d9f1ae\"}\n[2026-05-11 12:15:55] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"f9a7d589-ae27-4d47-8c0c-3f5cbe598444\",\"trace_id\":\"9800fbc5-0d57-4b05-a290-444b2761188b\"}\n[2026-05-11 12:15:55] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"f9a7d589-ae27-4d47-8c0c-3f5cbe598444\",\"trace_id\":\"9800fbc5-0d57-4b05-a290-444b2761188b\"}\n[2026-05-11 12:15:59] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"c49fb166-a266-4f41-bf2e-1f7fa409d0c4\",\"trace_id\":\"4088ec5b-8952-40f7-98ef-361dc36da74f\"}\n[2026-05-11 12:15:59] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"c49fb166-a266-4f41-bf2e-1f7fa409d0c4\",\"trace_id\":\"4088ec5b-8952-40f7-98ef-361dc36da74f\"}\n[2026-05-11 12:16:04] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"f318779f-ebec-478d-a1aa-301d086d7022\",\"trace_id\":\"72f8b271-e7d8-4257-bbbc-2f56e3133589\"}\n[2026-05-11 12:16:04] local.INFO: Running pre-meeting notification command {\"correlation_id\":\"f318779f-ebec-478d-a1aa-301d086d7022\",\"trace_id\":\"72f8b271-e7d8-4257-bbbc-2f56e3133589\"}\n[2026-05-11 12:16:04] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"f318779f-ebec-478d-a1aa-301d086d7022\",\"trace_id\":\"72f8b271-e7d8-4257-bbbc-2f56e3133589\"}\n[2026-05-11 12:16:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"d8424605-b534-48d3-974b-2f00e970046e\",\"trace_id\":\"6b395f7e-01c2-43d8-9fca-4367611cb8e9\"}\n[2026-05-11 12:16:16] local.INFO: Running conference:monitor:start command for activities in (2026-05-11 12:06:00, 2026-05-11 12:11:00] {\"correlation_id\":\"d8424605-b534-48d3-974b-2f00e970046e\",\"trace_id\":\"6b395f7e-01c2-43d8-9fca-4367611cb8e9\"}\n[2026-05-11 12:16:17] local.INFO: [conference:monitor:start] No activities found in (2026-05-11 12:06:00, 2026-05-11 12:11:00] {\"correlation_id\":\"d8424605-b534-48d3-974b-2f00e970046e\",\"trace_id\":\"6b395f7e-01c2-43d8-9fca-4367611cb8e9\"}\n[2026-05-11 12:16:17] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"d8424605-b534-48d3-974b-2f00e970046e\",\"trace_id\":\"6b395f7e-01c2-43d8-9fca-4367611cb8e9\"}\n[2026-05-11 12:16:24] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"2ac7d2a2-6433-4987-b2b8-aa45c21d35bd\",\"trace_id\":\"ee502667-3969-4113-99ae-c4c6dc23b008\"}\n[2026-05-11 12:16:25] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesEnded {\"from\":\"12:11\",\"to\":\"12:16\"} {\"correlation_id\":\"2ac7d2a2-6433-4987-b2b8-aa45c21d35bd\",\"trace_id\":\"ee502667-3969-4113-99ae-c4c6dc23b008\"}\n[2026-05-11 12:16:25] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesWithUnfinishedSession {\"from\":\"02:06\",\"to\":\"02:11\"} {\"correlation_id\":\"2ac7d2a2-6433-4987-b2b8-aa45c21d35bd\",\"trace_id\":\"ee502667-3969-4113-99ae-c4c6dc23b008\"}\n[2026-05-11 12:16:25] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"2ac7d2a2-6433-4987-b2b8-aa45c21d35bd\",\"trace_id\":\"ee502667-3969-4113-99ae-c4c6dc23b008\"}\n[2026-05-11 12:16:31] local.NOTICE: Repairing HubSpot tokens start {\"correlation_id\":\"64c3680e-17d7-4192-93ed-4c05853ec7b3\",\"trace_id\":\"28353860-5092-4126-ab33-d5fe597c39ce\"}\n[2026-05-11 12:16:31] local.INFO: Trying to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\"} {\"correlation_id\":\"64c3680e-17d7-4192-93ed-4c05853ec7b3\",\"trace_id\":\"28353860-5092-4126-ab33-d5fe597c39ce\"}\n[2026-05-11 12:16:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"64c3680e-17d7-4192-93ed-4c05853ec7b3\",\"trace_id\":\"28353860-5092-4126-ab33-d5fe597c39ce\"}\n[2026-05-11 12:16:31] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":59,\"provider\":\"hubspot\",\"refreshToken\":\"97b78f6e2cc49965c00c2492b602b02708b1392551e6b3f113fbaa48992af90b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"64c3680e-17d7-4192-93ed-4c05853ec7b3\",\"trace_id\":\"28353860-5092-4126-ab33-d5fe597c39ce\"}\n[2026-05-11 12:16:32] local.ERROR: Failed to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"64c3680e-17d7-4192-93ed-4c05853ec7b3\",\"trace_id\":\"28353860-5092-4126-ab33-d5fe597c39ce\"}\n[2026-05-11 12:16:32] local.INFO: Trying to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\"} {\"correlation_id\":\"64c3680e-17d7-4192-93ed-4c05853ec7b3\",\"trace_id\":\"28353860-5092-4126-ab33-d5fe597c39ce\"}\n[2026-05-11 12:16:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"64c3680e-17d7-4192-93ed-4c05853ec7b3\",\"trace_id\":\"28353860-5092-4126-ab33-d5fe597c39ce\"}\n[2026-05-11 12:16:32] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":306,\"provider\":\"hubspot\",\"refreshToken\":\"6fa6aa8cc641d131231acc3470f5c03cb3b07b2e580fb18f8acb3b1dbb72549b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"64c3680e-17d7-4192-93ed-4c05853ec7b3\",\"trace_id\":\"28353860-5092-4126-ab33-d5fe597c39ce\"}\n[2026-05-11 12:16:32] local.ERROR: Failed to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"64c3680e-17d7-4192-93ed-4c05853ec7b3\",\"trace_id\":\"28353860-5092-4126-ab33-d5fe597c39ce\"}\n[2026-05-11 12:16:32] local.INFO: Trying to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\"} {\"correlation_id\":\"64c3680e-17d7-4192-93ed-4c05853ec7b3\",\"trace_id\":\"28353860-5092-4126-ab33-d5fe597c39ce\"}\n[2026-05-11 12:16:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"64c3680e-17d7-4192-93ed-4c05853ec7b3\",\"trace_id\":\"28353860-5092-4126-ab33-d5fe597c39ce\"}\n[2026-05-11 12:16:32] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1372,\"provider\":\"hubspot\",\"refreshToken\":\"9aa73948c761da29dce46c177cf9aee1fde483a44169ca38723f9f0597d7a8c4\",\"state\":\"full-refresh\"} {\"correlation_id\":\"64c3680e-17d7-4192-93ed-4c05853ec7b3\",\"trace_id\":\"28353860-5092-4126-ab33-d5fe597c39ce\"}\n[2026-05-11 12:16:33] local.ERROR: Failed to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"64c3680e-17d7-4192-93ed-4c05853ec7b3\",\"trace_id\":\"28353860-5092-4126-ab33-d5fe597c39ce\"}\n[2026-05-11 12:16:33] local.NOTICE: Repairing HubSpot tokens end {\"total\":3,\"fixed\":0,\"failed\":3} {\"correlation_id\":\"64c3680e-17d7-4192-93ed-4c05853ec7b3\",\"trace_id\":\"28353860-5092-4126-ab33-d5fe597c39ce\"}\n[2026-05-11 12:16:46] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"ba0c4719-5f75-4e82-bfc6-572e41f52fb3\",\"trace_id\":\"9dcf9d79-9253-40c3-a6d7-964edb93d92f\"}\n[2026-05-11 12:16:47] local.INFO: [HubSpot Journal Command] Starting polling service {\"correlation_id\":\"ad363a42-8b61-4946-8dfd-ab45e1c0e407\",\"trace_id\":\"cc6d95b3-13bb-41e2-9ebb-77005f6b211b\"}\n[2026-05-11 12:16:47] local.INFO: [HubSpot Journal Polling] Service starting {\"memory_limit\":\"256M\",\"max_execution_time\":\"0\",\"initial_memory_mb\":60.0} {\"correlation_id\":\"ad363a42-8b61-4946-8dfd-ab45e1c0e407\",\"trace_id\":\"cc6d95b3-13bb-41e2-9ebb-77005f6b211b\"}\n[2026-05-11 12:16:47] local.INFO: [HubSpot Journal Polling] Acquired polling lock {\"expires_at\":\"2026-05-11T12:18:47.155680Z\"} {\"correlation_id\":\"ad363a42-8b61-4946-8dfd-ab45e1c0e407\",\"trace_id\":\"cc6d95b3-13bb-41e2-9ebb-77005f6b211b\"}\n[2026-05-11 12:16:47] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"ba0c4719-5f75-4e82-bfc6-572e41f52fb3\",\"trace_id\":\"9dcf9d79-9253-40c3-a6d7-964edb93d92f\"}\n[2026-05-11 12:16:47] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"ad363a42-8b61-4946-8dfd-ab45e1c0e407\",\"trace_id\":\"cc6d95b3-13bb-41e2-9ebb-77005f6b211b\"}\n[2026-05-11 12:16:52] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"ad363a42-8b61-4946-8dfd-ab45e1c0e407\",\"trace_id\":\"cc6d95b3-13bb-41e2-9ebb-77005f6b211b\"}\n[2026-05-11 12:16:56] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"b95086a1-5e45-4692-b2e4-052ad8abb0c9\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:16:56] local.INFO: Dispatching activity sync job {\"import_id\":812726,\"provider\":\"twilio-flex\",\"team\":\"jiminny\"} {\"correlation_id\":\"b95086a1-5e45-4692-b2e4-052ad8abb0c9\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:16:56] local.INFO: Dispatching activity sync job {\"import_id\":812727,\"provider\":\"xant\",\"team\":\"jiminny\"} {\"correlation_id\":\"b95086a1-5e45-4692-b2e4-052ad8abb0c9\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:16:56] local.INFO: Dispatching activity sync job {\"import_id\":812728,\"provider\":\"apollo\",\"team\":\"jiminny\"} {\"correlation_id\":\"b95086a1-5e45-4692-b2e4-052ad8abb0c9\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:16:56] local.INFO: Dispatching activity sync job {\"import_id\":812729,\"provider\":\"groove\",\"team\":\"jiminny\"} {\"correlation_id\":\"b95086a1-5e45-4692-b2e4-052ad8abb0c9\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:16:56] local.INFO: Dispatching activity sync job {\"import_id\":812730,\"provider\":\"twilio-video\",\"team\":\"jiminny\"} {\"correlation_id\":\"b95086a1-5e45-4692-b2e4-052ad8abb0c9\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:16:57] local.INFO: Dispatching activity sync job {\"import_id\":812731,\"provider\":\"hubspot\",\"team\":\"hubspot\"} {\"correlation_id\":\"b95086a1-5e45-4692-b2e4-052ad8abb0c9\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:16:57] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"b95086a1-5e45-4692-b2e4-052ad8abb0c9\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:16:58] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"ad363a42-8b61-4946-8dfd-ab45e1c0e407\",\"trace_id\":\"cc6d95b3-13bb-41e2-9ebb-77005f6b211b\"}\n[2026-05-11 12:16:59] local.WARNING: [Salesforce] Account not connected for user {\"userId\":\"cdf8b554-d951-4758-bc2b-c1b85d1cd0b9\",\"account\":null} {\"correlation_id\":\"c824c3d5-9999-4d8c-b3ec-e288455a06c4\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:16:59] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"salesforce\",\"crm_owner\":3,\"team_id\":1} {\"correlation_id\":\"c824c3d5-9999-4d8c-b3ec-e288455a06c4\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:16:59] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"salesforce\",\"team_id\":1} {\"correlation_id\":\"c824c3d5-9999-4d8c-b3ec-e288455a06c4\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:16:59] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"salesforce\",\"team_id\":1} {\"correlation_id\":\"c824c3d5-9999-4d8c-b3ec-e288455a06c4\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:16:59] local.ALERT: [SyncActivity] Failed {\"import_id\":812726,\"provider\":\"twilio-flex\",\"provider_id\":317,\"team\":\"jiminny\",\"team_id\":1,\"reason\":\"Social account for Salesforce cannot be found. Please login to Jiminny to connect.\",\"file\":\"/home/jiminny/app/Services/Crm/BaseService.php\",\"line\":646} {\"correlation_id\":\"c824c3d5-9999-4d8c-b3ec-e288455a06c4\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:16:59] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"06a144b5-931c-4cb3-9aca-762e350401c2\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:16:59] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"06a144b5-931c-4cb3-9aca-762e350401c2\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:16:59] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"06a144b5-931c-4cb3-9aca-762e350401c2\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:17:00] local.ALERT: [SyncActivity] Failed {\"import_id\":812727,\"provider\":\"xant\",\"provider_id\":161,\"team\":\"jiminny\",\"team_id\":1,\"reason\":\"Activity Provider account not connected.\",\"file\":\"/home/jiminny/app/Services/Activity/ActivityProviderService.php\",\"line\":174} {\"correlation_id\":\"06a144b5-931c-4cb3-9aca-762e350401c2\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:17:00] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"7fb1764e-44c6-4468-aeb5-82af6c4b191b\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:17:00] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"7fb1764e-44c6-4468-aeb5-82af6c4b191b\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:17:00] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7fb1764e-44c6-4468-aeb5-82af6c4b191b\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:17:01] local.ALERT: [SyncActivity] Failed {\"import_id\":812728,\"provider\":\"apollo\",\"provider_id\":441,\"team\":\"jiminny\",\"team_id\":1,\"reason\":\"Activity Provider account not connected.\",\"file\":\"/home/jiminny/app/Services/Activity/ActivityProviderService.php\",\"line\":174} {\"correlation_id\":\"7fb1764e-44c6-4468-aeb5-82af6c4b191b\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:17:01] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"1bcc40ff-2f2e-4b7b-8028-0ad276f28880\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:17:01] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"1bcc40ff-2f2e-4b7b-8028-0ad276f28880\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:17:01] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"1bcc40ff-2f2e-4b7b-8028-0ad276f28880\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:17:01] local.ALERT: [SyncActivity] Failed {\"import_id\":812729,\"provider\":\"groove\",\"provider_id\":228,\"team\":\"jiminny\",\"team_id\":1,\"reason\":\"Activity Provider account not connected.\",\"file\":\"/home/jiminny/app/Services/Activity/ActivityProviderService.php\",\"line\":174} {\"correlation_id\":\"1bcc40ff-2f2e-4b7b-8028-0ad276f28880\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:17:01] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"8b332819-903d-42b9-adb3-ce09e67d4fc5\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:17:01] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"8b332819-903d-42b9-adb3-ce09e67d4fc5\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:17:01] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"8b332819-903d-42b9-adb3-ce09e67d4fc5\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:17:02] local.ALERT: [SyncActivity] Failed {\"import_id\":812730,\"provider\":\"twilio-video\",\"provider_id\":243,\"team\":\"jiminny\",\"team_id\":1,\"reason\":\"Activity Provider account not connected.\",\"file\":\"/home/jiminny/app/Services/Activity/ActivityProviderService.php\",\"line\":174} {\"correlation_id\":\"8b332819-903d-42b9-adb3-ce09e67d4fc5\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:17:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"65d9d228-8b2c-46e8-aafa-1e307fcb3103\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:17:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"65d9d228-8b2c-46e8-aafa-1e307fcb3103\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:17:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"65d9d228-8b2c-46e8-aafa-1e307fcb3103\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:17:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":89,\"team_id\":2} {\"correlation_id\":\"65d9d228-8b2c-46e8-aafa-1e307fcb3103\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:17:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":408,\"provider\":\"hubspot\"} {\"correlation_id\":\"65d9d228-8b2c-46e8-aafa-1e307fcb3103\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:17:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":408,\"provider\":\"hubspot\"} {\"correlation_id\":\"65d9d228-8b2c-46e8-aafa-1e307fcb3103\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:17:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"65d9d228-8b2c-46e8-aafa-1e307fcb3103\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:17:02] local.INFO: [SyncActivity] Start {\"import_id\":812731,\"provider\":\"hubspot\",\"provider_id\":31,\"team\":\"hubspot\",\"team_id\":2} {\"correlation_id\":\"65d9d228-8b2c-46e8-aafa-1e307fcb3103\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:17:02] local.INFO: [HubSpot] Search calls for period {\"from\":\"2026-05-11 11:59:00\",\"to\":\"2026-05-11 12:15:00\"} {\"correlation_id\":\"65d9d228-8b2c-46e8-aafa-1e307fcb3103\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:17:02] local.INFO: [SyncActivity] End {\"import_id\":812731,\"provider\":\"hubspot\",\"provider_id\":31,\"team\":\"hubspot\",\"team_id\":2} {\"correlation_id\":\"65d9d228-8b2c-46e8-aafa-1e307fcb3103\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:17:02] local.INFO: [SyncActivity] Memory usage {\"import_id\":812731,\"provider\":\"hubspot\",\"provider_id\":31,\"team\":\"hubspot\",\"team_id\":2,\"memory_usage\":30122432,\"memory_real_usage\":65011712,\"pid\":74086} {\"correlation_id\":\"65d9d228-8b2c-46e8-aafa-1e307fcb3103\",\"trace_id\":\"f4d83388-77d6-4e29-b290-4f302f5622ee\"}\n[2026-05-11 12:17:04] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"c0ee6a94-9f55-403c-842d-e80f938601e2\",\"trace_id\":\"586085ca-4d5d-4db6-8434-6bf6b584598f\"}\n[2026-05-11 12:17:04] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"c0ee6a94-9f55-403c-842d-e80f938601e2\",\"trace_id\":\"586085ca-4d5d-4db6-8434-6bf6b584598f\"}\n[2026-05-11 12:17:13] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"ad363a42-8b61-4946-8dfd-ab45e1c0e407\",\"trace_id\":\"cc6d95b3-13bb-41e2-9ebb-77005f6b211b\"}\n[2026-05-11 12:17:13] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"nudges:send\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"36dc86dc-e025-4a94-8be9-2f536be96dc8\",\"trace_id\":\"31702b39-8260-4898-9c63-1aaafda8cde3\"}\n[2026-05-11 12:17:14] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"nudges:send\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"36dc86dc-e025-4a94-8be9-2f536be96dc8\",\"trace_id\":\"31702b39-8260-4898-9c63-1aaafda8cde3\"}\n[2026-05-11 12:17:19] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"jiminny:playlists:normalize-sort\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"1ddb3e77-717c-486e-9fc4-031b49aa1515\",\"trace_id\":\"8e4beca1-d251-46d3-b103-d6827e87577b\"}\n[2026-05-11 12:17:19] local.INFO: [Jiminny\\Component\\Playlist\\Command\\NormalizeSortCommand::handle] starting. {\"playlists\":[]} {\"correlation_id\":\"1ddb3e77-717c-486e-9fc4-031b49aa1515\",\"trace_id\":\"8e4beca1-d251-46d3-b103-d6827e87577b\"}\n[2026-05-11 12:17:19] local.INFO: [Jiminny\\Component\\Playlist\\Command\\NormalizeSortCommand::handle] finished. {\"normalizedPlaylists\":[],\"deletedPlaylists\":[]} {\"correlation_id\":\"1ddb3e77-717c-486e-9fc4-031b49aa1515\",\"trace_id\":\"8e4beca1-d251-46d3-b103-d6827e87577b\"}\n[2026-05-11 12:17:19] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"jiminny:playlists:normalize-sort\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"1ddb3e77-717c-486e-9fc4-031b49aa1515\",\"trace_id\":\"8e4beca1-d251-46d3-b103-d6827e87577b\"}\n[2026-05-11 12:17:43] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"ad363a42-8b61-4946-8dfd-ab45e1c0e407\",\"trace_id\":\"cc6d95b3-13bb-41e2-9ebb-77005f6b211b\"}\n[2026-05-11 12:17:43] local.WARNING: [HubSpot Journal Polling] Maximum empty results reached, stopping {\"empty_results\":5,\"max_empty_results\":5} {\"correlation_id\":\"ad363a42-8b61-4946-8dfd-ab45e1c0e407\",\"trace_id\":\"cc6d95b3-13bb-41e2-9ebb-77005f6b211b\"}\n[2026-05-11 12:17:43] local.WARNING: [HubSpot Journal Polling] Maximum empty results reached, stopping {\"empty_results\":5,\"max_empty_results\":5} {\"correlation_id\":\"ad363a42-8b61-4946-8dfd-ab45e1c0e407\",\"trace_id\":\"cc6d95b3-13bb-41e2-9ebb-77005f6b211b\"}\n[2026-05-11 12:17:43] local.INFO: [HubSpot Journal Polling] Service ending {\"runtime_seconds\":56,\"total_cycles\":5,\"files_downloaded\":0,\"empty_files\":0,\"other_portal_skipped\":0,\"total_events\":0,\"events_per_file\":0,\"avg_api_ms\":241.2,\"avg_download_ms\":0.0,\"avg_transform_ms\":0.0,\"avg_process_ms\":0.0,\"peak_memory_mb\":99.73} {\"correlation_id\":\"ad363a42-8b61-4946-8dfd-ab45e1c0e407\",\"trace_id\":\"cc6d95b3-13bb-41e2-9ebb-77005f6b211b\"}\n[2026-05-11 12:17:44] local.INFO: [HubSpot Journal Polling] Saved offset to database on cleanup {\"offset\":\"019e15a9-9ea0-7da7-87bc-82592e3ccf0d\"} {\"correlation_id\":\"ad363a42-8b61-4946-8dfd-ab45e1c0e407\",\"trace_id\":\"cc6d95b3-13bb-41e2-9ebb-77005f6b211b\"}\n[2026-05-11 12:17:44] local.INFO: [HubSpot Journal Polling] Released polling lock {\"correlation_id\":\"ad363a42-8b61-4946-8dfd-ab45e1c0e407\",\"trace_id\":\"cc6d95b3-13bb-41e2-9ebb-77005f6b211b\"}\n[2026-05-11 12:18:13] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"e2279f83-79c5-4b01-b7e7-cfe60c24db3d\",\"trace_id\":\"740ca19a-3a96-4570-ac39-f3373ecb0a44\"}\n[2026-05-11 12:18:13] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"e2279f83-79c5-4b01-b7e7-cfe60c24db3d\",\"trace_id\":\"740ca19a-3a96-4570-ac39-f3373ecb0a44\"}\n[2026-05-11 12:18:13] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"e2279f83-79c5-4b01-b7e7-cfe60c24db3d\",\"trace_id\":\"740ca19a-3a96-4570-ac39-f3373ecb0a44\"}\n[2026-05-11 12:18:21] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"b106accf-d4b6-4727-a77b-f2a974724439\",\"trace_id\":\"9dff6a80-43f3-43db-8094-648a0f5201c9\"}\n[2026-05-11 12:18:21] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"b106accf-d4b6-4727-a77b-f2a974724439\",\"trace_id\":\"9dff6a80-43f3-43db-8094-648a0f5201c9\"}\n[2026-05-11 12:18:31] local.NOTICE: Monitoring start {\"correlation_id\":\"34af1440-d8ad-44f1-ab50-f2a449357869\",\"trace_id\":\"c12fba6d-ec88-4297-b890-1e16c31f4a5a\"}\n[2026-05-11 12:18:32] local.NOTICE: Monitoring end {\"correlation_id\":\"34af1440-d8ad-44f1-ab50-f2a449357869\",\"trace_id\":\"c12fba6d-ec88-4297-b890-1e16c31f4a5a\"}\n[2026-05-11 12:18:38] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"64cdace9-59e7-4917-9ce3-c4552a895ec7\",\"trace_id\":\"44cb7596-73c1-4db6-8dc6-3eb0c3ba235b\"}\n[2026-05-11 12:18:38] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"64cdace9-59e7-4917-9ce3-c4552a895ec7\",\"trace_id\":\"44cb7596-73c1-4db6-8dc6-3eb0c3ba235b\"}\n[2026-05-11 12:18:47] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"5ba5023b-e6d0-454d-8c20-16b3c727bfd3\",\"trace_id\":\"ab255743-081b-4b7a-bc24-6d816eeab8d8\"}\n[2026-05-11 12:18:47] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"5ba5023b-e6d0-454d-8c20-16b3c727bfd3\",\"trace_id\":\"ab255743-081b-4b7a-bc24-6d816eeab8d8\"}\n[2026-05-11 12:18:47] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"5ba5023b-e6d0-454d-8c20-16b3c727bfd3\",\"trace_id\":\"ab255743-081b-4b7a-bc24-6d816eeab8d8\"}\n[2026-05-11 12:18:47] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"5ba5023b-e6d0-454d-8c20-16b3c727bfd3\",\"trace_id\":\"ab255743-081b-4b7a-bc24-6d816eeab8d8\"}\n[2026-05-11 12:18:53] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"679a7205-72ff-4192-8ed9-e1be0f1aeab7\",\"trace_id\":\"7a4b3d86-f538-434e-b22d-279efb32904b\"}\n[2026-05-11 12:18:53] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 12:16:00, 2026-05-11 12:18:00] {\"correlation_id\":\"679a7205-72ff-4192-8ed9-e1be0f1aeab7\",\"trace_id\":\"7a4b3d86-f538-434e-b22d-279efb32904b\"}\n[2026-05-11 12:18:53] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 12:16:00, 2026-05-11 12:18:00] {\"correlation_id\":\"679a7205-72ff-4192-8ed9-e1be0f1aeab7\",\"trace_id\":\"7a4b3d86-f538-434e-b22d-279efb32904b\"}\n[2026-05-11 12:18:53] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"679a7205-72ff-4192-8ed9-e1be0f1aeab7\",\"trace_id\":\"7a4b3d86-f538-434e-b22d-279efb32904b\"}\n[2026-05-11 12:19:06] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"ce9bcaf5-a719-45ee-a0ae-3a49467ef12e\",\"trace_id\":\"ed2ec658-5adf-464a-87f4-93c822c4da3d\"}\n[2026-05-11 12:19:06] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"ce9bcaf5-a719-45ee-a0ae-3a49467ef12e\",\"trace_id\":\"ed2ec658-5adf-464a-87f4-93c822c4da3d\"}\n[2026-05-11 12:20:07] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"5166d35d-4d01-4b5d-a707-31db8bf2b7d7\",\"trace_id\":\"138d9696-47f4-408a-889c-f480b51e2aa6\"}\n[2026-05-11 12:20:07] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"5166d35d-4d01-4b5d-a707-31db8bf2b7d7\",\"trace_id\":\"138d9696-47f4-408a-889c-f480b51e2aa6\"}\n[2026-05-11 12:20:07] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"5166d35d-4d01-4b5d-a707-31db8bf2b7d7\",\"trace_id\":\"138d9696-47f4-408a-889c-f480b51e2aa6\"}\n[2026-05-11 12:20:14] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"e05db029-9c8f-4c94-96a6-9425dbaf8ef0\",\"trace_id\":\"d789cc75-92d1-49f1-8616-abe0319535b9\"}\n[2026-05-11 12:20:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"e05db029-9c8f-4c94-96a6-9425dbaf8ef0\",\"trace_id\":\"d789cc75-92d1-49f1-8616-abe0319535b9\"}\n[2026-05-11 12:20:22] local.NOTICE: Monitoring start {\"correlation_id\":\"37da295a-f816-40e3-a318-1c5134b28d57\",\"trace_id\":\"39ec16dc-1412-45e7-997a-1600b4e4e785\"}\n[2026-05-11 12:20:22] local.NOTICE: Monitoring end {\"correlation_id\":\"37da295a-f816-40e3-a318-1c5134b28d57\",\"trace_id\":\"39ec16dc-1412-45e7-997a-1600b4e4e785\"}\n[2026-05-11 12:20:35] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"27e4a7bb-64d3-41f4-a367-562a99a61559\",\"trace_id\":\"84e3499a-a8fe-46a4-a75f-bcb662d90d7a\"}\n[2026-05-11 12:20:35] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"27e4a7bb-64d3-41f4-a367-562a99a61559\",\"trace_id\":\"84e3499a-a8fe-46a4-a75f-bcb662d90d7a\"}\n[2026-05-11 12:20:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"b5e8f251-32d3-4600-8c45-24c8b60dc589\",\"trace_id\":\"520c6125-d664-41dd-8ea3-0c19ebac8574\"}\n[2026-05-11 12:20:43] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"b5e8f251-32d3-4600-8c45-24c8b60dc589\",\"trace_id\":\"520c6125-d664-41dd-8ea3-0c19ebac8574\"}\n[2026-05-11 12:20:43] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"b5e8f251-32d3-4600-8c45-24c8b60dc589\",\"trace_id\":\"520c6125-d664-41dd-8ea3-0c19ebac8574\"}\n[2026-05-11 12:20:43] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"b5e8f251-32d3-4600-8c45-24c8b60dc589\",\"trace_id\":\"520c6125-d664-41dd-8ea3-0c19ebac8574\"}\n[2026-05-11 12:20:53] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"8fd1fe3b-16a0-4f99-a51e-4a3bdb3f80a0\",\"trace_id\":\"bca35c97-eaf1-4ba1-8e13-d68a03733efa\"}\n[2026-05-11 12:20:53] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 12:18:00, 2026-05-11 12:20:00] {\"correlation_id\":\"8fd1fe3b-16a0-4f99-a51e-4a3bdb3f80a0\",\"trace_id\":\"bca35c97-eaf1-4ba1-8e13-d68a03733efa\"}\n[2026-05-11 12:20:53] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 12:18:00, 2026-05-11 12:20:00] {\"correlation_id\":\"8fd1fe3b-16a0-4f99-a51e-4a3bdb3f80a0\",\"trace_id\":\"bca35c97-eaf1-4ba1-8e13-d68a03733efa\"}\n[2026-05-11 12:20:53] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"8fd1fe3b-16a0-4f99-a51e-4a3bdb3f80a0\",\"trace_id\":\"bca35c97-eaf1-4ba1-8e13-d68a03733efa\"}\n[2026-05-11 12:21:04] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"3b7a7e70-cb75-4c84-b8f0-6ca4685dfeeb\",\"trace_id\":\"d063a295-3a83-42a5-af96-be7f4432c2e9\"}\n[2026-05-11 12:21:04] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"3b7a7e70-cb75-4c84-b8f0-6ca4685dfeeb\",\"trace_id\":\"d063a295-3a83-42a5-af96-be7f4432c2e9\"}\n[2026-05-11 12:21:10] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"e86bfc68-4128-43bf-a61c-9911fd1e04be\",\"trace_id\":\"54ce4438-138b-4f81-a4c1-7aa1389bd2cb\"}\n[2026-05-11 12:21:11] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"e86bfc68-4128-43bf-a61c-9911fd1e04be\",\"trace_id\":\"54ce4438-138b-4f81-a4c1-7aa1389bd2cb\"}\n[2026-05-11 12:21:20] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"48e55441-bcfb-40bb-a727-ffc1504deed9\",\"trace_id\":\"e117b644-2c8c-4582-a1a7-a9484b1ce075\"}\n[2026-05-11 12:21:21] local.INFO: Running pre-meeting notification command {\"correlation_id\":\"48e55441-bcfb-40bb-a727-ffc1504deed9\",\"trace_id\":\"e117b644-2c8c-4582-a1a7-a9484b1ce075\"}\n[2026-05-11 12:21:21] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"48e55441-bcfb-40bb-a727-ffc1504deed9\",\"trace_id\":\"e117b644-2c8c-4582-a1a7-a9484b1ce075\"}\n[2026-05-11 12:21:30] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"3c829c64-c120-4952-92d0-6e031c245116\",\"trace_id\":\"3909e20b-cca4-4617-a2f1-f6e633412f74\"}\n[2026-05-11 12:21:30] local.INFO: Running conference:monitor:start command for activities in (2026-05-11 12:11:00, 2026-05-11 12:16:00] {\"correlation_id\":\"3c829c64-c120-4952-92d0-6e031c245116\",\"trace_id\":\"3909e20b-cca4-4617-a2f1-f6e633412f74\"}\n[2026-05-11 12:21:30] local.INFO: [conference:monitor:start] No activities found in (2026-05-11 12:11:00, 2026-05-11 12:16:00] {\"correlation_id\":\"3c829c64-c120-4952-92d0-6e031c245116\",\"trace_id\":\"3909e20b-cca4-4617-a2f1-f6e633412f74\"}\n[2026-05-11 12:21:30] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"3c829c64-c120-4952-92d0-6e031c245116\",\"trace_id\":\"3909e20b-cca4-4617-a2f1-f6e633412f74\"}\n[2026-05-11 12:21:40] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"18657c06-bf49-44b5-a586-2cc33dfbac6c\",\"trace_id\":\"c5709e81-501f-414f-b212-4c12a3e97ed1\"}\n[2026-05-11 12:21:40] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesEnded {\"from\":\"12:16\",\"to\":\"12:21\"} {\"correlation_id\":\"18657c06-bf49-44b5-a586-2cc33dfbac6c\",\"trace_id\":\"c5709e81-501f-414f-b212-4c12a3e97ed1\"}\n[2026-05-11 12:21:40] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesWithUnfinishedSession {\"from\":\"02:11\",\"to\":\"02:16\"} {\"correlation_id\":\"18657c06-bf49-44b5-a586-2cc33dfbac6c\",\"trace_id\":\"c5709e81-501f-414f-b212-4c12a3e97ed1\"}\n[2026-05-11 12:21:40] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"18657c06-bf49-44b5-a586-2cc33dfbac6c\",\"trace_id\":\"c5709e81-501f-414f-b212-4c12a3e97ed1\"}\n[2026-05-11 12:21:49] local.NOTICE: Repairing HubSpot tokens start {\"correlation_id\":\"6d623317-2549-48d6-bc51-ccc907721e1d\",\"trace_id\":\"2ea36702-a6c3-4052-a62b-517e5dd4624f\"}\n[2026-05-11 12:21:49] local.INFO: Trying to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\"} {\"correlation_id\":\"6d623317-2549-48d6-bc51-ccc907721e1d\",\"trace_id\":\"2ea36702-a6c3-4052-a62b-517e5dd4624f\"}\n[2026-05-11 12:21:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"6d623317-2549-48d6-bc51-ccc907721e1d\",\"trace_id\":\"2ea36702-a6c3-4052-a62b-517e5dd4624f\"}\n[2026-05-11 12:21:50] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":59,\"provider\":\"hubspot\",\"refreshToken\":\"97b78f6e2cc49965c00c2492b602b02708b1392551e6b3f113fbaa48992af90b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"6d623317-2549-48d6-bc51-ccc907721e1d\",\"trace_id\":\"2ea36702-a6c3-4052-a62b-517e5dd4624f\"}\n[2026-05-11 12:21:50] local.ERROR: Failed to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"6d623317-2549-48d6-bc51-ccc907721e1d\",\"trace_id\":\"2ea36702-a6c3-4052-a62b-517e5dd4624f\"}\n[2026-05-11 12:21:50] local.INFO: Trying to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\"} {\"correlation_id\":\"6d623317-2549-48d6-bc51-ccc907721e1d\",\"trace_id\":\"2ea36702-a6c3-4052-a62b-517e5dd4624f\"}\n[2026-05-11 12:21:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"6d623317-2549-48d6-bc51-ccc907721e1d\",\"trace_id\":\"2ea36702-a6c3-4052-a62b-517e5dd4624f\"}\n[2026-05-11 12:21:50] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":306,\"provider\":\"hubspot\",\"refreshToken\":\"6fa6aa8cc641d131231acc3470f5c03cb3b07b2e580fb18f8acb3b1dbb72549b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"6d623317-2549-48d6-bc51-ccc907721e1d\",\"trace_id\":\"2ea36702-a6c3-4052-a62b-517e5dd4624f\"}\n[2026-05-11 12:21:50] local.ERROR: Failed to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"6d623317-2549-48d6-bc51-ccc907721e1d\",\"trace_id\":\"2ea36702-a6c3-4052-a62b-517e5dd4624f\"}\n[2026-05-11 12:21:50] local.INFO: Trying to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\"} {\"correlation_id\":\"6d623317-2549-48d6-bc51-ccc907721e1d\",\"trace_id\":\"2ea36702-a6c3-4052-a62b-517e5dd4624f\"}\n[2026-05-11 12:21:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"6d623317-2549-48d6-bc51-ccc907721e1d\",\"trace_id\":\"2ea36702-a6c3-4052-a62b-517e5dd4624f\"}\n[2026-05-11 12:21:50] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1372,\"provider\":\"hubspot\",\"refreshToken\":\"9aa73948c761da29dce46c177cf9aee1fde483a44169ca38723f9f0597d7a8c4\",\"state\":\"full-refresh\"} {\"correlation_id\":\"6d623317-2549-48d6-bc51-ccc907721e1d\",\"trace_id\":\"2ea36702-a6c3-4052-a62b-517e5dd4624f\"}\n[2026-05-11 12:21:51] local.ERROR: Failed to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"6d623317-2549-48d6-bc51-ccc907721e1d\",\"trace_id\":\"2ea36702-a6c3-4052-a62b-517e5dd4624f\"}\n[2026-05-11 12:21:51] local.NOTICE: Repairing HubSpot tokens end {\"total\":3,\"fixed\":0,\"failed\":3} {\"correlation_id\":\"6d623317-2549-48d6-bc51-ccc907721e1d\",\"trace_id\":\"2ea36702-a6c3-4052-a62b-517e5dd4624f\"}\n[2026-05-11 12:21:59] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"baf1d10b-3075-4e0e-a69d-271c9b30251a\",\"trace_id\":\"0160ad26-8e64-4a9a-9bcb-2bb5a6e5c4ef\"}\n[2026-05-11 12:21:59] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"jiminny:transcription:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"520f6a72-31bc-4a4b-8ef9-dfaac8131068\",\"trace_id\":\"0ef5b84c-8257-401c-ad56-2c43bf9170b2\"}\n[2026-05-11 12:21:59] local.INFO: [HubSpot Journal Command] Starting polling service {\"correlation_id\":\"785b65a8-bb4c-44ce-a321-808303de1cc1\",\"trace_id\":\"47e5dcf0-839e-4b9c-a0de-a5ee1c352314\"}\n[2026-05-11 12:21:59] local.INFO: [HubSpot Journal Polling] Service starting {\"memory_limit\":\"256M\",\"max_execution_time\":\"0\",\"initial_memory_mb\":60.0} {\"correlation_id\":\"785b65a8-bb4c-44ce-a321-808303de1cc1\",\"trace_id\":\"47e5dcf0-839e-4b9c-a0de-a5ee1c352314\"}\n[2026-05-11 12:21:59] local.INFO: [HubSpot Journal Polling] Acquired polling lock {\"expires_at\":\"2026-05-11T12:23:59.382012Z\"} {\"correlation_id\":\"785b65a8-bb4c-44ce-a321-808303de1cc1\",\"trace_id\":\"47e5dcf0-839e-4b9c-a0de-a5ee1c352314\"}\n[2026-05-11 12:21:59] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"jiminny:transcription:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"520f6a72-31bc-4a4b-8ef9-dfaac8131068\",\"trace_id\":\"0ef5b84c-8257-401c-ad56-2c43bf9170b2\"}\n[2026-05-11 12:21:59] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"baf1d10b-3075-4e0e-a69d-271c9b30251a\",\"trace_id\":\"0160ad26-8e64-4a9a-9bcb-2bb5a6e5c4ef\"}\n[2026-05-11 12:21:59] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"785b65a8-bb4c-44ce-a321-808303de1cc1\",\"trace_id\":\"47e5dcf0-839e-4b9c-a0de-a5ee1c352314\"}\n[2026-05-11 12:22:05] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"785b65a8-bb4c-44ce-a321-808303de1cc1\",\"trace_id\":\"47e5dcf0-839e-4b9c-a0de-a5ee1c352314\"}\n[2026-05-11 12:22:09] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:reset-governor\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"8f9591a4-25d4-498a-b1ab-10c511c286d2\",\"trace_id\":\"3a958e2a-3128-4df0-8f46-891a3de9d305\"}\n[2026-05-11 12:22:10] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:reset-governor\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"8f9591a4-25d4-498a-b1ab-10c511c286d2\",\"trace_id\":\"3a958e2a-3128-4df0-8f46-891a3de9d305\"}\n[2026-05-11 12:22:10] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"785b65a8-bb4c-44ce-a321-808303de1cc1\",\"trace_id\":\"47e5dcf0-839e-4b9c-a0de-a5ee1c352314\"}\n[2026-05-11 12:22:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"0f4628cb-4553-4563-b0fc-2e4b2d7d7017\",\"trace_id\":\"ce16aae8-0e92-4f2a-8b64-d9f8f0742fd0\"}\n[2026-05-11 12:22:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"0f4628cb-4553-4563-b0fc-2e4b2d7d7017\",\"trace_id\":\"ce16aae8-0e92-4f2a-8b64-d9f8f0742fd0\"}\n[2026-05-11 12:22:25] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"785b65a8-bb4c-44ce-a321-808303de1cc1\",\"trace_id\":\"47e5dcf0-839e-4b9c-a0de-a5ee1c352314\"}\n[2026-05-11 12:22:56] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"785b65a8-bb4c-44ce-a321-808303de1cc1\",\"trace_id\":\"47e5dcf0-839e-4b9c-a0de-a5ee1c352314\"}\n[2026-05-11 12:22:56] local.WARNING: [HubSpot Journal Polling] Maximum empty results reached, stopping {\"empty_results\":5,\"max_empty_results\":5} {\"correlation_id\":\"785b65a8-bb4c-44ce-a321-808303de1cc1\",\"trace_id\":\"47e5dcf0-839e-4b9c-a0de-a5ee1c352314\"}\n[2026-05-11 12:22:56] local.WARNING: [HubSpot Journal Polling] Maximum empty results reached, stopping {\"empty_results\":5,\"max_empty_results\":5} {\"correlation_id\":\"785b65a8-bb4c-44ce-a321-808303de1cc1\",\"trace_id\":\"47e5dcf0-839e-4b9c-a0de-a5ee1c352314\"}\n[2026-05-11 12:22:56] local.INFO: [HubSpot Journal Polling] Service ending {\"runtime_seconds\":57,\"total_cycles\":5,\"files_downloaded\":0,\"empty_files\":0,\"other_portal_skipped\":0,\"total_events\":0,\"events_per_file\":0,\"avg_api_ms\":266.0,\"avg_download_ms\":0.0,\"avg_transform_ms\":0.0,\"avg_process_ms\":0.0,\"peak_memory_mb\":99.73} {\"correlation_id\":\"785b65a8-bb4c-44ce-a321-808303de1cc1\",\"trace_id\":\"47e5dcf0-839e-4b9c-a0de-a5ee1c352314\"}\n[2026-05-11 12:22:56] local.INFO: [HubSpot Journal Polling] Saved offset to database on cleanup {\"offset\":\"019e15a9-9ea0-7da7-87bc-82592e3ccf0d\"} {\"correlation_id\":\"785b65a8-bb4c-44ce-a321-808303de1cc1\",\"trace_id\":\"47e5dcf0-839e-4b9c-a0de-a5ee1c352314\"}\n[2026-05-11 12:22:56] local.INFO: [HubSpot Journal Polling] Released polling lock {\"correlation_id\":\"785b65a8-bb4c-44ce-a321-808303de1cc1\",\"trace_id\":\"47e5dcf0-839e-4b9c-a0de-a5ee1c352314\"}\n[2026-05-11 12:23:17] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"b10d35cf-25a8-4d0a-a093-3c03c1d21c35\",\"trace_id\":\"79b8aa81-09c0-419d-8fb4-748cd7c07dfa\"}\n[2026-05-11 12:23:17] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"b10d35cf-25a8-4d0a-a093-3c03c1d21c35\",\"trace_id\":\"79b8aa81-09c0-419d-8fb4-748cd7c07dfa\"}\n[2026-05-11 12:23:17] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"b10d35cf-25a8-4d0a-a093-3c03c1d21c35\",\"trace_id\":\"79b8aa81-09c0-419d-8fb4-748cd7c07dfa\"}\n[2026-05-11 12:23:22] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"65f73524-9a3f-4cd1-8b3c-08178041be45\",\"trace_id\":\"0df27da9-9e43-4d4b-a8f6-529d19ed31d1\"}\n[2026-05-11 12:23:22] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"65f73524-9a3f-4cd1-8b3c-08178041be45\",\"trace_id\":\"0df27da9-9e43-4d4b-a8f6-529d19ed31d1\"}\n[2026-05-11 12:23:28] local.NOTICE: Monitoring start {\"correlation_id\":\"f57ddb05-bb12-4534-9853-5100453a83e6\",\"trace_id\":\"4c6897b9-a428-44bb-a95b-7e595e694e9b\"}\n[2026-05-11 12:23:28] local.NOTICE: Monitoring end {\"correlation_id\":\"f57ddb05-bb12-4534-9853-5100453a83e6\",\"trace_id\":\"4c6897b9-a428-44bb-a95b-7e595e694e9b\"}\n[2026-05-11 12:23:33] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a3fbe76f-d2b6-4397-91bc-9f387f960603\",\"trace_id\":\"ce23c101-154d-4e0d-8562-de1bf72a01d2\"}\n[2026-05-11 12:23:33] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a3fbe76f-d2b6-4397-91bc-9f387f960603\",\"trace_id\":\"ce23c101-154d-4e0d-8562-de1bf72a01d2\"}\n[2026-05-11 12:23:41] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"b45dff6c-fe59-41f1-a02a-3d2db2a83bdd\",\"trace_id\":\"74ae7c19-6ff3-40df-b5b6-f4044f86819b\"}\n[2026-05-11 12:23:41] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"b45dff6c-fe59-41f1-a02a-3d2db2a83bdd\",\"trace_id\":\"74ae7c19-6ff3-40df-b5b6-f4044f86819b\"}\n[2026-05-11 12:23:41] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"b45dff6c-fe59-41f1-a02a-3d2db2a83bdd\",\"trace_id\":\"74ae7c19-6ff3-40df-b5b6-f4044f86819b\"}\n[2026-05-11 12:23:41] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"b45dff6c-fe59-41f1-a02a-3d2db2a83bdd\",\"trace_id\":\"74ae7c19-6ff3-40df-b5b6-f4044f86819b\"}\n[2026-05-11 12:23:55] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"317d8fa7-22d4-46a8-975a-71c29035ec8d\",\"trace_id\":\"e1c55d58-252b-49ab-b539-bb684c7539f3\"}\n[2026-05-11 12:23:55] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"317d8fa7-22d4-46a8-975a-71c29035ec8d\",\"trace_id\":\"e1c55d58-252b-49ab-b539-bb684c7539f3\"}\n[2026-05-11 12:23:56] local.INFO: [integration-app] Request {\"request\":\"GET connections\",\"full_target\":\"connections\"} {\"correlation_id\":\"fc1a4bd3-12c3-4905-a709-0d351f45e06d\",\"trace_id\":\"d7d04c3f-4829-437d-bd31-af51c6258297\"}\n[2026-05-11 12:23:57] local.INFO: [integration-app] Connection state identified {\"teamId\":3143,\"connection_name\":\"Connection to 66fe6c913202f3a165e3c14d for Dev Zoho CRM client\",\"remote_connection_id\":\"69e0b983da98fa74f98aebfb\",\"is_disconnected\":false,\"is_deactivated\":false,\"is_valid\":true} {\"correlation_id\":\"fc1a4bd3-12c3-4905-a709-0d351f45e06d\",\"trace_id\":\"d7d04c3f-4829-437d-bd31-af51c6258297\"}\n[2026-05-11 12:24:13] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"8be18703-0b36-46e2-8f71-489d5247a584\",\"trace_id\":\"a3d8f8c4-5107-4a89-bda5-56cae4361144\"}\n[2026-05-11 12:24:13] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"8be18703-0b36-46e2-8f71-489d5247a584\",\"trace_id\":\"a3d8f8c4-5107-4a89-bda5-56cae4361144\"}\n[2026-05-11 12:24:13] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"8be18703-0b36-46e2-8f71-489d5247a584\",\"trace_id\":\"a3d8f8c4-5107-4a89-bda5-56cae4361144\"}\n[2026-05-11 12:24:19] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"0d819555-0504-4123-8fa3-5254967a4026\",\"trace_id\":\"36468ee0-66c3-42df-a715-d5a567b33d56\"}\n[2026-05-11 12:24:20] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"0d819555-0504-4123-8fa3-5254967a4026\",\"trace_id\":\"36468ee0-66c3-42df-a715-d5a567b33d56\"}\n[2026-05-11 12:24:29] local.NOTICE: Monitoring start {\"correlation_id\":\"8d567cd7-7e41-41b1-9e69-2385d4cfa7a8\",\"trace_id\":\"b46279db-4250-47db-be10-da9479ad590a\"}\n[2026-05-11 12:24:29] local.NOTICE: Monitoring end {\"correlation_id\":\"8d567cd7-7e41-41b1-9e69-2385d4cfa7a8\",\"trace_id\":\"b46279db-4250-47db-be10-da9479ad590a\"}\n[2026-05-11 12:24:33] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"e236f29c-523b-4e37-9e12-45b0da7aa46b\",\"trace_id\":\"21ad246c-71e8-401d-b560-a39c4d6f65fd\"}\n[2026-05-11 12:24:33] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"e236f29c-523b-4e37-9e12-45b0da7aa46b\",\"trace_id\":\"21ad246c-71e8-401d-b560-a39c4d6f65fd\"}\n[2026-05-11 12:24:57] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"8c10f484-1ed7-429b-9724-4c36dbaab3b6\",\"trace_id\":\"4650b826-3e95-4f5d-9722-227c528c6c42\"}\n[2026-05-11 12:24:57] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"8c10f484-1ed7-429b-9724-4c36dbaab3b6\",\"trace_id\":\"4650b826-3e95-4f5d-9722-227c528c6c42\"}\n[2026-05-11 12:24:58] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"8c10f484-1ed7-429b-9724-4c36dbaab3b6\",\"trace_id\":\"4650b826-3e95-4f5d-9722-227c528c6c42\"}\n[2026-05-11 12:24:58] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"8c10f484-1ed7-429b-9724-4c36dbaab3b6\",\"trace_id\":\"4650b826-3e95-4f5d-9722-227c528c6c42\"}\n[2026-05-11 12:25:07] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"43cc53aa-24f2-4b8d-a449-e48115af6b07\",\"trace_id\":\"f2bb1873-b779-4d04-967a-888f1e867756\"}\n[2026-05-11 12:25:07] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 12:23:00, 2026-05-11 12:25:00] {\"correlation_id\":\"43cc53aa-24f2-4b8d-a449-e48115af6b07\",\"trace_id\":\"f2bb1873-b779-4d04-967a-888f1e867756\"}\n[2026-05-11 12:25:07] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 12:23:00, 2026-05-11 12:25:00] {\"correlation_id\":\"43cc53aa-24f2-4b8d-a449-e48115af6b07\",\"trace_id\":\"f2bb1873-b779-4d04-967a-888f1e867756\"}\n[2026-05-11 12:25:07] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"43cc53aa-24f2-4b8d-a449-e48115af6b07\",\"trace_id\":\"f2bb1873-b779-4d04-967a-888f1e867756\"}\n[2026-05-11 12:25:17] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:aircall:check-and-renew\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"344fe7e1-c3a8-4e7f-8170-ed913c472414\",\"trace_id\":\"d33376a0-3e56-43ba-bfcf-2339f37542f0\"}\n[2026-05-11 12:25:17] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1496,\"provider\":\"aircall\"} {\"correlation_id\":\"344fe7e1-c3a8-4e7f-8170-ed913c472414\",\"trace_id\":\"d33376a0-3e56-43ba-bfcf-2339f37542f0\"}\n[2026-05-11 12:25:17] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1496,\"provider\":\"aircall\"} {\"correlation_id\":\"344fe7e1-c3a8-4e7f-8170-ed913c472414\",\"trace_id\":\"d33376a0-3e56-43ba-bfcf-2339f37542f0\"}\n[2026-05-11 12:25:17] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"344fe7e1-c3a8-4e7f-8170-ed913c472414\",\"trace_id\":\"d33376a0-3e56-43ba-bfcf-2339f37542f0\"}\n[2026-05-11 12:25:18] local.ERROR: [Aircall] Re-activating webhooks failed {\"team_id\":1,\"reason\":\"{\\\"message\\\":\\\"Forbidden\\\"}\"} {\"correlation_id\":\"344fe7e1-c3a8-4e7f-8170-ed913c472414\",\"trace_id\":\"d33376a0-3e56-43ba-bfcf-2339f37542f0\"}\n[2026-05-11 12:25:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:aircall:check-and-renew\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"344fe7e1-c3a8-4e7f-8170-ed913c472414\",\"trace_id\":\"d33376a0-3e56-43ba-bfcf-2339f37542f0\"}\n[2026-05-11 12:25:25] local.INFO: [RetryFailedDownloads] Starting {\"options\":{\"from\":null,\"to\":null,\"help\":false,\"silent\":false,\"quiet\":false,\"verbose\":false,\"version\":false,\"ansi\":null,\"no-interaction\":false,\"env\":null}} {\"correlation_id\":\"a2e39f0c-6db3-49a1-8c09-98a1f5f9bda0\",\"trace_id\":\"b5be15b6-cf7b-4fd3-96fc-86d618b464eb\"}\n[2026-05-11 12:26:07] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"2e415ec3-72a6-4366-bb43-6e5da27f0efa\",\"trace_id\":\"c795c8ff-2220-49a5-9f11-d7106d80f18c\"}\n[2026-05-11 12:26:07] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"2e415ec3-72a6-4366-bb43-6e5da27f0efa\",\"trace_id\":\"c795c8ff-2220-49a5-9f11-d7106d80f18c\"}\n[2026-05-11 12:26:07] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"2e415ec3-72a6-4366-bb43-6e5da27f0efa\",\"trace_id\":\"c795c8ff-2220-49a5-9f11-d7106d80f18c\"}\n[2026-05-11 12:26:10] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"19883e58-93fc-4e3a-8599-c450fe7efb4d\",\"trace_id\":\"be470217-f201-4e61-af64-48d840e099a5\"}\n[2026-05-11 12:26:10] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"19883e58-93fc-4e3a-8599-c450fe7efb4d\",\"trace_id\":\"be470217-f201-4e61-af64-48d840e099a5\"}\n[2026-05-11 12:26:12] local.NOTICE: Monitoring start {\"correlation_id\":\"5b3e0e06-6c7b-4825-99a3-6dfc70267f4f\",\"trace_id\":\"f502c0e8-8051-48b5-9713-87ef60a0500e\"}\n[2026-05-11 12:26:12] local.NOTICE: Monitoring end {\"correlation_id\":\"5b3e0e06-6c7b-4825-99a3-6dfc70267f4f\",\"trace_id\":\"f502c0e8-8051-48b5-9713-87ef60a0500e\"}\n[2026-05-11 12:26:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"1344d34e-960d-4b58-afb3-7be4b2ce10cf\",\"trace_id\":\"c57dc190-922d-444d-84c2-11c132cfcb75\"}\n[2026-05-11 12:26:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"1344d34e-960d-4b58-afb3-7be4b2ce10cf\",\"trace_id\":\"c57dc190-922d-444d-84c2-11c132cfcb75\"}\n[2026-05-11 12:26:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"45577d8a-3a8e-4150-9dc2-bc3ed65a85be\",\"trace_id\":\"b3cbbe19-fba8-4d58-9b7c-e15d5de225ce\"}\n[2026-05-11 12:26:18] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"45577d8a-3a8e-4150-9dc2-bc3ed65a85be\",\"trace_id\":\"b3cbbe19-fba8-4d58-9b7c-e15d5de225ce\"}\n[2026-05-11 12:26:18] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"45577d8a-3a8e-4150-9dc2-bc3ed65a85be\",\"trace_id\":\"b3cbbe19-fba8-4d58-9b7c-e15d5de225ce\"}\n[2026-05-11 12:26:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"45577d8a-3a8e-4150-9dc2-bc3ed65a85be\",\"trace_id\":\"b3cbbe19-fba8-4d58-9b7c-e15d5de225ce\"}\n[2026-05-11 12:26:27] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"ae0af53d-e285-4a35-9e7b-0edcced20eae\",\"trace_id\":\"56514118-bd73-4c46-952d-88c534593158\"}\n[2026-05-11 12:26:27] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 12:24:00, 2026-05-11 12:26:00] {\"correlation_id\":\"ae0af53d-e285-4a35-9e7b-0edcced20eae\",\"trace_id\":\"56514118-bd73-4c46-952d-88c534593158\"}\n[2026-05-11 12:26:27] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 12:24:00, 2026-05-11 12:26:00] {\"correlation_id\":\"ae0af53d-e285-4a35-9e7b-0edcced20eae\",\"trace_id\":\"56514118-bd73-4c46-952d-88c534593158\"}\n[2026-05-11 12:26:27] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"ae0af53d-e285-4a35-9e7b-0edcced20eae\",\"trace_id\":\"56514118-bd73-4c46-952d-88c534593158\"}\n[2026-05-11 12:26:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:sync-hubspot-objects\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"e296b63c-e11b-44dc-81bf-315d967a55bc\",\"trace_id\":\"7a505e32-77cb-43ed-9141-8505133f1ac8\"}\n[2026-05-11 12:26:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:sync-hubspot-objects\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"e296b63c-e11b-44dc-81bf-315d967a55bc\",\"trace_id\":\"7a505e32-77cb-43ed-9141-8505133f1ac8\"}\n[2026-05-11 12:26:32] local.INFO: [SyncHubspotObjects] Starting sync {\"team\":\"abae74b8-bfa8-4383-9a7f-89f4bf2bdbb4\",\"usage\":23705696,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"5eb6e9cc-4b26-4881-bec7-7bd4741f7c53\",\"trace_id\":\"7a505e32-77cb-43ed-9141-8505133f1ac8\"}\n[2026-05-11 12:26:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5eb6e9cc-4b26-4881-bec7-7bd4741f7c53\",\"trace_id\":\"7a505e32-77cb-43ed-9141-8505133f1ac8\"}\n[2026-05-11 12:26:32] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"5eb6e9cc-4b26-4881-bec7-7bd4741f7c53\",\"trace_id\":\"7a505e32-77cb-43ed-9141-8505133f1ac8\"}\n[2026-05-11 12:26:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"5eb6e9cc-4b26-4881-bec7-7bd4741f7c53\",\"trace_id\":\"7a505e32-77cb-43ed-9141-8505133f1ac8\"}\n[2026-05-11 12:26:32] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1499,\"provider\":\"hubspot\",\"refreshToken\":\"96f94c623a404e02ebdbf07f1b75707bb6cdbf848cbf45d418baf608c41a8d86\",\"state\":\"connected\"} {\"correlation_id\":\"5eb6e9cc-4b26-4881-bec7-7bd4741f7c53\",\"trace_id\":\"7a505e32-77cb-43ed-9141-8505133f1ac8\"}\n[2026-05-11 12:26:32] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"5eb6e9cc-4b26-4881-bec7-7bd4741f7c53\",\"trace_id\":\"7a505e32-77cb-43ed-9141-8505133f1ac8\"}\n[2026-05-11 12:26:32] local.INFO: [SocialAccountObserver] Access token was modified, encrypting {\"correlation_id\":\"5eb6e9cc-4b26-4881-bec7-7bd4741f7c53\",\"trace_id\":\"7a505e32-77cb-43ed-9141-8505133f1ac8\"}\n[2026-05-11 12:26:33] local.INFO: [SocialAccountService] Token refreshed {\"socialAccountId\":1499,\"provider\":\"hubspot\",\"state\":\"connected\"} {\"correlation_id\":\"5eb6e9cc-4b26-4881-bec7-7bd4741f7c53\",\"trace_id\":\"7a505e32-77cb-43ed-9141-8505133f1ac8\"}\n[2026-05-11 12:26:33] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"5eb6e9cc-4b26-4881-bec7-7bd4741f7c53\",\"trace_id\":\"7a505e32-77cb-43ed-9141-8505133f1ac8\"}\n[2026-05-11 12:26:33] local.INFO: [HubSpot] Syncing opportunities using strategy: lastModified {\"team\":2} {\"correlation_id\":\"5eb6e9cc-4b26-4881-bec7-7bd4741f7c53\",\"trace_id\":\"7a505e32-77cb-43ed-9141-8505133f1ac8\"}\n[2026-05-11 12:26:34] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.36,\"average_seconds_per_request\":0.36} {\"correlation_id\":\"5eb6e9cc-4b26-4881-bec7-7bd4741f7c53\",\"trace_id\":\"7a505e32-77cb-43ed-9141-8505133f1ac8\"}\n[2026-05-11 12:26:34] local.INFO: [HubSpot] Synced opportunities {\"team\":2,\"strategies\":\"lastModified\",\"sync_count\":0,\"total\":0,\"last_synced_id\":null,\"duration_ms\":424.21} {\"correlation_id\":\"5eb6e9cc-4b26-4881-bec7-7bd4741f7c53\",\"trace_id\":\"7a505e32-77cb-43ed-9141-8505133f1ac8\"}\n[2026-05-11 12:26:34] local.INFO: [SyncHubspotObjects] Sync finished {\"team\":\"abae74b8-bfa8-4383-9a7f-89f4bf2bdbb4\",\"provider\":\"hubspot\",\"status\":\"completed\",\"duration_ms\":2009.68,\"usage\":23905768,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"5eb6e9cc-4b26-4881-bec7-7bd4741f7c53\",\"trace_id\":\"7a505e32-77cb-43ed-9141-8505133f1ac8\"}\n[2026-05-11 12:26:34] local.INFO: [SyncHubspotObjects] Starting sync {\"team\":\"b2b115eb-93ce-4d1b-929c-173757df8fba\",\"usage\":23880504,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"3c5441b7-57b7-4b93-89a0-c54af39354fc\",\"trace_id\":\"7a505e32-77cb-43ed-9141-8505133f1ac8\"}\n[2026-05-11 12:26:34] local.WARNING: [HubSpot] Account not connected for user {\"userId\":\"33e34a7a-1c02-4f04-87ac-22c3a385e6e3\",\"account\":{\"Jiminny\\\\Models\\\\SocialAccount\":{\"id\":306,\"sociable_id\":109,\"provider_user_id\":\"11348452\",\"expires\":1701077403,\"refresh_token_expires\":null,\"provider\":\"hubspot\",\"state\":\"full-refresh\",\"auth_scope\":null,\"retry_after\":null,\"created_at\":\"2020-09-01 16:59:04\",\"updated_at\":\"2023-11-27 09:30:03\"}}} {\"correlation_id\":\"3c5441b7-57b7-4b93-89a0-c54af39354fc\",\"trace_id\":\"7a505e32-77cb-43ed-9141-8505133f1ac8\"}\n[2026-05-11 12:26:34] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"hubspot\",\"crm_owner\":109,\"team_id\":29} {\"correlation_id\":\"3c5441b7-57b7-4b93-89a0-c54af39354fc\",\"trace_id\":\"7a505e32-77cb-43ed-9141-8505133f1ac8\"}\n[2026-05-11 12:26:34] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":29} {\"correlation_id\":\"3c5441b7-57b7-4b93-89a0-c54af39354fc\",\"trace_id\":\"7a505e32-77cb-43ed-9141-8505133f1ac8\"}\n[2026-05-11 12:26:34] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":29} {\"correlation_id\":\"3c5441b7-57b7-4b93-89a0-c54af39354fc\",\"trace_id\":\"7a505e32-77cb-43ed-9141-8505133f1ac8\"}\n[2026-05-11 12:26:34] local.INFO: [SyncHubspotObjects] Sync finished {\"team\":\"b2b115eb-93ce-4d1b-929c-173757df8fba\",\"provider\":\"hubspot\",\"status\":\"disconnected\",\"duration_ms\":105.69,\"usage\":23880424,\"real_usage\":62914560,\"pid\":74083,\"reason\":\"Your HubSpot account has become disconnected. Please login to Jiminny to reconnect.\"} {\"correlation_id\":\"3c5441b7-57b7-4b93-89a0-c54af39354fc\",\"trace_id\":\"7a505e32-77cb-43ed-9141-8505133f1ac8\"}\n[2026-05-11 12:26:34] local.INFO: [SyncHubspotObjects] Starting sync {\"team\":\"b2d49a54-b645-4637-a7ae-a86cfce6e8e4\",\"usage\":23837928,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"77cb9653-cfa5-47ef-abd1-9324f9bc381c\",\"trace_id\":\"7a505e32-77cb-43ed-9141-8505133f1ac8\"}\n[2026-05-11 12:26:34] local.WARNING: [HubSpot] Account not connected for user {\"userId\":\"2ac0447f-3c8c-4ce0-baeb-b63ddb76fa9b\",\"account\":null} {\"correlation_id\":\"77cb9653-cfa5-47ef-abd1-9324f9bc381c\",\"trace_id\":\"7a505e32-77cb-43ed-9141-8505133f1ac8\"}\n[2026-05-11 12:26:34] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"hubspot\",\"crm_owner\":130,\"team_id\":42} {\"correlation_id\":\"77cb9653-cfa5-47ef-abd1-9324f9bc381c\",\"trace_id\":\"7a505e32-77cb-43ed-9141-8505133f1ac8\"}\n[2026-05-11 12:26:34] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":42} {\"correlation_id\":\"77cb9653-cfa5-47ef-abd1-9324f9bc381c\",\"trace_id\":\"7a505e32-77cb-43ed-9141-8505133f1ac8\"}\n[2026-05-11 12:26:34] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":42} {\"correlation_id\":\"77cb9653-cfa5-47ef-abd1-9324f9bc381c\",\"trace_id\":\"7a505e32-77cb-43ed-9141-8505133f1ac8\"}\n[2026-05-11 12:26:34] local.INFO: [SyncHubspotObjects] Sync finished {\"team\":\"b2d49a54-b645-4637-a7ae-a86cfce6e8e4\",\"provider\":\"hubspot\",\"status\":\"disconnected\",\"duration_ms\":30.33,\"usage\":23857632,\"real_usage\":62914560,\"pid\":74083,\"reason\":\"Social account for HubSpot cannot be found. Please login to Jiminny to connect.\"} {\"correlation_id\":\"77cb9653-cfa5-47ef-abd1-9324f9bc381c\",\"trace_id\":\"7a505e32-77cb-43ed-9141-8505133f1ac8\"}\n[2026-05-11 12:26:34] local.INFO: [SyncHubspotObjects] Starting sync {\"team\":\"c6b9d6b0-b48d-4832-a68c-a57d60651888\",\"usage\":23818312,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"6d3c2da9-8eba-4235-a28f-fc1be82e2565\",\"trace_id\":\"7a505e32-77cb-43ed-9141-8505133f1ac8\"}\n[2026-05-11 12:26:34] local.WARNING: [HubSpot] Account not connected for user {\"userId\":\"71e3aac5-fb66-47c5-a236-2d051ae3e319\",\"account\":null} {\"correlation_id\":\"6d3c2da9-8eba-4235-a28f-fc1be82e2565\",\"trace_id\":\"7a505e32-77cb-43ed-9141-8505133f1ac8\"}\n[2026-05-11 12:26:34] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"hubspot\",\"crm_owner\":256,\"team_id\":49} {\"correlation_id\":\"6d3c2da9-8eba-4235-a28f-fc1be82e2565\",\"trace_id\":\"7a505e32-77cb-43ed-9141-8505133f1ac8\"}\n[2026-05-11 12:26:34] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":49} {\"correlation_id\":\"6d3c2da9-8eba-4235-a28f-fc1be82e2565\",\"trace_id\":\"7a505e32-77cb-43ed-9141-8505133f1ac8\"}\n[2026-05-11 12:26:34] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":49} {\"correlation_id\":\"6d3c2da9-8eba-4235-a28f-fc1be82e2565\",\"trace_id\":\"7a505e32-77cb-43ed-9141-8505133f1ac8\"}\n[2026-05-11 12:26:34] local.INFO: [SyncHubspotObjects] Sync finished {\"team\":\"c6b9d6b0-b48d-4832-a68c-a57d60651888\",\"provider\":\"hubspot\",\"status\":\"disconnected\",\"duration_ms\":22.58,\"usage\":23854048,\"real_usage\":62914560,\"pid\":74083,\"reason\":\"Social account for HubSpot cannot be found. Please login to Jiminny to connect.\"} {\"correlation_id\":\"6d3c2da9-8eba-4235-a28f-fc1be82e2565\",\"trace_id\":\"7a505e32-77cb-43ed-9141-8505133f1ac8\"}\n[2026-05-11 12:26:44] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:notify-not-logged\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"3cc3e6d7-cd8a-44a8-8d60-049d66a566e9\",\"trace_id\":\"0e059d99-cb53-4410-ba85-82bf3a2c8af7\"}\n[2026-05-11 12:26:44] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:notify-not-logged\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"3cc3e6d7-cd8a-44a8-8d60-049d66a566e9\",\"trace_id\":\"0e059d99-cb53-4410-ba85-82bf3a2c8af7\"}\n[2026-05-11 12:26:58] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"7d57268f-32d4-4e03-90ad-534140824d88\",\"trace_id\":\"cef544b9-52c4-44d5-b361-4bb6f308be9c\"}\n[2026-05-11 12:26:58] local.INFO: [EmailSchedule] STARTING Inbox Sync {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"7d57268f-32d4-4e03-90ad-534140824d88\",\"trace_id\":\"cef544b9-52c4-44d5-b361-4bb6f308be9c\"}\n[2026-05-11 12:26:59] local.INFO: [EmailSchedule] FINISHED Inbox Sync {\"host\":\"docker_lamp_1\",\"events\":2} {\"correlation_id\":\"7d57268f-32d4-4e03-90ad-534140824d88\",\"trace_id\":\"cef544b9-52c4-44d5-b361-4bb6f308be9c\"}\n[2026-05-11 12:26:59] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"7d57268f-32d4-4e03-90ad-534140824d88\",\"trace_id\":\"cef544b9-52c4-44d5-b361-4bb6f308be9c\"}\n[2026-05-11 12:26:59] local.INFO: [Sync Mailbox] Sync start {\"inbox_id\":59} {\"correlation_id\":\"d0588d51-150a-4f58-8693-e6e3cbaf337a\",\"trace_id\":\"cef544b9-52c4-44d5-b361-4bb6f308be9c\"}\n[2026-05-11 12:27:00] local.INFO: [Inbox service] Skipping METADATA SYNC for inbox 59 due to unauthorized access to the mailbox {\"correlation_id\":\"d0588d51-150a-4f58-8693-e6e3cbaf337a\",\"trace_id\":\"cef544b9-52c4-44d5-b361-4bb6f308be9c\"}\n[2026-05-11 12:27:00] local.INFO: [Sync Mailbox] Sync complete {\"inbox_id\":59} {\"correlation_id\":\"d0588d51-150a-4f58-8693-e6e3cbaf337a\",\"trace_id\":\"cef544b9-52c4-44d5-b361-4bb6f308be9c\"}\n[2026-05-11 12:27:00] local.INFO: [Sync Mailbox] Sync start {\"inbox_id\":212} {\"correlation_id\":\"a06bdd65-beae-453c-b260-e153267b9c31\",\"trace_id\":\"cef544b9-52c4-44d5-b361-4bb6f308be9c\"}\n[2026-05-11 12:27:00] local.INFO: [Inbox service] Skipping METADATA SYNC for inbox 212 due to unauthorized access to the mailbox {\"correlation_id\":\"a06bdd65-beae-453c-b260-e153267b9c31\",\"trace_id\":\"cef544b9-52c4-44d5-b361-4bb6f308be9c\"}\n[2026-05-11 12:27:00] local.INFO: [Sync Mailbox] Sync complete {\"inbox_id\":212} {\"correlation_id\":\"a06bdd65-beae-453c-b260-e153267b9c31\",\"trace_id\":\"cef544b9-52c4-44d5-b361-4bb6f308be9c\"}\n[2026-05-11 12:27:19] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"05628172-a2f4-47b5-b915-98d6f0fffebd\",\"trace_id\":\"fda18837-61d8-401b-9762-af15065443c8\"}\n[2026-05-11 12:27:19] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"05628172-a2f4-47b5-b915-98d6f0fffebd\",\"trace_id\":\"fda18837-61d8-401b-9762-af15065443c8\"}\n[2026-05-11 12:27:19] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"05628172-a2f4-47b5-b915-98d6f0fffebd\",\"trace_id\":\"fda18837-61d8-401b-9762-af15065443c8\"}\n[2026-05-11 12:27:28] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"4ba3fba8-62e3-4efa-9275-136b27861a0f\",\"trace_id\":\"128450ce-7b06-4190-9767-340c6d1661e1\"}\n[2026-05-11 12:27:28] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"4ba3fba8-62e3-4efa-9275-136b27861a0f\",\"trace_id\":\"128450ce-7b06-4190-9767-340c6d1661e1\"}\n[2026-05-11 12:27:32] local.NOTICE: Monitoring start {\"correlation_id\":\"04a3f08a-f1f5-4523-b617-165034b6cf2f\",\"trace_id\":\"b7d164f1-5d51-4f19-88b9-7a1e4cdd546c\"}\n[2026-05-11 12:27:32] local.NOTICE: Monitoring end {\"correlation_id\":\"04a3f08a-f1f5-4523-b617-165034b6cf2f\",\"trace_id\":\"b7d164f1-5d51-4f19-88b9-7a1e4cdd546c\"}\n[2026-05-11 12:27:37] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"eadaa109-fab1-45ff-9eb2-65ea5d005584\",\"trace_id\":\"8c549159-0f61-4827-9adc-41ec78d53b62\"}\n[2026-05-11 12:27:38] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"eadaa109-fab1-45ff-9eb2-65ea5d005584\",\"trace_id\":\"8c549159-0f61-4827-9adc-41ec78d53b62\"}\n[2026-05-11 12:27:47] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"9bb2b685-cf85-437d-8fb1-78fce6d810b9\",\"trace_id\":\"45ef9c78-c297-4b6b-8068-350c2a32309a\"}\n[2026-05-11 12:27:47] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"9bb2b685-cf85-437d-8fb1-78fce6d810b9\",\"trace_id\":\"45ef9c78-c297-4b6b-8068-350c2a32309a\"}\n[2026-05-11 12:27:48] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"9bb2b685-cf85-437d-8fb1-78fce6d810b9\",\"trace_id\":\"45ef9c78-c297-4b6b-8068-350c2a32309a\"}\n[2026-05-11 12:27:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"9bb2b685-cf85-437d-8fb1-78fce6d810b9\",\"trace_id\":\"45ef9c78-c297-4b6b-8068-350c2a32309a\"}\n[2026-05-11 12:27:53] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"fa34df26-bbe1-4365-8946-33d6ffa19cdf\",\"trace_id\":\"31df4851-f5ad-48f2-b776-551a112c5c01\"}\n[2026-05-11 12:27:54] local.INFO: [EmailSchedule] STARTING batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"fa34df26-bbe1-4365-8946-33d6ffa19cdf\",\"trace_id\":\"31df4851-f5ad-48f2-b776-551a112c5c01\"}\n[2026-05-11 12:27:54] local.INFO: [EmailSchedule] FINISHED batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"fa34df26-bbe1-4365-8946-33d6ffa19cdf\",\"trace_id\":\"31df4851-f5ad-48f2-b776-551a112c5c01\"}\n[2026-05-11 12:27:54] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"fa34df26-bbe1-4365-8946-33d6ffa19cdf\",\"trace_id\":\"31df4851-f5ad-48f2-b776-551a112c5c01\"}\n[2026-05-11 12:27:55] local.INFO: [Jiminny\\Jobs\\Mailbox\\CreateBatches] processed 2 inboxes and created 0 batches {\"userId\":null,\"batchSize\":30,\"maxBatches\":1000} {\"correlation_id\":\"ec257f30-38ec-4977-a4c0-51bf7a05ae9a\",\"trace_id\":\"31df4851-f5ad-48f2-b776-551a112c5c01\"}\n[2026-05-11 12:28:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"d83261db-1f58-45ad-b7ad-98b8d6e2a3b0\",\"trace_id\":\"efe9aac4-27df-4a9c-a0c0-b0d30d86bc92\"}\n[2026-05-11 12:28:16] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"d83261db-1f58-45ad-b7ad-98b8d6e2a3b0\",\"trace_id\":\"efe9aac4-27df-4a9c-a0c0-b0d30d86bc92\"}\n[2026-05-11 12:28:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"d83261db-1f58-45ad-b7ad-98b8d6e2a3b0\",\"trace_id\":\"efe9aac4-27df-4a9c-a0c0-b0d30d86bc92\"}\n[2026-05-11 12:28:22] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"d01a8f09-3e80-4d81-9822-3ee3c5e61038\",\"trace_id\":\"0e9e3880-1bef-4493-9b30-2b02f10d6af9\"}\n[2026-05-11 12:28:22] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"d01a8f09-3e80-4d81-9822-3ee3c5e61038\",\"trace_id\":\"0e9e3880-1bef-4493-9b30-2b02f10d6af9\"}\n[2026-05-11 12:28:31] local.NOTICE: Monitoring start {\"correlation_id\":\"0f632fea-19e4-45b3-b5fc-d989313b5874\",\"trace_id\":\"ad41804e-eaf8-454f-87f8-e9456ba84658\"}\n[2026-05-11 12:28:31] local.NOTICE: Monitoring end {\"correlation_id\":\"0f632fea-19e4-45b3-b5fc-d989313b5874\",\"trace_id\":\"ad41804e-eaf8-454f-87f8-e9456ba84658\"}\n[2026-05-11 12:28:35] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"5fd6f7b2-d4c0-45f3-be1a-175bc4fff4a7\",\"trace_id\":\"6566ba80-1c28-4440-98bc-7c814405debd\"}\n[2026-05-11 12:28:35] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"5fd6f7b2-d4c0-45f3-be1a-175bc4fff4a7\",\"trace_id\":\"6566ba80-1c28-4440-98bc-7c814405debd\"}\n[2026-05-11 12:28:45] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"dbae43eb-9196-462a-8f7e-569dcedf9943\",\"trace_id\":\"357e79e8-f8bf-47df-b390-a3d40c03437d\"}\n[2026-05-11 12:28:45] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"dbae43eb-9196-462a-8f7e-569dcedf9943\",\"trace_id\":\"357e79e8-f8bf-47df-b390-a3d40c03437d\"}\n[2026-05-11 12:28:46] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"dbae43eb-9196-462a-8f7e-569dcedf9943\",\"trace_id\":\"357e79e8-f8bf-47df-b390-a3d40c03437d\"}\n[2026-05-11 12:28:46] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"dbae43eb-9196-462a-8f7e-569dcedf9943\",\"trace_id\":\"357e79e8-f8bf-47df-b390-a3d40c03437d\"}\n[2026-05-11 12:28:51] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"8759214f-cba4-40ff-8c96-de84018cb116\",\"trace_id\":\"7c7ce687-edbf-44ce-9d45-0fcfc80c9f53\"}\n[2026-05-11 12:28:51] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 12:26:00, 2026-05-11 12:28:00] {\"correlation_id\":\"8759214f-cba4-40ff-8c96-de84018cb116\",\"trace_id\":\"7c7ce687-edbf-44ce-9d45-0fcfc80c9f53\"}\n[2026-05-11 12:28:51] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 12:26:00, 2026-05-11 12:28:00] {\"correlation_id\":\"8759214f-cba4-40ff-8c96-de84018cb116\",\"trace_id\":\"7c7ce687-edbf-44ce-9d45-0fcfc80c9f53\"}\n[2026-05-11 12:28:51] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"8759214f-cba4-40ff-8c96-de84018cb116\",\"trace_id\":\"7c7ce687-edbf-44ce-9d45-0fcfc80c9f53\"}\n[2026-05-11 12:28:59] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"392c63a7-d0d7-4ed8-80f2-c31adcd960a7\",\"trace_id\":\"7c2aa67d-4f73-4eb2-a41b-72f1714ad0aa\"}\n[2026-05-11 12:28:59] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"calendar:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:28:59] local.NOTICE: Calendar sync start {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:00] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"392c63a7-d0d7-4ed8-80f2-c31adcd960a7\",\"trace_id\":\"7c2aa67d-4f73-4eb2-a41b-72f1714ad0aa\"}\n[2026-05-11 12:29:00] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1393,\"provider\":\"google\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:00] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1393,\"provider\":\"google\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:00] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:00] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1393,\"provider\":\"google\",\"refreshToken\":\"5aa7e2d96b53201cd16fca5d2e4ef3ad03320971fc064781d18aee3ae7b99fbf\",\"state\":\"full-refresh\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:01] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1393,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Account has been deleted\"}} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:01] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:01] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1393,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:01] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1387,\"provider\":\"google\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:01] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1387,\"provider\":\"google\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:01] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:01] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1387,\"provider\":\"google\",\"refreshToken\":\"8157ac6de94842937194009e9c50e459253600f799dacf6a40755ffdbeb5bba6\",\"state\":\"full-refresh\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:01] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1387,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Account has been deleted\"}} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:01] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:01] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1387,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:01] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1348,\"provider\":\"google\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:01] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1348,\"provider\":\"google\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:01] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:01] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1348,\"provider\":\"google\",\"refreshToken\":\"9e7d13d3032d0cb1b79d8e95aef01383e8e91eb52ff8ee960c8a0b6b95cd8c73\",\"state\":\"full-refresh\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:01] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1348,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:01] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:02] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1348,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1361,\"provider\":\"google\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:02] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1361,\"provider\":\"google\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:02] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1361,\"provider\":\"google\",\"refreshToken\":\"6c843da199c2b9907445329304fcc4ec5057a4ee748d8299641764395c08e1fd\",\"state\":\"full-refresh\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:02] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1361,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Account has been deleted\"}} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:02] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:02] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1361,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1310,\"provider\":\"google\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:02] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1310,\"provider\":\"google\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:02] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1310,\"provider\":\"google\",\"refreshToken\":\"e34818922c2830a660813a63f6169a4a9a992ae2cccd7dc8dd7796cfdb470ef1\",\"state\":\"full-refresh\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:02] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1310,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:02] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:02] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1310,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1333,\"provider\":\"google\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:02] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1333,\"provider\":\"google\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:02] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1333,\"provider\":\"google\",\"refreshToken\":\"6c902986546d8e8da1dc539b046cdc1d458f519acc972e5b5f1d6a1a295165e0\",\"state\":\"full-refresh\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:02] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1333,\"provider\":\"google\",\"responseBody\":{\"error\":\"unauthorized_client\",\"error_description\":\"Unauthorized\"}} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:02] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:02] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1333,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:03] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1368,\"provider\":\"google\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:03] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1368,\"provider\":\"google\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:03] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:03] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1368,\"provider\":\"google\",\"refreshToken\":\"d2f128898ff8543bd16b69cfae37896ab85119b0f5ed2b431d739593bb600333\",\"state\":\"full-refresh\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:03] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1368,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:03] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:03] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1368,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:03] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1365,\"provider\":\"google\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:03] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1365,\"provider\":\"google\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:03] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:03] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1365,\"provider\":\"google\",\"refreshToken\":\"7676e4a9afcd082b413248ab5ec6e487021fec6a9bdf315860a59cefad9caad8\",\"state\":\"full-refresh\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:03] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1365,\"provider\":\"google\",\"responseBody\":{\"error\":\"unauthorized_client\",\"error_description\":\"Unauthorized\"}} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:03] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:03] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1365,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:03] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1364,\"provider\":\"google\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:03] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1364,\"provider\":\"google\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:03] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:03] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1364,\"provider\":\"google\",\"refreshToken\":\"dd5882ebce76e645292ce33ae74238abbb77c0a4ecc6a2bfe723cad82e72ba8e\",\"state\":\"full-refresh\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:03] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1364,\"provider\":\"google\",\"responseBody\":{\"error\":\"unauthorized_client\",\"error_description\":\"Unauthorized\"}} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:03] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:03] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1364,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:03] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1370,\"provider\":\"office\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:03] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1370,\"provider\":\"office\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:03] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:03] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1370,\"provider\":\"office\",\"refreshToken\":\"b7ee8035306d0043cea6e00e7c4fe14f745e44074a1194db62a31cdf8b70af3e\",\"state\":\"full-refresh\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:04] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1370,\"provider\":\"office\",\"responseBody\":\"{\\\"error\\\":\\\"invalid_client\\\",\\\"error_description\\\":\\\"AADSTS7000215: Invalid client secret provided. Ensure the secret being sent in the request is the client secret value, not the client secret ID, for a secret added to app 'bbcbb2ef-6200-4fae-82bd-d81f5dd738da'. Trace ID: 903bc53d-8962-4e32-a6a8-c9d186e81e00 Correlation ID: 3757ce12-b359-4871-93dd-2c818da7f0d7 Timestamp: 2026-05-11 12:29:04Z\\\",\\\"error_codes\\\":[7000215],\\\"timestamp\\\":\\\"2026-05-11 12:29:04Z\\\",\\\"trace_id\\\":\\\"903bc53d-8962-4e32-a6a8-c9d186e81e00\\\",\\\"correlation_id\\\":\\\"3757ce12-b359-4871-93dd-2c818da7f0d7\\\",\\\"error_uri\\\":\\\"https://login.microsoftonline.com/error?code=7000215\\\"}\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:04] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:04] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1370,\"provider\":\"office\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:04] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1202,\"provider\":\"office\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:04] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1202,\"provider\":\"office\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:04] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:04] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1202,\"provider\":\"office\",\"refreshToken\":\"b458799ccc29b21a6e2eb5260fdb63e49ccba21bf942a3973fb63799bd7f0afe\",\"state\":\"full-refresh\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:04] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1202,\"provider\":\"office\",\"responseBody\":\"{\\\"error\\\":\\\"invalid_client\\\",\\\"error_description\\\":\\\"AADSTS7000215: Invalid client secret provided. Ensure the secret being sent in the request is the client secret value, not the client secret ID, for a secret added to app 'bbcbb2ef-6200-4fae-82bd-d81f5dd738da'. Trace ID: dd265c32-ebdf-4635-9833-cd8f38eb0000 Correlation ID: 049424c9-8e9d-4ade-a73b-f2334a290e20 Timestamp: 2026-05-11 12:29:04Z\\\",\\\"error_codes\\\":[7000215],\\\"timestamp\\\":\\\"2026-05-11 12:29:04Z\\\",\\\"trace_id\\\":\\\"dd265c32-ebdf-4635-9833-cd8f38eb0000\\\",\\\"correlation_id\\\":\\\"049424c9-8e9d-4ade-a73b-f2334a290e20\\\",\\\"error_uri\\\":\\\"https://login.microsoftonline.com/error?code=7000215\\\"}\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:04] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:04] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1202,\"provider\":\"office\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:04] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:04] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:04] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:04] local.INFO: Calendar sync job dispatched {\"calendar_id\":501} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:05] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1300,\"provider\":\"google\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:05] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1300,\"provider\":\"google\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:05] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:05] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1300,\"provider\":\"google\",\"refreshToken\":\"4b811db0725fd9602a95943519a7da935e2a5065da7d9ebfcb170752e3e1ddb8\",\"state\":\"full-refresh\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:05] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1300,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Account has been deleted\"}} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:05] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:05] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1300,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:05] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1409,\"provider\":\"google\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:05] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1409,\"provider\":\"google\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:05] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:05] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1409,\"provider\":\"google\",\"refreshToken\":\"e2a3f2d06894894eed1ee87d9db1ace77d4d42ee6e1288a8940ad2c10333b0c4\",\"state\":\"full-refresh\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:05] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1409,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:05] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:05] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1409,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:05] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1352,\"provider\":\"google\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:05] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1352,\"provider\":\"google\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:05] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:05] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1352,\"provider\":\"google\",\"refreshToken\":\"dd4b16b00fdc1216da6b717c02338c073636e29162826b2de6db3f064fc029eb\",\"state\":\"full-refresh\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:05] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1352,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Token has been expired or revoked.\"}} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:05] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:05] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1352,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:05] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1296,\"provider\":\"office\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:05] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1296,\"provider\":\"office\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:05] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:05] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1296,\"provider\":\"office\",\"refreshToken\":\"011ae723c9d800c674e0b4be76f49fc046dac7d501b66c59ef0d9549cfa56ae5\",\"state\":\"full-refresh\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:06] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"dc971a8e-a539-45e5-af1d-e466aaa92d0a\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:06] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"dc971a8e-a539-45e5-af1d-e466aaa92d0a\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:06] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"dc971a8e-a539-45e5-af1d-e466aaa92d0a\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:06] local.INFO: [Calendar] Processing sync {\"calendarId\":\"a33076c1-8d97-431a-99f0-85c9524e118b\",\"from\":null,\"to\":null,\"delta\":\"CIiFh8TP44kDEIiFh8TP44kDGAUgkZvkzgIokZvkzgI=\",\"last_sync\":\"2024-12-09 07:12:53\",\"dateMode\":\"daily\"} {\"correlation_id\":\"dc971a8e-a539-45e5-af1d-e466aaa92d0a\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:06] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"integration-app\",\"crm_owner\":1695,\"team_id\":3143} {\"correlation_id\":\"dc971a8e-a539-45e5-af1d-e466aaa92d0a\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:06] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"dc971a8e-a539-45e5-af1d-e466aaa92d0a\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:06] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"dc971a8e-a539-45e5-af1d-e466aaa92d0a\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:06] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"dc971a8e-a539-45e5-af1d-e466aaa92d0a\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:06] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1296,\"provider\":\"office\",\"responseBody\":\"{\\\"error\\\":\\\"invalid_client\\\",\\\"error_description\\\":\\\"AADSTS7000215: Invalid client secret provided. Ensure the secret being sent in the request is the client secret value, not the client secret ID, for a secret added to app 'bbcbb2ef-6200-4fae-82bd-d81f5dd738da'. Trace ID: 8b22ccc7-5b2f-46d1-99e2-ea1bd6a60000 Correlation ID: bbcbfc91-e3cf-44c1-8003-dfb093aec18a Timestamp: 2026-05-11 12:29:06Z\\\",\\\"error_codes\\\":[7000215],\\\"timestamp\\\":\\\"2026-05-11 12:29:06Z\\\",\\\"trace_id\\\":\\\"8b22ccc7-5b2f-46d1-99e2-ea1bd6a60000\\\",\\\"correlation_id\\\":\\\"bbcbfc91-e3cf-44c1-8003-dfb093aec18a\\\",\\\"error_uri\\\":\\\"https://login.microsoftonline.com/error?code=7000215\\\"}\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:06] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:06] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1296,\"provider\":\"office\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:06] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":391,\"provider\":\"office\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:06] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":391,\"provider\":\"office\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:06] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:06] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":391,\"provider\":\"office\",\"refreshToken\":\"00045eebae0f39b34887c6d53f92ae78064f7145e1f4b67754aebd03cfb2d881\",\"state\":\"full-refresh\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:06] local.INFO: [Google Calendar] Failed to watch channel for calendar {\"calendarId\":\"a33076c1-8d97-431a-99f0-85c9524e118b\",\"code\":400,\"reason\":\"{\n \\\"error\\\": {\n \\\"errors\\\": [\n {\n \\\"domain\\\": \\\"global\\\",\n \\\"reason\\\": \\\"push.webhookUrlNotHttps\\\",\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n ],\n \\\"code\\\": 400,\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n}\"} {\"correlation_id\":\"dc971a8e-a539-45e5-af1d-e466aaa92d0a\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:06] local.WARNING: [Calendar] Sync failed {\"calendarId\":\"a33076c1-8d97-431a-99f0-85c9524e118b\",\"code\":400,\"reason\":\"{\n \\\"error\\\": {\n \\\"errors\\\": [\n {\n \\\"domain\\\": \\\"global\\\",\n \\\"reason\\\": \\\"push.webhookUrlNotHttps\\\",\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n ],\n \\\"code\\\": 400,\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n}\"} {\"correlation_id\":\"dc971a8e-a539-45e5-af1d-e466aaa92d0a\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:06] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":391,\"provider\":\"office\",\"responseBody\":\"{\\\"error\\\":\\\"invalid_client\\\",\\\"error_description\\\":\\\"AADSTS7000215: Invalid client secret provided. Ensure the secret being sent in the request is the client secret value, not the client secret ID, for a secret added to app 'bbcbb2ef-6200-4fae-82bd-d81f5dd738da'. Trace ID: be11735b-4062-4ff4-a3b0-418c3d0b1e00 Correlation ID: 50dbd0f6-741b-41df-9d25-be9450440657 Timestamp: 2026-05-11 12:29:06Z\\\",\\\"error_codes\\\":[7000215],\\\"timestamp\\\":\\\"2026-05-11 12:29:06Z\\\",\\\"trace_id\\\":\\\"be11735b-4062-4ff4-a3b0-418c3d0b1e00\\\",\\\"correlation_id\\\":\\\"50dbd0f6-741b-41df-9d25-be9450440657\\\",\\\"error_uri\\\":\\\"https://login.microsoftonline.com/error?code=7000215\\\"}\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:06] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:06] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":391,\"provider\":\"office\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:06] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1271,\"provider\":\"office\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:06] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1271,\"provider\":\"office\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:06] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:06] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1271,\"provider\":\"office\",\"refreshToken\":\"118cde2c06993147b07ccaec4cbcd5026a819dea6c71081166a492933e392afb\",\"state\":\"full-refresh\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:07] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1271,\"provider\":\"office\",\"responseBody\":\"{\\\"error\\\":\\\"invalid_client\\\",\\\"error_description\\\":\\\"AADSTS7000215: Invalid client secret provided. Ensure the secret being sent in the request is the client secret value, not the client secret ID, for a secret added to app 'bbcbb2ef-6200-4fae-82bd-d81f5dd738da'. Trace ID: e7a29036-6042-41f5-a367-3e74a6032200 Correlation ID: 99b9e0d8-a137-48cb-a17d-40b64d506b66 Timestamp: 2026-05-11 12:29:07Z\\\",\\\"error_codes\\\":[7000215],\\\"timestamp\\\":\\\"2026-05-11 12:29:07Z\\\",\\\"trace_id\\\":\\\"e7a29036-6042-41f5-a367-3e74a6032200\\\",\\\"correlation_id\\\":\\\"99b9e0d8-a137-48cb-a17d-40b64d506b66\\\",\\\"error_uri\\\":\\\"https://login.microsoftonline.com/error?code=7000215\\\"}\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:07] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:07] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1271,\"provider\":\"office\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:07] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1351,\"provider\":\"google\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:07] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1351,\"provider\":\"google\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:07] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:07] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1351,\"provider\":\"google\",\"refreshToken\":\"4271d15b9e60a606439caddc68337f783e472c85b03dacff14d1b6dfded9051c\",\"state\":\"full-refresh\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:07] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1351,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:07] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:07] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1351,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:07] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1366,\"provider\":\"google\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:07] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1366,\"provider\":\"google\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:07] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:07] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1366,\"provider\":\"google\",\"refreshToken\":\"ae21385059b2eebfd43f68aecd56eccd702a1aabb6598f1f7ab594ed8af491b4\",\"state\":\"full-refresh\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:07] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1366,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:07] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:07] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1366,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:07] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:07] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:07] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:07] local.INFO: Calendar sync job dispatched {\"calendar_id\":378} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:07] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1421,\"provider\":\"office\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:07] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1421,\"provider\":\"office\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:07] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:07] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1421,\"provider\":\"office\",\"refreshToken\":\"4eb522757b863daff86e73101713e23d79b066539939fb5a7c3bcb94030a15a0\",\"state\":\"connected\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:08] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"d9e5090e-aa6a-4674-8e03-7e85311a0765\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:08] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"d9e5090e-aa6a-4674-8e03-7e85311a0765\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:08] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d9e5090e-aa6a-4674-8e03-7e85311a0765\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:08] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:08] local.INFO: [SocialAccountObserver] Access token was modified, encrypting {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:08] local.INFO: [Calendar] Processing sync {\"calendarId\":\"2676cb6d-f86c-427e-bf78-591e388e3c1e\",\"from\":null,\"to\":null,\"delta\":\"CJ_x49O3jpIDEJ_x49O3jpIDGAUgw67KlwMow67KlwM=\",\"last_sync\":\"2026-01-19 07:48:40\",\"dateMode\":\"daily\"} {\"correlation_id\":\"d9e5090e-aa6a-4674-8e03-7e85311a0765\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:08] local.WARNING: [Pipedrive] Account not connected for user {\"userId\":\"e6538737-e7b4-455f-a37a-3e79b665a220\",\"account\":{\"Jiminny\\\\Models\\\\SocialAccount\":{\"id\":1116,\"sociable_id\":241,\"provider_user_id\":\"19555731\",\"expires\":1775683749,\"refresh_token_expires\":null,\"provider\":\"pipedrive\",\"state\":\"full-refresh\",\"auth_scope\":\"base,deals:full,activities:full,contacts:full,search:read\",\"retry_after\":null,\"created_at\":\"2023-09-08 09:44:29\",\"updated_at\":\"2026-04-08 22:58:34\"}}} {\"correlation_id\":\"d9e5090e-aa6a-4674-8e03-7e85311a0765\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:08] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"pipedrive\",\"crm_owner\":241,\"team_id\":19} {\"correlation_id\":\"d9e5090e-aa6a-4674-8e03-7e85311a0765\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:08] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"pipedrive\",\"team_id\":19} {\"correlation_id\":\"d9e5090e-aa6a-4674-8e03-7e85311a0765\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:08] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"pipedrive\",\"team_id\":19} {\"correlation_id\":\"d9e5090e-aa6a-4674-8e03-7e85311a0765\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:08] local.WARNING: [Calendar] CRM disconnected for user so events will not be matched {\"provider\":\"pipedrive\",\"user_id\":241,\"message\":\"Your Pipedrive account has become disconnected. Please login to Jiminny to reconnect.\"} {\"correlation_id\":\"d9e5090e-aa6a-4674-8e03-7e85311a0765\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:08] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"d9e5090e-aa6a-4674-8e03-7e85311a0765\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:08] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"d9e5090e-aa6a-4674-8e03-7e85311a0765\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:08] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"d9e5090e-aa6a-4674-8e03-7e85311a0765\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:09] local.INFO: [Google Calendar] Failed to watch channel for calendar {\"calendarId\":\"2676cb6d-f86c-427e-bf78-591e388e3c1e\",\"code\":400,\"reason\":\"{\n \\\"error\\\": {\n \\\"errors\\\": [\n {\n \\\"domain\\\": \\\"global\\\",\n \\\"reason\\\": \\\"push.webhookUrlNotHttps\\\",\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n ],\n \\\"code\\\": 400,\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n}\"} {\"correlation_id\":\"d9e5090e-aa6a-4674-8e03-7e85311a0765\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:09] local.WARNING: [Calendar] Sync failed {\"calendarId\":\"2676cb6d-f86c-427e-bf78-591e388e3c1e\",\"code\":400,\"reason\":\"{\n \\\"error\\\": {\n \\\"errors\\\": [\n {\n \\\"domain\\\": \\\"global\\\",\n \\\"reason\\\": \\\"push.webhookUrlNotHttps\\\",\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n ],\n \\\"code\\\": 400,\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n}\"} {\"correlation_id\":\"d9e5090e-aa6a-4674-8e03-7e85311a0765\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:09] local.INFO: [SocialAccountObserver] Refresh token was modified, encrypting {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:09] local.INFO: [SocialAccountService] Token refreshed {\"socialAccountId\":1421,\"provider\":\"office\",\"state\":\"connected\"} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:09] local.INFO: Calendar sync job dispatched {\"calendar_id\":504} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:09] local.NOTICE: Calendar sync end {\"retrieved_calendars\":31,\"processed_calendars\":3} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:09] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"calendar:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":62.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"223f2d9d-f01d-4745-a701-52bd86fb6f17\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:11] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1421,\"provider\":\"office\"} {\"correlation_id\":\"ad7fb635-c71e-4df1-8dfe-476a6b500be5\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:11] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1421,\"provider\":\"office\"} {\"correlation_id\":\"ad7fb635-c71e-4df1-8dfe-476a6b500be5\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:11] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ad7fb635-c71e-4df1-8dfe-476a6b500be5\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:11] local.INFO: [Calendar] Processing sync {\"calendarId\":\"9e8b1a2c-1a8f-42bd-b161-810fc0baf540\",\"from\":null,\"to\":null,\"delta\":\"R0usmcdvmMuZCBYV0hguCLlvcOB4kXlhlC7KgH1SnZwTrZ3faZv1fXPQqJhxe_L9AxWWlb-wASsjGiiWlhsBUg9MFb3ZdlAYerVV_ZirRPbsKWCxEXhybD90arJmok_M4ecGFUQ9_BIGu-c6RAnJy2TRKZ7gPTsJi_8TGceGAuqimlhm4G4mjDLvYVVwImjjU7M3xJvUzL47dLOGNTJCww.k1TST0VEYCgbFOkwa3ysYMi100FtVfkzfqlXLnV6gPg\",\"last_sync\":\"2026-05-11 06:13:36\",\"dateMode\":\"daily\"} {\"correlation_id\":\"ad7fb635-c71e-4df1-8dfe-476a6b500be5\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:11] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ad7fb635-c71e-4df1-8dfe-476a6b500be5\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:11] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"ad7fb635-c71e-4df1-8dfe-476a6b500be5\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:11] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"ad7fb635-c71e-4df1-8dfe-476a6b500be5\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:11] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":89,\"team_id\":2} {\"correlation_id\":\"ad7fb635-c71e-4df1-8dfe-476a6b500be5\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:29:11] local.INFO: [MS Office Calendar] Skipping delta sync for daily mode {\"calendarId\":\"9e8b1a2c-1a8f-42bd-b161-810fc0baf540\"} {\"correlation_id\":\"ad7fb635-c71e-4df1-8dfe-476a6b500be5\",\"trace_id\":\"c54b11eb-5d4a-48c6-a9cb-e3a4c47dcbf6\"}\n[2026-05-11 12:30:19] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"1251e9db-ef8d-4c91-9336-1ee0f0730cf7\",\"trace_id\":\"dfd923cd-7195-4a1e-9ce2-768b6ef8e343\"}\n[2026-05-11 12:30:20] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"1251e9db-ef8d-4c91-9336-1ee0f0730cf7\",\"trace_id\":\"dfd923cd-7195-4a1e-9ce2-768b6ef8e343\"}\n[2026-05-11 12:30:20] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"1251e9db-ef8d-4c91-9336-1ee0f0730cf7\",\"trace_id\":\"dfd923cd-7195-4a1e-9ce2-768b6ef8e343\"}\n[2026-05-11 12:30:26] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"04f8da0d-a30d-46db-8162-9f58f0ddaeb4\",\"trace_id\":\"1b8eeb5b-44b8-47d4-870f-a5b1f5e98d70\"}\n[2026-05-11 12:30:26] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"04f8da0d-a30d-46db-8162-9f58f0ddaeb4\",\"trace_id\":\"1b8eeb5b-44b8-47d4-870f-a5b1f5e98d70\"}\n[2026-05-11 12:30:38] local.NOTICE: Monitoring start {\"correlation_id\":\"c9c8a591-1b8b-4caa-a5a4-aa28e637779f\",\"trace_id\":\"a0bfbb6e-9704-4884-9cad-92fd14d25c77\"}\n[2026-05-11 12:30:38] local.NOTICE: Monitoring end {\"correlation_id\":\"c9c8a591-1b8b-4caa-a5a4-aa28e637779f\",\"trace_id\":\"a0bfbb6e-9704-4884-9cad-92fd14d25c77\"}\n[2026-05-11 12:30:53] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"63384407-cfef-4aed-b985-2fca376de38a\",\"trace_id\":\"a6b7afed-bcf1-475d-9ff0-11d8abcd8178\"}\n[2026-05-11 12:30:53] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"63384407-cfef-4aed-b985-2fca376de38a\",\"trace_id\":\"a6b7afed-bcf1-475d-9ff0-11d8abcd8178\"}\n[2026-05-11 12:30:59] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"19bf9c67-7407-44ff-a279-99b5a8d152a9\",\"trace_id\":\"0b9230a1-2a62-4197-a520-6605c2e4c039\"}\n[2026-05-11 12:30:59] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"19bf9c67-7407-44ff-a279-99b5a8d152a9\",\"trace_id\":\"0b9230a1-2a62-4197-a520-6605c2e4c039\"}\n[2026-05-11 12:30:59] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"19bf9c67-7407-44ff-a279-99b5a8d152a9\",\"trace_id\":\"0b9230a1-2a62-4197-a520-6605c2e4c039\"}\n[2026-05-11 12:30:59] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"19bf9c67-7407-44ff-a279-99b5a8d152a9\",\"trace_id\":\"0b9230a1-2a62-4197-a520-6605c2e4c039\"}\n[2026-05-11 12:31:08] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"43f397a3-6cd5-4184-84a2-a47f15fa1153\",\"trace_id\":\"3f83adbd-589b-4b11-87e1-30bf88862dca\"}\n[2026-05-11 12:31:08] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 12:29:00, 2026-05-11 12:31:00] {\"correlation_id\":\"43f397a3-6cd5-4184-84a2-a47f15fa1153\",\"trace_id\":\"3f83adbd-589b-4b11-87e1-30bf88862dca\"}\n[2026-05-11 12:31:08] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 12:29:00, 2026-05-11 12:31:00] {\"correlation_id\":\"43f397a3-6cd5-4184-84a2-a47f15fa1153\",\"trace_id\":\"3f83adbd-589b-4b11-87e1-30bf88862dca\"}\n[2026-05-11 12:31:08] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"43f397a3-6cd5-4184-84a2-a47f15fa1153\",\"trace_id\":\"3f83adbd-589b-4b11-87e1-30bf88862dca\"}\n[2026-05-11 12:31:14] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"56ac25c8-cb8e-4c00-9433-7c645420bbb9\",\"trace_id\":\"414b3062-1b63-4200-8042-00fb7cbbc8f9\"}\n[2026-05-11 12:31:14] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"56ac25c8-cb8e-4c00-9433-7c645420bbb9\",\"trace_id\":\"414b3062-1b63-4200-8042-00fb7cbbc8f9\"}\n[2026-05-11 12:31:22] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"502ea9c5-01fb-4de3-be78-983144227c87\",\"trace_id\":\"4f6f307f-0f29-443b-89b2-67418db5a8ea\"}\n[2026-05-11 12:31:23] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"502ea9c5-01fb-4de3-be78-983144227c87\",\"trace_id\":\"4f6f307f-0f29-443b-89b2-67418db5a8ea\"}\n[2026-05-11 12:31:28] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"58fb330e-005a-4b45-892e-c0728fad2297\",\"trace_id\":\"63584b05-93af-4729-8638-b3198b7373b3\"}\n[2026-05-11 12:31:28] local.INFO: Running pre-meeting notification command {\"correlation_id\":\"58fb330e-005a-4b45-892e-c0728fad2297\",\"trace_id\":\"63584b05-93af-4729-8638-b3198b7373b3\"}\n[2026-05-11 12:31:28] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"58fb330e-005a-4b45-892e-c0728fad2297\",\"trace_id\":\"63584b05-93af-4729-8638-b3198b7373b3\"}\n[2026-05-11 12:31:39] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"05823705-03d5-4b3b-aae6-2b8f5ea3dfb2\",\"trace_id\":\"bd3c1a1f-41f1-42ce-9070-1d58ec479bd6\"}\n[2026-05-11 12:31:39] local.INFO: Running conference:monitor:start command for activities in (2026-05-11 12:21:00, 2026-05-11 12:26:00] {\"correlation_id\":\"05823705-03d5-4b3b-aae6-2b8f5ea3dfb2\",\"trace_id\":\"bd3c1a1f-41f1-42ce-9070-1d58ec479bd6\"}\n[2026-05-11 12:31:39] local.INFO: [conference:monitor:start] No activities found in (2026-05-11 12:21:00, 2026-05-11 12:26:00] {\"correlation_id\":\"05823705-03d5-4b3b-aae6-2b8f5ea3dfb2\",\"trace_id\":\"bd3c1a1f-41f1-42ce-9070-1d58ec479bd6\"}\n[2026-05-11 12:31:39] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"05823705-03d5-4b3b-aae6-2b8f5ea3dfb2\",\"trace_id\":\"bd3c1a1f-41f1-42ce-9070-1d58ec479bd6\"}\n[2026-05-11 12:31:44] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"df87f644-6ccb-475b-bb8e-da1b5b7877f3\",\"trace_id\":\"a30634ca-9064-4eb0-a2d5-301015c08782\"}\n[2026-05-11 12:31:44] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesEnded {\"from\":\"12:26\",\"to\":\"12:31\"} {\"correlation_id\":\"df87f644-6ccb-475b-bb8e-da1b5b7877f3\",\"trace_id\":\"a30634ca-9064-4eb0-a2d5-301015c08782\"}\n[2026-05-11 12:31:45] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesWithUnfinishedSession {\"from\":\"02:21\",\"to\":\"02:26\"} {\"correlation_id\":\"df87f644-6ccb-475b-bb8e-da1b5b7877f3\",\"trace_id\":\"a30634ca-9064-4eb0-a2d5-301015c08782\"}\n[2026-05-11 12:31:45] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"df87f644-6ccb-475b-bb8e-da1b5b7877f3\",\"trace_id\":\"a30634ca-9064-4eb0-a2d5-301015c08782\"}\n[2026-05-11 12:31:53] local.NOTICE: Repairing HubSpot tokens start {\"correlation_id\":\"9402c944-3efb-4463-a243-607690354732\",\"trace_id\":\"7f3fc8ed-0d10-42cd-9923-db604641cf0e\"}\n[2026-05-11 12:31:53] local.INFO: Trying to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\"} {\"correlation_id\":\"9402c944-3efb-4463-a243-607690354732\",\"trace_id\":\"7f3fc8ed-0d10-42cd-9923-db604641cf0e\"}\n[2026-05-11 12:31:53] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9402c944-3efb-4463-a243-607690354732\",\"trace_id\":\"7f3fc8ed-0d10-42cd-9923-db604641cf0e\"}\n[2026-05-11 12:31:53] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":59,\"provider\":\"hubspot\",\"refreshToken\":\"97b78f6e2cc49965c00c2492b602b02708b1392551e6b3f113fbaa48992af90b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"9402c944-3efb-4463-a243-607690354732\",\"trace_id\":\"7f3fc8ed-0d10-42cd-9923-db604641cf0e\"}\n[2026-05-11 12:31:54] local.ERROR: Failed to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"9402c944-3efb-4463-a243-607690354732\",\"trace_id\":\"7f3fc8ed-0d10-42cd-9923-db604641cf0e\"}\n[2026-05-11 12:31:54] local.INFO: Trying to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\"} {\"correlation_id\":\"9402c944-3efb-4463-a243-607690354732\",\"trace_id\":\"7f3fc8ed-0d10-42cd-9923-db604641cf0e\"}\n[2026-05-11 12:31:54] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9402c944-3efb-4463-a243-607690354732\",\"trace_id\":\"7f3fc8ed-0d10-42cd-9923-db604641cf0e\"}\n[2026-05-11 12:31:54] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":306,\"provider\":\"hubspot\",\"refreshToken\":\"6fa6aa8cc641d131231acc3470f5c03cb3b07b2e580fb18f8acb3b1dbb72549b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"9402c944-3efb-4463-a243-607690354732\",\"trace_id\":\"7f3fc8ed-0d10-42cd-9923-db604641cf0e\"}\n[2026-05-11 12:31:54] local.ERROR: Failed to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"9402c944-3efb-4463-a243-607690354732\",\"trace_id\":\"7f3fc8ed-0d10-42cd-9923-db604641cf0e\"}\n[2026-05-11 12:31:54] local.INFO: Trying to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\"} {\"correlation_id\":\"9402c944-3efb-4463-a243-607690354732\",\"trace_id\":\"7f3fc8ed-0d10-42cd-9923-db604641cf0e\"}\n[2026-05-11 12:31:54] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9402c944-3efb-4463-a243-607690354732\",\"trace_id\":\"7f3fc8ed-0d10-42cd-9923-db604641cf0e\"}\n[2026-05-11 12:31:54] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1372,\"provider\":\"hubspot\",\"refreshToken\":\"9aa73948c761da29dce46c177cf9aee1fde483a44169ca38723f9f0597d7a8c4\",\"state\":\"full-refresh\"} {\"correlation_id\":\"9402c944-3efb-4463-a243-607690354732\",\"trace_id\":\"7f3fc8ed-0d10-42cd-9923-db604641cf0e\"}\n[2026-05-11 12:31:55] local.ERROR: Failed to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"9402c944-3efb-4463-a243-607690354732\",\"trace_id\":\"7f3fc8ed-0d10-42cd-9923-db604641cf0e\"}\n[2026-05-11 12:31:55] local.NOTICE: Repairing HubSpot tokens end {\"total\":3,\"fixed\":0,\"failed\":3} {\"correlation_id\":\"9402c944-3efb-4463-a243-607690354732\",\"trace_id\":\"7f3fc8ed-0d10-42cd-9923-db604641cf0e\"}\n[2026-05-11 12:32:06] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"jiminny:transcription:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"13496d18-4307-4fb9-b3f6-7536bcc4ddc7\",\"trace_id\":\"ac9a2b04-90e9-4227-a850-af51bf7e0154\"}\n[2026-05-11 12:32:06] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"bd4fdafa-4e8e-41c7-9e24-ba72320261ee\",\"trace_id\":\"b8cbb62d-4acd-4ca3-8ee4-f957f9a42e91\"}\n[2026-05-11 12:32:06] local.INFO: [HubSpot Journal Command] Starting polling service {\"correlation_id\":\"891c0cd1-fda8-437a-8133-6f4f122e620c\",\"trace_id\":\"e4667153-9e43-4e19-8d29-6b6ce1b073cc\"}\n[2026-05-11 12:32:06] local.INFO: [HubSpot Journal Polling] Service starting {\"memory_limit\":\"256M\",\"max_execution_time\":\"0\",\"initial_memory_mb\":60.0} {\"correlation_id\":\"891c0cd1-fda8-437a-8133-6f4f122e620c\",\"trace_id\":\"e4667153-9e43-4e19-8d29-6b6ce1b073cc\"}\n[2026-05-11 12:32:06] local.INFO: [HubSpot Journal Polling] Acquired polling lock {\"expires_at\":\"2026-05-11T12:34:06.793783Z\"} {\"correlation_id\":\"891c0cd1-fda8-437a-8133-6f4f122e620c\",\"trace_id\":\"e4667153-9e43-4e19-8d29-6b6ce1b073cc\"}\n[2026-05-11 12:32:06] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"jiminny:transcription:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"13496d18-4307-4fb9-b3f6-7536bcc4ddc7\",\"trace_id\":\"ac9a2b04-90e9-4227-a850-af51bf7e0154\"}\n[2026-05-11 12:32:07] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"bd4fdafa-4e8e-41c7-9e24-ba72320261ee\",\"trace_id\":\"b8cbb62d-4acd-4ca3-8ee4-f957f9a42e91\"}\n[2026-05-11 12:32:07] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"891c0cd1-fda8-437a-8133-6f4f122e620c\",\"trace_id\":\"e4667153-9e43-4e19-8d29-6b6ce1b073cc\"}\n[2026-05-11 12:32:12] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"891c0cd1-fda8-437a-8133-6f4f122e620c\",\"trace_id\":\"e4667153-9e43-4e19-8d29-6b6ce1b073cc\"}\n[2026-05-11 12:32:13] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:reset-governor\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"74dd8b56-2a56-486c-abf9-4cd6aa7b2302\",\"trace_id\":\"32343183-41f4-4f9e-8d95-8fe7933ceffe\"}\n[2026-05-11 12:32:13] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:reset-governor\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"74dd8b56-2a56-486c-abf9-4cd6aa7b2302\",\"trace_id\":\"32343183-41f4-4f9e-8d95-8fe7933ceffe\"}\n[2026-05-11 12:32:17] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"891c0cd1-fda8-437a-8133-6f4f122e620c\",\"trace_id\":\"e4667153-9e43-4e19-8d29-6b6ce1b073cc\"}\n[2026-05-11 12:32:28] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"ad393152-4469-4d54-8bc5-d69c13cbe344\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:28] local.INFO: Dispatching activity sync job {\"import_id\":812732,\"provider\":\"twilio-flex\",\"team\":\"jiminny\"} {\"correlation_id\":\"ad393152-4469-4d54-8bc5-d69c13cbe344\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:28] local.INFO: Dispatching activity sync job {\"import_id\":812733,\"provider\":\"xant\",\"team\":\"jiminny\"} {\"correlation_id\":\"ad393152-4469-4d54-8bc5-d69c13cbe344\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:28] local.INFO: Dispatching activity sync job {\"import_id\":812734,\"provider\":\"apollo\",\"team\":\"jiminny\"} {\"correlation_id\":\"ad393152-4469-4d54-8bc5-d69c13cbe344\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:28] local.INFO: Dispatching activity sync job {\"import_id\":812735,\"provider\":\"groove\",\"team\":\"jiminny\"} {\"correlation_id\":\"ad393152-4469-4d54-8bc5-d69c13cbe344\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:28] local.INFO: Dispatching activity sync job {\"import_id\":812736,\"provider\":\"twilio-video\",\"team\":\"jiminny\"} {\"correlation_id\":\"ad393152-4469-4d54-8bc5-d69c13cbe344\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:28] local.INFO: Dispatching activity sync job {\"import_id\":812737,\"provider\":\"hubspot\",\"team\":\"hubspot\"} {\"correlation_id\":\"ad393152-4469-4d54-8bc5-d69c13cbe344\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:28] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"ad393152-4469-4d54-8bc5-d69c13cbe344\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:30] local.WARNING: [Salesforce] Account not connected for user {\"userId\":\"cdf8b554-d951-4758-bc2b-c1b85d1cd0b9\",\"account\":null} {\"correlation_id\":\"d3eddf1c-e7c3-4a37-8c9d-741e9d9b611c\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:30] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"salesforce\",\"crm_owner\":3,\"team_id\":1} {\"correlation_id\":\"d3eddf1c-e7c3-4a37-8c9d-741e9d9b611c\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:31] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"salesforce\",\"team_id\":1} {\"correlation_id\":\"d3eddf1c-e7c3-4a37-8c9d-741e9d9b611c\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:31] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"salesforce\",\"team_id\":1} {\"correlation_id\":\"d3eddf1c-e7c3-4a37-8c9d-741e9d9b611c\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:31] local.ALERT: [SyncActivity] Failed {\"import_id\":812732,\"provider\":\"twilio-flex\",\"provider_id\":317,\"team\":\"jiminny\",\"team_id\":1,\"reason\":\"Social account for Salesforce cannot be found. Please login to Jiminny to connect.\",\"file\":\"/home/jiminny/app/Services/Crm/BaseService.php\",\"line\":646} {\"correlation_id\":\"d3eddf1c-e7c3-4a37-8c9d-741e9d9b611c\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:31] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"4bbe835a-309f-49cd-9dd9-84b795bd13a0\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:31] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"4bbe835a-309f-49cd-9dd9-84b795bd13a0\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:31] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4bbe835a-309f-49cd-9dd9-84b795bd13a0\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:32] local.ALERT: [SyncActivity] Failed {\"import_id\":812733,\"provider\":\"xant\",\"provider_id\":161,\"team\":\"jiminny\",\"team_id\":1,\"reason\":\"Activity Provider account not connected.\",\"file\":\"/home/jiminny/app/Services/Activity/ActivityProviderService.php\",\"line\":174} {\"correlation_id\":\"4bbe835a-309f-49cd-9dd9-84b795bd13a0\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:32] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"97791348-5ca9-4fee-8a0e-42309c618500\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:32] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"97791348-5ca9-4fee-8a0e-42309c618500\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:32] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"97791348-5ca9-4fee-8a0e-42309c618500\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:33] local.ALERT: [SyncActivity] Failed {\"import_id\":812734,\"provider\":\"apollo\",\"provider_id\":441,\"team\":\"jiminny\",\"team_id\":1,\"reason\":\"Activity Provider account not connected.\",\"file\":\"/home/jiminny/app/Services/Activity/ActivityProviderService.php\",\"line\":174} {\"correlation_id\":\"97791348-5ca9-4fee-8a0e-42309c618500\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:33] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"891c0cd1-fda8-437a-8133-6f4f122e620c\",\"trace_id\":\"e4667153-9e43-4e19-8d29-6b6ce1b073cc\"}\n[2026-05-11 12:32:33] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"94718586-62f4-4d12-a771-73fcfadc2ac9\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:33] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"94718586-62f4-4d12-a771-73fcfadc2ac9\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:33] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"94718586-62f4-4d12-a771-73fcfadc2ac9\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:34] local.ALERT: [SyncActivity] Failed {\"import_id\":812735,\"provider\":\"groove\",\"provider_id\":228,\"team\":\"jiminny\",\"team_id\":1,\"reason\":\"Activity Provider account not connected.\",\"file\":\"/home/jiminny/app/Services/Activity/ActivityProviderService.php\",\"line\":174} {\"correlation_id\":\"94718586-62f4-4d12-a771-73fcfadc2ac9\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:34] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"3b41bcb3-9cbc-4e88-a62a-7d71c97cae6e\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:34] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"3b41bcb3-9cbc-4e88-a62a-7d71c97cae6e\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:34] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"3b41bcb3-9cbc-4e88-a62a-7d71c97cae6e\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:35] local.ALERT: [SyncActivity] Failed {\"import_id\":812736,\"provider\":\"twilio-video\",\"provider_id\":243,\"team\":\"jiminny\",\"team_id\":1,\"reason\":\"Activity Provider account not connected.\",\"file\":\"/home/jiminny/app/Services/Activity/ActivityProviderService.php\",\"line\":174} {\"correlation_id\":\"3b41bcb3-9cbc-4e88-a62a-7d71c97cae6e\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:35] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9a48dd15-c322-455a-a04e-2f42487973bf\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:35] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"9a48dd15-c322-455a-a04e-2f42487973bf\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:35] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9a48dd15-c322-455a-a04e-2f42487973bf\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:35] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":89,\"team_id\":2} {\"correlation_id\":\"9a48dd15-c322-455a-a04e-2f42487973bf\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:35] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":408,\"provider\":\"hubspot\"} {\"correlation_id\":\"9a48dd15-c322-455a-a04e-2f42487973bf\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:35] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":408,\"provider\":\"hubspot\"} {\"correlation_id\":\"9a48dd15-c322-455a-a04e-2f42487973bf\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:35] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"9a48dd15-c322-455a-a04e-2f42487973bf\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:35] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":408,\"provider\":\"hubspot\",\"refreshToken\":\"de4e47eb985578f4218833e763e31059e88b562e87e10749b3389be2328f0aa7\",\"state\":\"connected\"} {\"correlation_id\":\"9a48dd15-c322-455a-a04e-2f42487973bf\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:36] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"9a48dd15-c322-455a-a04e-2f42487973bf\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:36] local.INFO: [SocialAccountObserver] Access token was modified, encrypting {\"correlation_id\":\"9a48dd15-c322-455a-a04e-2f42487973bf\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:37] local.INFO: [SocialAccountService] Token refreshed {\"socialAccountId\":408,\"provider\":\"hubspot\",\"state\":\"connected\"} {\"correlation_id\":\"9a48dd15-c322-455a-a04e-2f42487973bf\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:37] local.INFO: [SyncActivity] Start {\"import_id\":812737,\"provider\":\"hubspot\",\"provider_id\":31,\"team\":\"hubspot\",\"team_id\":2} {\"correlation_id\":\"9a48dd15-c322-455a-a04e-2f42487973bf\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:37] local.INFO: [HubSpot] Search calls for period {\"from\":\"2026-05-11 12:14:00\",\"to\":\"2026-05-11 12:30:00\"} {\"correlation_id\":\"9a48dd15-c322-455a-a04e-2f42487973bf\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:37] local.INFO: [SyncActivity] End {\"import_id\":812737,\"provider\":\"hubspot\",\"provider_id\":31,\"team\":\"hubspot\",\"team_id\":2} {\"correlation_id\":\"9a48dd15-c322-455a-a04e-2f42487973bf\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:37] local.INFO: [SyncActivity] Memory usage {\"import_id\":812737,\"provider\":\"hubspot\",\"provider_id\":31,\"team\":\"hubspot\",\"team_id\":2,\"memory_usage\":31500864,\"memory_real_usage\":67108864,\"pid\":74086} {\"correlation_id\":\"9a48dd15-c322-455a-a04e-2f42487973bf\",\"trace_id\":\"94fb9f98-6dc0-495c-8825-9f7e4b245622\"}\n[2026-05-11 12:32:39] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:fail-stalled\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"18a5b33d-7fbd-4273-ab6f-53e34a64dfe1\",\"trace_id\":\"ccb4243b-c27c-4508-918b-1edd5b78413f\"}\n[2026-05-11 12:32:39] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:fail-stalled\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"18a5b33d-7fbd-4273-ab6f-53e34a64dfe1\",\"trace_id\":\"ccb4243b-c27c-4508-918b-1edd5b78413f\"}\n[2026-05-11 12:32:44] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"0ca7fd71-e785-4f1d-b854-318633e08087\",\"trace_id\":\"463332b2-ff0a-49ac-a319-0e79465965ec\"}\n[2026-05-11 12:32:44] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"0ca7fd71-e785-4f1d-b854-318633e08087\",\"trace_id\":\"463332b2-ff0a-49ac-a319-0e79465965ec\"}\n[2026-05-11 12:33:00] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"nudges:send\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"07663edc-3b6c-4685-b4c5-e7e258f0d54e\",\"trace_id\":\"52374c38-fd00-421f-81e1-117e6dc0aa84\"}\n[2026-05-11 12:33:00] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"nudges:send\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"07663edc-3b6c-4685-b4c5-e7e258f0d54e\",\"trace_id\":\"52374c38-fd00-421f-81e1-117e6dc0aa84\"}\n[2026-05-11 12:33:03] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"891c0cd1-fda8-437a-8133-6f4f122e620c\",\"trace_id\":\"e4667153-9e43-4e19-8d29-6b6ce1b073cc\"}\n[2026-05-11 12:33:03] local.WARNING: [HubSpot Journal Polling] Maximum empty results reached, stopping {\"empty_results\":5,\"max_empty_results\":5} {\"correlation_id\":\"891c0cd1-fda8-437a-8133-6f4f122e620c\",\"trace_id\":\"e4667153-9e43-4e19-8d29-6b6ce1b073cc\"}\n[2026-05-11 12:33:03] local.WARNING: [HubSpot Journal Polling] Maximum empty results reached, stopping {\"empty_results\":5,\"max_empty_results\":5} {\"correlation_id\":\"891c0cd1-fda8-437a-8133-6f4f122e620c\",\"trace_id\":\"e4667153-9e43-4e19-8d29-6b6ce1b073cc\"}\n[2026-05-11 12:33:03] local.INFO: [HubSpot Journal Polling] Service ending {\"runtime_seconds\":57,\"total_cycles\":5,\"files_downloaded\":0,\"empty_files\":0,\"other_portal_skipped\":0,\"total_events\":0,\"events_per_file\":0,\"avg_api_ms\":245.2,\"avg_download_ms\":0.0,\"avg_transform_ms\":0.0,\"avg_process_ms\":0.0,\"peak_memory_mb\":99.73} {\"correlation_id\":\"891c0cd1-fda8-437a-8133-6f4f122e620c\",\"trace_id\":\"e4667153-9e43-4e19-8d29-6b6ce1b073cc\"}\n[2026-05-11 12:33:03] local.INFO: [HubSpot Journal Polling] Saved offset to database on cleanup {\"offset\":\"019e15a9-9ea0-7da7-87bc-82592e3ccf0d\"} {\"correlation_id\":\"891c0cd1-fda8-437a-8133-6f4f122e620c\",\"trace_id\":\"e4667153-9e43-4e19-8d29-6b6ce1b073cc\"}\n[2026-05-11 12:33:03] local.INFO: [HubSpot Journal Polling] Released polling lock {\"correlation_id\":\"891c0cd1-fda8-437a-8133-6f4f122e620c\",\"trace_id\":\"e4667153-9e43-4e19-8d29-6b6ce1b073cc\"}\n[2026-05-11 12:33:11] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"jiminny:playlists:normalize-sort\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"fd26f20d-c9ec-485b-9120-18c2ccbb0033\",\"trace_id\":\"4d131815-76b8-4380-a293-5f2c25119d6c\"}\n[2026-05-11 12:33:11] local.INFO: [Jiminny\\Component\\Playlist\\Command\\NormalizeSortCommand::handle] starting. {\"playlists\":[]} {\"correlation_id\":\"fd26f20d-c9ec-485b-9120-18c2ccbb0033\",\"trace_id\":\"4d131815-76b8-4380-a293-5f2c25119d6c\"}\n[2026-05-11 12:33:11] local.INFO: [Jiminny\\Component\\Playlist\\Command\\NormalizeSortCommand::handle] finished. {\"normalizedPlaylists\":[],\"deletedPlaylists\":[]} {\"correlation_id\":\"fd26f20d-c9ec-485b-9120-18c2ccbb0033\",\"trace_id\":\"4d131815-76b8-4380-a293-5f2c25119d6c\"}\n[2026-05-11 12:33:11] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"jiminny:playlists:normalize-sort\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"fd26f20d-c9ec-485b-9120-18c2ccbb0033\",\"trace_id\":\"4d131815-76b8-4380-a293-5f2c25119d6c\"}\n[2026-05-11 12:34:24] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"1a37ca40-c796-4ba9-986a-536f03879e84\",\"trace_id\":\"6e72aaa4-d5f2-475b-8e3c-e9839eac1698\"}\n[2026-05-11 12:34:24] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"1a37ca40-c796-4ba9-986a-536f03879e84\",\"trace_id\":\"6e72aaa4-d5f2-475b-8e3c-e9839eac1698\"}\n[2026-05-11 12:34:24] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"1a37ca40-c796-4ba9-986a-536f03879e84\",\"trace_id\":\"6e72aaa4-d5f2-475b-8e3c-e9839eac1698\"}\n[2026-05-11 12:34:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"9902b198-86aa-4f70-ae9d-a01269d3b03d\",\"trace_id\":\"f1ea7f94-b138-4b3c-83d0-bbb065c03a87\"}\n[2026-05-11 12:34:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"9902b198-86aa-4f70-ae9d-a01269d3b03d\",\"trace_id\":\"f1ea7f94-b138-4b3c-83d0-bbb065c03a87\"}\n[2026-05-11 12:34:47] local.NOTICE: Monitoring start {\"correlation_id\":\"33db6469-f45f-4a48-a561-c73f14262299\",\"trace_id\":\"4eea9fc9-0336-4f83-9828-4892e3f5e922\"}\n[2026-05-11 12:34:47] local.NOTICE: Monitoring end {\"correlation_id\":\"33db6469-f45f-4a48-a561-c73f14262299\",\"trace_id\":\"4eea9fc9-0336-4f83-9828-4892e3f5e922\"}\n[2026-05-11 12:34:52] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"d93099e1-8d05-4426-b427-9cc28bdc72b7\",\"trace_id\":\"ce9859f2-4170-4369-86af-f329ca48394e\"}\n[2026-05-11 12:34:52] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"d93099e1-8d05-4426-b427-9cc28bdc72b7\",\"trace_id\":\"ce9859f2-4170-4369-86af-f329ca48394e\"}\n[2026-05-11 12:34:58] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"3a9ab0d0-6d90-47a4-9b55-095dfdd42165\",\"trace_id\":\"849b2c7f-1134-44d0-934e-80af02cb8b95\"}\n[2026-05-11 12:34:58] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"3a9ab0d0-6d90-47a4-9b55-095dfdd42165\",\"trace_id\":\"849b2c7f-1134-44d0-934e-80af02cb8b95\"}\n[2026-05-11 12:34:58] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"3a9ab0d0-6d90-47a4-9b55-095dfdd42165\",\"trace_id\":\"849b2c7f-1134-44d0-934e-80af02cb8b95\"}\n[2026-05-11 12:34:58] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"3a9ab0d0-6d90-47a4-9b55-095dfdd42165\",\"trace_id\":\"849b2c7f-1134-44d0-934e-80af02cb8b95\"}\n[2026-05-11 12:35:07] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a7276e28-a926-4f77-9313-aea75601a00a\",\"trace_id\":\"4e486077-60eb-4ef8-999d-c8b5112a3f26\"}\n[2026-05-11 12:35:07] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 12:33:00, 2026-05-11 12:35:00] {\"correlation_id\":\"a7276e28-a926-4f77-9313-aea75601a00a\",\"trace_id\":\"4e486077-60eb-4ef8-999d-c8b5112a3f26\"}\n[2026-05-11 12:35:07] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 12:33:00, 2026-05-11 12:35:00] {\"correlation_id\":\"a7276e28-a926-4f77-9313-aea75601a00a\",\"trace_id\":\"4e486077-60eb-4ef8-999d-c8b5112a3f26\"}\n[2026-05-11 12:35:07] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a7276e28-a926-4f77-9313-aea75601a00a\",\"trace_id\":\"4e486077-60eb-4ef8-999d-c8b5112a3f26\"}\n[2026-05-11 12:37:05] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"ccbed33f-6c65-499b-877f-1c3ffcaf9125\",\"trace_id\":\"0ed97705-9243-4f61-ac6c-78244196d884\"}\n[2026-05-11 12:37:06] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"ccbed33f-6c65-499b-877f-1c3ffcaf9125\",\"trace_id\":\"0ed97705-9243-4f61-ac6c-78244196d884\"}\n[2026-05-11 12:37:06] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"ccbed33f-6c65-499b-877f-1c3ffcaf9125\",\"trace_id\":\"0ed97705-9243-4f61-ac6c-78244196d884\"}\n[2026-05-11 12:37:39] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"087bfd2e-f67d-4fe0-8d90-4b24447245c3\",\"trace_id\":\"4a1673b2-a879-4b5b-a608-e5bab737f2a9\"}\n[2026-05-11 12:37:39] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"087bfd2e-f67d-4fe0-8d90-4b24447245c3\",\"trace_id\":\"4a1673b2-a879-4b5b-a608-e5bab737f2a9\"}\n[2026-05-11 12:38:24] local.NOTICE: Monitoring start {\"correlation_id\":\"64a64f0f-0d93-4e19-8938-6c01989528eb\",\"trace_id\":\"af18aeb7-3cca-45a2-be17-14b52a9503be\"}\n[2026-05-11 12:38:24] local.NOTICE: Monitoring end {\"correlation_id\":\"64a64f0f-0d93-4e19-8938-6c01989528eb\",\"trace_id\":\"af18aeb7-3cca-45a2-be17-14b52a9503be\"}\n[2026-05-11 12:38:33] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"2bd8991a-3ad2-446b-b56b-c4a5999f8c35\",\"trace_id\":\"4e72708d-2295-49d8-9050-2743b8fd8d9a\"}\n[2026-05-11 12:38:33] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"2bd8991a-3ad2-446b-b56b-c4a5999f8c35\",\"trace_id\":\"4e72708d-2295-49d8-9050-2743b8fd8d9a\"}\n[2026-05-11 12:38:40] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"1a24375a-e37c-4053-a723-0bd64ccf011f\",\"trace_id\":\"30216504-d807-4ec6-a089-f4d284411775\"}\n[2026-05-11 12:38:40] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"1a24375a-e37c-4053-a723-0bd64ccf011f\",\"trace_id\":\"30216504-d807-4ec6-a089-f4d284411775\"}\n[2026-05-11 12:38:40] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"1a24375a-e37c-4053-a723-0bd64ccf011f\",\"trace_id\":\"30216504-d807-4ec6-a089-f4d284411775\"}\n[2026-05-11 12:38:40] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"1a24375a-e37c-4053-a723-0bd64ccf011f\",\"trace_id\":\"30216504-d807-4ec6-a089-f4d284411775\"}\n[2026-05-11 12:38:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"604bc7af-c378-4421-bc5e-c0668d9d6d6c\",\"trace_id\":\"6d2a6c7b-a755-4129-a72c-ccb293543d5d\"}\n[2026-05-11 12:38:48] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 12:36:00, 2026-05-11 12:38:00] {\"correlation_id\":\"604bc7af-c378-4421-bc5e-c0668d9d6d6c\",\"trace_id\":\"6d2a6c7b-a755-4129-a72c-ccb293543d5d\"}\n[2026-05-11 12:38:49] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 12:36:00, 2026-05-11 12:38:00] {\"correlation_id\":\"604bc7af-c378-4421-bc5e-c0668d9d6d6c\",\"trace_id\":\"6d2a6c7b-a755-4129-a72c-ccb293543d5d\"}\n[2026-05-11 12:38:49] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"604bc7af-c378-4421-bc5e-c0668d9d6d6c\",\"trace_id\":\"6d2a6c7b-a755-4129-a72c-ccb293543d5d\"}\n[2026-05-11 12:38:55] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:sync-hubspot-objects\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"c6532af4-ea0b-4f8c-8c94-f07b4d966cc4\",\"trace_id\":\"1bcd1e37-eb5a-43ab-9cdb-4cba98a9403b\"}\n[2026-05-11 12:38:56] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:sync-hubspot-objects\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"c6532af4-ea0b-4f8c-8c94-f07b4d966cc4\",\"trace_id\":\"1bcd1e37-eb5a-43ab-9cdb-4cba98a9403b\"}\n[2026-05-11 12:38:56] local.INFO: [SyncHubspotObjects] Starting sync {\"team\":\"b2b115eb-93ce-4d1b-929c-173757df8fba\",\"usage\":23814760,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"3cc31fdc-6571-4644-909a-07234d7305d3\",\"trace_id\":\"1bcd1e37-eb5a-43ab-9cdb-4cba98a9403b\"}\n[2026-05-11 12:38:57] local.WARNING: [HubSpot] Account not connected for user {\"userId\":\"33e34a7a-1c02-4f04-87ac-22c3a385e6e3\",\"account\":{\"Jiminny\\\\Models\\\\SocialAccount\":{\"id\":306,\"sociable_id\":109,\"provider_user_id\":\"11348452\",\"expires\":1701077403,\"refresh_token_expires\":null,\"provider\":\"hubspot\",\"state\":\"full-refresh\",\"auth_scope\":null,\"retry_after\":null,\"created_at\":\"2020-09-01 16:59:04\",\"updated_at\":\"2023-11-27 09:30:03\"}}} {\"correlation_id\":\"3cc31fdc-6571-4644-909a-07234d7305d3\",\"trace_id\":\"1bcd1e37-eb5a-43ab-9cdb-4cba98a9403b\"}\n[2026-05-11 12:38:57] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"hubspot\",\"crm_owner\":109,\"team_id\":29} {\"correlation_id\":\"3cc31fdc-6571-4644-909a-07234d7305d3\",\"trace_id\":\"1bcd1e37-eb5a-43ab-9cdb-4cba98a9403b\"}\n[2026-05-11 12:38:57] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":29} {\"correlation_id\":\"3cc31fdc-6571-4644-909a-07234d7305d3\",\"trace_id\":\"1bcd1e37-eb5a-43ab-9cdb-4cba98a9403b\"}\n[2026-05-11 12:38:57] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":29} {\"correlation_id\":\"3cc31fdc-6571-4644-909a-07234d7305d3\",\"trace_id\":\"1bcd1e37-eb5a-43ab-9cdb-4cba98a9403b\"}\n[2026-05-11 12:38:57] local.INFO: [SyncHubspotObjects] Sync finished {\"team\":\"b2b115eb-93ce-4d1b-929c-173757df8fba\",\"provider\":\"hubspot\",\"status\":\"disconnected\",\"duration_ms\":391.5,\"usage\":23880424,\"real_usage\":62914560,\"pid\":74083,\"reason\":\"Your HubSpot account has become disconnected. Please login to Jiminny to reconnect.\"} {\"correlation_id\":\"3cc31fdc-6571-4644-909a-07234d7305d3\",\"trace_id\":\"1bcd1e37-eb5a-43ab-9cdb-4cba98a9403b\"}\n[2026-05-11 12:38:57] local.INFO: [SyncHubspotObjects] Starting sync {\"team\":\"abae74b8-bfa8-4383-9a7f-89f4bf2bdbb4\",\"usage\":23838640,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"33420e82-f413-4b5b-90b5-b41cc8824b5c\",\"trace_id\":\"1bcd1e37-eb5a-43ab-9cdb-4cba98a9403b\"}\n[2026-05-11 12:38:57] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"33420e82-f413-4b5b-90b5-b41cc8824b5c\",\"trace_id\":\"1bcd1e37-eb5a-43ab-9cdb-4cba98a9403b\"}\n[2026-05-11 12:38:57] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"33420e82-f413-4b5b-90b5-b41cc8824b5c\",\"trace_id\":\"1bcd1e37-eb5a-43ab-9cdb-4cba98a9403b\"}\n[2026-05-11 12:38:57] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"33420e82-f413-4b5b-90b5-b41cc8824b5c\",\"trace_id\":\"1bcd1e37-eb5a-43ab-9cdb-4cba98a9403b\"}\n[2026-05-11 12:38:57] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"33420e82-f413-4b5b-90b5-b41cc8824b5c\",\"trace_id\":\"1bcd1e37-eb5a-43ab-9cdb-4cba98a9403b\"}\n[2026-05-11 12:38:57] local.INFO: [HubSpot] Syncing opportunities using strategy: lastModified {\"team\":2} {\"correlation_id\":\"33420e82-f413-4b5b-90b5-b41cc8824b5c\",\"trace_id\":\"1bcd1e37-eb5a-43ab-9cdb-4cba98a9403b\"}\n[2026-05-11 12:38:57] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.49,\"average_seconds_per_request\":0.49} {\"correlation_id\":\"33420e82-f413-4b5b-90b5-b41cc8824b5c\",\"trace_id\":\"1bcd1e37-eb5a-43ab-9cdb-4cba98a9403b\"}\n[2026-05-11 12:38:57] local.INFO: [HubSpot] Synced opportunities {\"team\":2,\"strategies\":\"lastModified\",\"sync_count\":0,\"total\":0,\"last_synced_id\":null,\"duration_ms\":529.72} {\"correlation_id\":\"33420e82-f413-4b5b-90b5-b41cc8824b5c\",\"trace_id\":\"1bcd1e37-eb5a-43ab-9cdb-4cba98a9403b\"}\n[2026-05-11 12:38:58] local.INFO: [SyncHubspotObjects] Sync finished {\"team\":\"abae74b8-bfa8-4383-9a7f-89f4bf2bdbb4\",\"provider\":\"hubspot\",\"status\":\"completed\",\"duration_ms\":685.14,\"usage\":23902992,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"33420e82-f413-4b5b-90b5-b41cc8824b5c\",\"trace_id\":\"1bcd1e37-eb5a-43ab-9cdb-4cba98a9403b\"}\n[2026-05-11 12:38:58] local.INFO: [SyncHubspotObjects] Starting sync {\"team\":\"b2d49a54-b645-4637-a7ae-a86cfce6e8e4\",\"usage\":23880920,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"aaf2ceb1-acaa-4329-b200-7cab2d3683ac\",\"trace_id\":\"1bcd1e37-eb5a-43ab-9cdb-4cba98a9403b\"}\n[2026-05-11 12:38:58] local.WARNING: [HubSpot] Account not connected for user {\"userId\":\"2ac0447f-3c8c-4ce0-baeb-b63ddb76fa9b\",\"account\":null} {\"correlation_id\":\"aaf2ceb1-acaa-4329-b200-7cab2d3683ac\",\"trace_id\":\"1bcd1e37-eb5a-43ab-9cdb-4cba98a9403b\"}\n[2026-05-11 12:38:58] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"hubspot\",\"crm_owner\":130,\"team_id\":42} {\"correlation_id\":\"aaf2ceb1-acaa-4329-b200-7cab2d3683ac\",\"trace_id\":\"1bcd1e37-eb5a-43ab-9cdb-4cba98a9403b\"}\n[2026-05-11 12:38:58] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":42} {\"correlation_id\":\"aaf2ceb1-acaa-4329-b200-7cab2d3683ac\",\"trace_id\":\"1bcd1e37-eb5a-43ab-9cdb-4cba98a9403b\"}\n[2026-05-11 12:38:58] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":42} {\"correlation_id\":\"aaf2ceb1-acaa-4329-b200-7cab2d3683ac\",\"trace_id\":\"1bcd1e37-eb5a-43ab-9cdb-4cba98a9403b\"}\n[2026-05-11 12:38:58] local.INFO: [SyncHubspotObjects] Sync finished {\"team\":\"b2d49a54-b645-4637-a7ae-a86cfce6e8e4\",\"provider\":\"hubspot\",\"status\":\"disconnected\",\"duration_ms\":74.3,\"usage\":23868928,\"real_usage\":62914560,\"pid\":74083,\"reason\":\"Social account for HubSpot cannot be found. Please login to Jiminny to connect.\"} {\"correlation_id\":\"aaf2ceb1-acaa-4329-b200-7cab2d3683ac\",\"trace_id\":\"1bcd1e37-eb5a-43ab-9cdb-4cba98a9403b\"}\n[2026-05-11 12:38:58] local.INFO: [SyncHubspotObjects] Starting sync {\"team\":\"c6b9d6b0-b48d-4832-a68c-a57d60651888\",\"usage\":23829608,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"75559c5b-c8f2-45f4-8f83-1f5203f559a9\",\"trace_id\":\"1bcd1e37-eb5a-43ab-9cdb-4cba98a9403b\"}\n[2026-05-11 12:38:58] local.WARNING: [HubSpot] Account not connected for user {\"userId\":\"71e3aac5-fb66-47c5-a236-2d051ae3e319\",\"account\":null} {\"correlation_id\":\"75559c5b-c8f2-45f4-8f83-1f5203f559a9\",\"trace_id\":\"1bcd1e37-eb5a-43ab-9cdb-4cba98a9403b\"}\n[2026-05-11 12:38:58] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"hubspot\",\"crm_owner\":256,\"team_id\":49} {\"correlation_id\":\"75559c5b-c8f2-45f4-8f83-1f5203f559a9\",\"trace_id\":\"1bcd1e37-eb5a-43ab-9cdb-4cba98a9403b\"}\n[2026-05-11 12:38:58] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":49} {\"correlation_id\":\"75559c5b-c8f2-45f4-8f83-1f5203f559a9\",\"trace_id\":\"1bcd1e37-eb5a-43ab-9cdb-4cba98a9403b\"}\n[2026-05-11 12:38:58] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":49} {\"correlation_id\":\"75559c5b-c8f2-45f4-8f83-1f5203f559a9\",\"trace_id\":\"1bcd1e37-eb5a-43ab-9cdb-4cba98a9403b\"}\n[2026-05-11 12:38:58] local.INFO: [SyncHubspotObjects] Sync finished {\"team\":\"c6b9d6b0-b48d-4832-a68c-a57d60651888\",\"provider\":\"hubspot\",\"status\":\"disconnected\",\"duration_ms\":45.34,\"usage\":23865344,\"real_usage\":62914560,\"pid\":74083,\"reason\":\"Social account for HubSpot cannot be found. Please login to Jiminny to connect.\"} {\"correlation_id\":\"75559c5b-c8f2-45f4-8f83-1f5203f559a9\",\"trace_id\":\"1bcd1e37-eb5a-43ab-9cdb-4cba98a9403b\"}\n[2026-05-11 12:39:09] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:notify-not-logged\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"30381675-5d98-4d7b-b798-f2edf9afbfaf\",\"trace_id\":\"24e9369e-32c0-427c-b462-72bf3c6faf54\"}\n[2026-05-11 12:39:09] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:notify-not-logged\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"30381675-5d98-4d7b-b798-f2edf9afbfaf\",\"trace_id\":\"24e9369e-32c0-427c-b462-72bf3c6faf54\"}\n[2026-05-11 12:39:27] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"997774e7-4817-473d-b3fb-1671062fdf1a\",\"trace_id\":\"818ab337-f0a3-4711-89ca-79d4c0653e64\"}\n[2026-05-11 12:39:27] local.INFO: [EmailSchedule] STARTING Inbox Sync {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"997774e7-4817-473d-b3fb-1671062fdf1a\",\"trace_id\":\"818ab337-f0a3-4711-89ca-79d4c0653e64\"}\n[2026-05-11 12:39:27] local.INFO: [EmailSchedule] FINISHED Inbox Sync {\"host\":\"docker_lamp_1\",\"events\":2} {\"correlation_id\":\"997774e7-4817-473d-b3fb-1671062fdf1a\",\"trace_id\":\"818ab337-f0a3-4711-89ca-79d4c0653e64\"}\n[2026-05-11 12:39:27] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"997774e7-4817-473d-b3fb-1671062fdf1a\",\"trace_id\":\"818ab337-f0a3-4711-89ca-79d4c0653e64\"}\n[2026-05-11 12:39:28] local.INFO: [Sync Mailbox] Sync start {\"inbox_id\":59} {\"correlation_id\":\"e8b3a83f-2d68-4185-ae60-53f8584dbc9d\",\"trace_id\":\"818ab337-f0a3-4711-89ca-79d4c0653e64\"}\n[2026-05-11 12:39:29] local.INFO: [Inbox service] Skipping METADATA SYNC for inbox 59 due to unauthorized access to the mailbox {\"correlation_id\":\"e8b3a83f-2d68-4185-ae60-53f8584dbc9d\",\"trace_id\":\"818ab337-f0a3-4711-89ca-79d4c0653e64\"}\n[2026-05-11 12:39:29] local.INFO: [Sync Mailbox] Sync complete {\"inbox_id\":59} {\"correlation_id\":\"e8b3a83f-2d68-4185-ae60-53f8584dbc9d\",\"trace_id\":\"818ab337-f0a3-4711-89ca-79d4c0653e64\"}\n[2026-05-11 12:39:29] local.INFO: [Sync Mailbox] Sync start {\"inbox_id\":212} {\"correlation_id\":\"98e2a28a-a210-4af1-b21f-45d9a3a38fc2\",\"trace_id\":\"818ab337-f0a3-4711-89ca-79d4c0653e64\"}\n[2026-05-11 12:39:29] local.INFO: [Inbox service] Skipping METADATA SYNC for inbox 212 due to unauthorized access to the mailbox {\"correlation_id\":\"98e2a28a-a210-4af1-b21f-45d9a3a38fc2\",\"trace_id\":\"818ab337-f0a3-4711-89ca-79d4c0653e64\"}\n[2026-05-11 12:39:29] local.INFO: [Sync Mailbox] Sync complete {\"inbox_id\":212} {\"correlation_id\":\"98e2a28a-a210-4af1-b21f-45d9a3a38fc2\",\"trace_id\":\"818ab337-f0a3-4711-89ca-79d4c0653e64\"}\n[2026-05-11 12:40:10] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"178535e2-3fb1-48e2-a406-e6a1836afd92\",\"trace_id\":\"b8a746f5-7d99-45e7-98e0-bcd4e27c7ef0\"}\n[2026-05-11 12:40:10] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"178535e2-3fb1-48e2-a406-e6a1836afd92\",\"trace_id\":\"b8a746f5-7d99-45e7-98e0-bcd4e27c7ef0\"}\n[2026-05-11 12:40:10] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"178535e2-3fb1-48e2-a406-e6a1836afd92\",\"trace_id\":\"b8a746f5-7d99-45e7-98e0-bcd4e27c7ef0\"}\n[2026-05-11 12:40:14] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"947b3a04-5e22-42f3-8874-2129ed80fa76\",\"trace_id\":\"1e6a928f-bede-41b8-ac27-3a403fcf1f6a\"}\n[2026-05-11 12:40:14] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"947b3a04-5e22-42f3-8874-2129ed80fa76\",\"trace_id\":\"1e6a928f-bede-41b8-ac27-3a403fcf1f6a\"}\n[2026-05-11 12:40:25] local.NOTICE: Monitoring start {\"correlation_id\":\"3a656188-faff-47e3-be87-1ffd332c83e5\",\"trace_id\":\"c608c915-581f-4ea5-bbf9-8b17d4671ebd\"}\n[2026-05-11 12:40:25] local.NOTICE: Monitoring end {\"correlation_id\":\"3a656188-faff-47e3-be87-1ffd332c83e5\",\"trace_id\":\"c608c915-581f-4ea5-bbf9-8b17d4671ebd\"}\n[2026-05-11 12:40:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"d76be307-9368-407c-a917-f426edf01e0f\",\"trace_id\":\"27511389-4408-4972-afca-0505938cebe6\"}\n[2026-05-11 12:40:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"d76be307-9368-407c-a917-f426edf01e0f\",\"trace_id\":\"27511389-4408-4972-afca-0505938cebe6\"}\n[2026-05-11 12:40:40] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"13e920dc-6440-4557-9f0d-e8368201e1f1\",\"trace_id\":\"87a8e095-dbb1-49d2-af82-0dbdc9a37579\"}\n[2026-05-11 12:40:40] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"13e920dc-6440-4557-9f0d-e8368201e1f1\",\"trace_id\":\"87a8e095-dbb1-49d2-af82-0dbdc9a37579\"}\n[2026-05-11 12:40:40] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"13e920dc-6440-4557-9f0d-e8368201e1f1\",\"trace_id\":\"87a8e095-dbb1-49d2-af82-0dbdc9a37579\"}\n[2026-05-11 12:40:40] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"13e920dc-6440-4557-9f0d-e8368201e1f1\",\"trace_id\":\"87a8e095-dbb1-49d2-af82-0dbdc9a37579\"}\n[2026-05-11 12:40:45] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"65873038-c685-4dd4-b9c9-5344c94f9f06\",\"trace_id\":\"66b27095-c459-49a5-b17d-65d23500d470\"}\n[2026-05-11 12:40:45] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 12:38:00, 2026-05-11 12:40:00] {\"correlation_id\":\"65873038-c685-4dd4-b9c9-5344c94f9f06\",\"trace_id\":\"66b27095-c459-49a5-b17d-65d23500d470\"}\n[2026-05-11 12:40:45] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 12:38:00, 2026-05-11 12:40:00] {\"correlation_id\":\"65873038-c685-4dd4-b9c9-5344c94f9f06\",\"trace_id\":\"66b27095-c459-49a5-b17d-65d23500d470\"}\n[2026-05-11 12:40:45] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"65873038-c685-4dd4-b9c9-5344c94f9f06\",\"trace_id\":\"66b27095-c459-49a5-b17d-65d23500d470\"}\n[2026-05-11 12:40:54] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"08f1f348-abfe-428c-840c-649c28b23bd8\",\"trace_id\":\"8cfddb1f-38bf-4a2f-8b81-34971c5af503\"}\n[2026-05-11 12:40:54] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"08f1f348-abfe-428c-840c-649c28b23bd8\",\"trace_id\":\"8cfddb1f-38bf-4a2f-8b81-34971c5af503\"}\n[2026-05-11 12:40:59] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"d9d9b6e5-f954-48fa-b5a4-ce4d209262e6\",\"trace_id\":\"730a7bbb-1883-4090-bfb8-5122e4ef8fa0\"}\n[2026-05-11 12:41:00] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"d9d9b6e5-f954-48fa-b5a4-ce4d209262e6\",\"trace_id\":\"730a7bbb-1883-4090-bfb8-5122e4ef8fa0\"}\n[2026-05-11 12:41:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"6d04d263-358d-4d5a-a5cd-6dd953e84e04\",\"trace_id\":\"7889282e-984a-45b6-b43c-3e5f30ce66e4\"}\n[2026-05-11 12:41:12] local.INFO: Running pre-meeting notification command {\"correlation_id\":\"6d04d263-358d-4d5a-a5cd-6dd953e84e04\",\"trace_id\":\"7889282e-984a-45b6-b43c-3e5f30ce66e4\"}\n[2026-05-11 12:41:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"6d04d263-358d-4d5a-a5cd-6dd953e84e04\",\"trace_id\":\"7889282e-984a-45b6-b43c-3e5f30ce66e4\"}\n[2026-05-11 12:41:19] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"5bcf1aeb-c490-4189-b9db-bb26fb564b8f\",\"trace_id\":\"85346e80-142b-463d-8cb8-66be8639f23b\"}\n[2026-05-11 12:41:19] local.INFO: Running conference:monitor:start command for activities in (2026-05-11 12:31:00, 2026-05-11 12:36:00] {\"correlation_id\":\"5bcf1aeb-c490-4189-b9db-bb26fb564b8f\",\"trace_id\":\"85346e80-142b-463d-8cb8-66be8639f23b\"}\n[2026-05-11 12:41:20] local.INFO: [conference:monitor:start] No activities found in (2026-05-11 12:31:00, 2026-05-11 12:36:00] {\"correlation_id\":\"5bcf1aeb-c490-4189-b9db-bb26fb564b8f\",\"trace_id\":\"85346e80-142b-463d-8cb8-66be8639f23b\"}\n[2026-05-11 12:41:20] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"5bcf1aeb-c490-4189-b9db-bb26fb564b8f\",\"trace_id\":\"85346e80-142b-463d-8cb8-66be8639f23b\"}\n[2026-05-11 12:41:23] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"47f80320-35e8-45ae-864b-e07c0cc5d5b1\",\"trace_id\":\"b5e25b03-ad40-4cba-a3f0-c2595473a2f8\"}\n[2026-05-11 12:41:23] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesEnded {\"from\":\"12:36\",\"to\":\"12:41\"} {\"correlation_id\":\"47f80320-35e8-45ae-864b-e07c0cc5d5b1\",\"trace_id\":\"b5e25b03-ad40-4cba-a3f0-c2595473a2f8\"}\n[2026-05-11 12:41:23] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesWithUnfinishedSession {\"from\":\"02:31\",\"to\":\"02:36\"} {\"correlation_id\":\"47f80320-35e8-45ae-864b-e07c0cc5d5b1\",\"trace_id\":\"b5e25b03-ad40-4cba-a3f0-c2595473a2f8\"}\n[2026-05-11 12:41:23] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"47f80320-35e8-45ae-864b-e07c0cc5d5b1\",\"trace_id\":\"b5e25b03-ad40-4cba-a3f0-c2595473a2f8\"}\n[2026-05-11 12:41:28] local.NOTICE: Repairing HubSpot tokens start {\"correlation_id\":\"7d44ec0e-0956-4f28-beb7-ab1392d192cc\",\"trace_id\":\"0d5eb2aa-44c0-4a0a-bc11-c372f863d289\"}\n[2026-05-11 12:41:29] local.INFO: Trying to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\"} {\"correlation_id\":\"7d44ec0e-0956-4f28-beb7-ab1392d192cc\",\"trace_id\":\"0d5eb2aa-44c0-4a0a-bc11-c372f863d289\"}\n[2026-05-11 12:41:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7d44ec0e-0956-4f28-beb7-ab1392d192cc\",\"trace_id\":\"0d5eb2aa-44c0-4a0a-bc11-c372f863d289\"}\n[2026-05-11 12:41:29] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":59,\"provider\":\"hubspot\",\"refreshToken\":\"97b78f6e2cc49965c00c2492b602b02708b1392551e6b3f113fbaa48992af90b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"7d44ec0e-0956-4f28-beb7-ab1392d192cc\",\"trace_id\":\"0d5eb2aa-44c0-4a0a-bc11-c372f863d289\"}\n[2026-05-11 12:41:29] local.ERROR: Failed to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"7d44ec0e-0956-4f28-beb7-ab1392d192cc\",\"trace_id\":\"0d5eb2aa-44c0-4a0a-bc11-c372f863d289\"}\n[2026-05-11 12:41:29] local.INFO: Trying to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\"} {\"correlation_id\":\"7d44ec0e-0956-4f28-beb7-ab1392d192cc\",\"trace_id\":\"0d5eb2aa-44c0-4a0a-bc11-c372f863d289\"}\n[2026-05-11 12:41:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7d44ec0e-0956-4f28-beb7-ab1392d192cc\",\"trace_id\":\"0d5eb2aa-44c0-4a0a-bc11-c372f863d289\"}\n[2026-05-11 12:41:29] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":306,\"provider\":\"hubspot\",\"refreshToken\":\"6fa6aa8cc641d131231acc3470f5c03cb3b07b2e580fb18f8acb3b1dbb72549b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"7d44ec0e-0956-4f28-beb7-ab1392d192cc\",\"trace_id\":\"0d5eb2aa-44c0-4a0a-bc11-c372f863d289\"}\n[2026-05-11 12:41:29] local.ERROR: Failed to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"7d44ec0e-0956-4f28-beb7-ab1392d192cc\",\"trace_id\":\"0d5eb2aa-44c0-4a0a-bc11-c372f863d289\"}\n[2026-05-11 12:41:29] local.INFO: Trying to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\"} {\"correlation_id\":\"7d44ec0e-0956-4f28-beb7-ab1392d192cc\",\"trace_id\":\"0d5eb2aa-44c0-4a0a-bc11-c372f863d289\"}\n[2026-05-11 12:41:29] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7d44ec0e-0956-4f28-beb7-ab1392d192cc\",\"trace_id\":\"0d5eb2aa-44c0-4a0a-bc11-c372f863d289\"}\n[2026-05-11 12:41:29] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1372,\"provider\":\"hubspot\",\"refreshToken\":\"9aa73948c761da29dce46c177cf9aee1fde483a44169ca38723f9f0597d7a8c4\",\"state\":\"full-refresh\"} {\"correlation_id\":\"7d44ec0e-0956-4f28-beb7-ab1392d192cc\",\"trace_id\":\"0d5eb2aa-44c0-4a0a-bc11-c372f863d289\"}\n[2026-05-11 12:41:30] local.ERROR: Failed to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"7d44ec0e-0956-4f28-beb7-ab1392d192cc\",\"trace_id\":\"0d5eb2aa-44c0-4a0a-bc11-c372f863d289\"}\n[2026-05-11 12:41:30] local.NOTICE: Repairing HubSpot tokens end {\"total\":3,\"fixed\":0,\"failed\":3} {\"correlation_id\":\"7d44ec0e-0956-4f28-beb7-ab1392d192cc\",\"trace_id\":\"0d5eb2aa-44c0-4a0a-bc11-c372f863d289\"}\n[2026-05-11 12:41:36] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"e36f4a59-aacc-4f8c-bfd2-93e55c40d24c\",\"trace_id\":\"d38f7f47-4ca1-41ee-80a5-2b5071c36b98\"}\n[2026-05-11 12:41:36] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"jiminny:transcription:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"b969f192-f5ed-4908-a265-a6350e350269\",\"trace_id\":\"099229e6-e043-4a2d-8cdd-2cddcd144180\"}\n[2026-05-11 12:41:36] local.INFO: [HubSpot Journal Command] Starting polling service {\"correlation_id\":\"04f642bd-b7f8-4f02-8127-f974cfa14ae6\",\"trace_id\":\"c693ab56-5a85-48bd-bece-f723e6498a63\"}\n[2026-05-11 12:41:36] local.INFO: [HubSpot Journal Polling] Service starting {\"memory_limit\":\"256M\",\"max_execution_time\":\"0\",\"initial_memory_mb\":60.0} {\"correlation_id\":\"04f642bd-b7f8-4f02-8127-f974cfa14ae6\",\"trace_id\":\"c693ab56-5a85-48bd-bece-f723e6498a63\"}\n[2026-05-11 12:41:36] local.INFO: [HubSpot Journal Polling] Acquired polling lock {\"expires_at\":\"2026-05-11T12:43:36.539454Z\"} {\"correlation_id\":\"04f642bd-b7f8-4f02-8127-f974cfa14ae6\",\"trace_id\":\"c693ab56-5a85-48bd-bece-f723e6498a63\"}\n[2026-05-11 12:41:36] local.INFO: [HubSpot Journal Auth] Requesting new client credentials token {\"correlation_id\":\"04f642bd-b7f8-4f02-8127-f974cfa14ae6\",\"trace_id\":\"c693ab56-5a85-48bd-bece-f723e6498a63\"}\n[2026-05-11 12:41:36] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"jiminny:transcription:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"b969f192-f5ed-4908-a265-a6350e350269\",\"trace_id\":\"099229e6-e043-4a2d-8cdd-2cddcd144180\"}\n[2026-05-11 12:41:36] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"e36f4a59-aacc-4f8c-bfd2-93e55c40d24c\",\"trace_id\":\"d38f7f47-4ca1-41ee-80a5-2b5071c36b98\"}\n[2026-05-11 12:41:36] local.INFO: [HubSpot Journal Auth] Successfully obtained new access token {\"expires_in\":1800,\"cached_for\":1500} {\"correlation_id\":\"04f642bd-b7f8-4f02-8127-f974cfa14ae6\",\"trace_id\":\"c693ab56-5a85-48bd-bece-f723e6498a63\"}\n[2026-05-11 12:41:37] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"04f642bd-b7f8-4f02-8127-f974cfa14ae6\",\"trace_id\":\"c693ab56-5a85-48bd-bece-f723e6498a63\"}\n[2026-05-11 12:41:42] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"04f642bd-b7f8-4f02-8127-f974cfa14ae6\",\"trace_id\":\"c693ab56-5a85-48bd-bece-f723e6498a63\"}\n[2026-05-11 12:41:45] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:reset-governor\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"bf32e5d9-3c03-4709-bc7a-bf316a914f54\",\"trace_id\":\"17ab7907-4e16-4003-9562-f1ebdda4ae53\"}\n[2026-05-11 12:41:45] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:reset-governor\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"bf32e5d9-3c03-4709-bc7a-bf316a914f54\",\"trace_id\":\"17ab7907-4e16-4003-9562-f1ebdda4ae53\"}\n[2026-05-11 12:41:47] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"04f642bd-b7f8-4f02-8127-f974cfa14ae6\",\"trace_id\":\"c693ab56-5a85-48bd-bece-f723e6498a63\"}\n[2026-05-11 12:41:49] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"2bf31322-b08f-46b6-8cf4-92a1b75b11f7\",\"trace_id\":\"09692315-8f88-4a8f-9cf7-c2279a404eae\"}\n[2026-05-11 12:41:50] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"2bf31322-b08f-46b6-8cf4-92a1b75b11f7\",\"trace_id\":\"09692315-8f88-4a8f-9cf7-c2279a404eae\"}\n[2026-05-11 12:42:02] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"04f642bd-b7f8-4f02-8127-f974cfa14ae6\",\"trace_id\":\"c693ab56-5a85-48bd-bece-f723e6498a63\"}\n[2026-05-11 12:42:09] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"edf84a7a-443d-4891-80da-b558a62455ae\",\"trace_id\":\"f8ae161d-8ad3-4c3f-8dea-50135cbc60f2\"}\n[2026-05-11 12:42:10] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"edf84a7a-443d-4891-80da-b558a62455ae\",\"trace_id\":\"f8ae161d-8ad3-4c3f-8dea-50135cbc60f2\"}\n[2026-05-11 12:42:10] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"edf84a7a-443d-4891-80da-b558a62455ae\",\"trace_id\":\"f8ae161d-8ad3-4c3f-8dea-50135cbc60f2\"}\n[2026-05-11 12:42:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a9749844-3289-4b1b-a125-b09e8ee7ce28\",\"trace_id\":\"573f6160-ab50-4baf-b2c9-ca5c440caf4c\"}\n[2026-05-11 12:42:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a9749844-3289-4b1b-a125-b09e8ee7ce28\",\"trace_id\":\"573f6160-ab50-4baf-b2c9-ca5c440caf4c\"}\n[2026-05-11 12:42:15] local.NOTICE: Monitoring start {\"correlation_id\":\"0c7693d2-2be3-43d6-8f6c-f0c51bdf2f58\",\"trace_id\":\"a12e651f-e9f2-4269-89fa-9d702d1cccb4\"}\n[2026-05-11 12:42:15] local.NOTICE: Monitoring end {\"correlation_id\":\"0c7693d2-2be3-43d6-8f6c-f0c51bdf2f58\",\"trace_id\":\"a12e651f-e9f2-4269-89fa-9d702d1cccb4\"}\n[2026-05-11 12:42:24] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"8f1583bd-f995-4d23-9fe3-4f8db0073e30\",\"trace_id\":\"4e819c0c-86a2-44c1-9ca7-2766afd1d5dd\"}\n[2026-05-11 12:42:24] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"8f1583bd-f995-4d23-9fe3-4f8db0073e30\",\"trace_id\":\"4e819c0c-86a2-44c1-9ca7-2766afd1d5dd\"}\n[2026-05-11 12:42:28] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"33f8ab45-15ea-4b7f-9ad1-01df559b343d\",\"trace_id\":\"c08c5399-b750-4cb5-ba0c-32a1921f22cd\"}\n[2026-05-11 12:42:28] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"33f8ab45-15ea-4b7f-9ad1-01df559b343d\",\"trace_id\":\"c08c5399-b750-4cb5-ba0c-32a1921f22cd\"}\n[2026-05-11 12:42:28] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"33f8ab45-15ea-4b7f-9ad1-01df559b343d\",\"trace_id\":\"c08c5399-b750-4cb5-ba0c-32a1921f22cd\"}\n[2026-05-11 12:42:28] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"33f8ab45-15ea-4b7f-9ad1-01df559b343d\",\"trace_id\":\"c08c5399-b750-4cb5-ba0c-32a1921f22cd\"}\n[2026-05-11 12:42:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"c8d3a419-78c3-484e-8645-bbd58027f19a\",\"trace_id\":\"eca26feb-7f81-4eb3-8b53-7b4ed30f5da7\"}\n[2026-05-11 12:42:31] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 12:40:00, 2026-05-11 12:42:00] {\"correlation_id\":\"c8d3a419-78c3-484e-8645-bbd58027f19a\",\"trace_id\":\"eca26feb-7f81-4eb3-8b53-7b4ed30f5da7\"}\n[2026-05-11 12:42:31] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 12:40:00, 2026-05-11 12:42:00] {\"correlation_id\":\"c8d3a419-78c3-484e-8645-bbd58027f19a\",\"trace_id\":\"eca26feb-7f81-4eb3-8b53-7b4ed30f5da7\"}\n[2026-05-11 12:42:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"c8d3a419-78c3-484e-8645-bbd58027f19a\",\"trace_id\":\"eca26feb-7f81-4eb3-8b53-7b4ed30f5da7\"}\n[2026-05-11 12:42:33] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"04f642bd-b7f8-4f02-8127-f974cfa14ae6\",\"trace_id\":\"c693ab56-5a85-48bd-bece-f723e6498a63\"}\n[2026-05-11 12:42:33] local.WARNING: [HubSpot Journal Polling] Maximum empty results reached, stopping {\"empty_results\":5,\"max_empty_results\":5} {\"correlation_id\":\"04f642bd-b7f8-4f02-8127-f974cfa14ae6\",\"trace_id\":\"c693ab56-5a85-48bd-bece-f723e6498a63\"}\n[2026-05-11 12:42:33] local.WARNING: [HubSpot Journal Polling] Maximum empty results reached, stopping {\"empty_results\":5,\"max_empty_results\":5} {\"correlation_id\":\"04f642bd-b7f8-4f02-8127-f974cfa14ae6\",\"trace_id\":\"c693ab56-5a85-48bd-bece-f723e6498a63\"}\n[2026-05-11 12:42:33] local.INFO: [HubSpot Journal Polling] Service ending {\"runtime_seconds\":57,\"total_cycles\":5,\"files_downloaded\":0,\"empty_files\":0,\"other_portal_skipped\":0,\"total_events\":0,\"events_per_file\":0,\"avg_api_ms\":271.6,\"avg_download_ms\":0.0,\"avg_transform_ms\":0.0,\"avg_process_ms\":0.0,\"peak_memory_mb\":99.73} {\"correlation_id\":\"04f642bd-b7f8-4f02-8127-f974cfa14ae6\",\"trace_id\":\"c693ab56-5a85-48bd-bece-f723e6498a63\"}\n[2026-05-11 12:42:33] local.INFO: [HubSpot Journal Polling] Saved offset to database on cleanup {\"offset\":\"019e15a9-9ea0-7da7-87bc-82592e3ccf0d\"} {\"correlation_id\":\"04f642bd-b7f8-4f02-8127-f974cfa14ae6\",\"trace_id\":\"c693ab56-5a85-48bd-bece-f723e6498a63\"}\n[2026-05-11 12:42:34] local.INFO: [HubSpot Journal Polling] Released polling lock {\"correlation_id\":\"04f642bd-b7f8-4f02-8127-f974cfa14ae6\",\"trace_id\":\"c693ab56-5a85-48bd-bece-f723e6498a63\"}\n[2026-05-11 12:42:44] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"b9253379-3254-4739-9b9f-0b9556302ad4\",\"trace_id\":\"cef517db-84be-4d7b-ad21-70945b37c05b\"}\n[2026-05-11 12:42:44] local.INFO: [EmailSchedule] STARTING batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"b9253379-3254-4739-9b9f-0b9556302ad4\",\"trace_id\":\"cef517db-84be-4d7b-ad21-70945b37c05b\"}\n[2026-05-11 12:42:44] local.INFO: [EmailSchedule] FINISHED batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"b9253379-3254-4739-9b9f-0b9556302ad4\",\"trace_id\":\"cef517db-84be-4d7b-ad21-70945b37c05b\"}\n[2026-05-11 12:42:44] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"b9253379-3254-4739-9b9f-0b9556302ad4\",\"trace_id\":\"cef517db-84be-4d7b-ad21-70945b37c05b\"}\n[2026-05-11 12:42:47] local.INFO: [Jiminny\\Jobs\\Mailbox\\CreateBatches] processed 2 inboxes and created 0 batches {\"userId\":null,\"batchSize\":30,\"maxBatches\":1000} {\"correlation_id\":\"6af0cc6e-d5cc-4ae8-b828-b5a8b502b389\",\"trace_id\":\"cef517db-84be-4d7b-ad21-70945b37c05b\"}\n[2026-05-11 12:43:10] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"c67aae80-ca55-4a7a-8384-9faf868cb136\",\"trace_id\":\"da880439-5556-4f37-9e22-25f92d188f30\"}\n[2026-05-11 12:43:10] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"c67aae80-ca55-4a7a-8384-9faf868cb136\",\"trace_id\":\"da880439-5556-4f37-9e22-25f92d188f30\"}\n[2026-05-11 12:43:10] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"c67aae80-ca55-4a7a-8384-9faf868cb136\",\"trace_id\":\"da880439-5556-4f37-9e22-25f92d188f30\"}\n[2026-05-11 12:43:13] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"186ffd96-525a-4575-a399-0f4d9085ddc3\",\"trace_id\":\"0b4502b2-ba6e-40e5-badb-3186b0b93ee4\"}\n[2026-05-11 12:43:14] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"186ffd96-525a-4575-a399-0f4d9085ddc3\",\"trace_id\":\"0b4502b2-ba6e-40e5-badb-3186b0b93ee4\"}\n[2026-05-11 12:43:23] local.NOTICE: Monitoring start {\"correlation_id\":\"4617b638-c01e-4a69-812e-98ddf9a69737\",\"trace_id\":\"77960c02-0e5a-4434-9fa1-b5b5da7add54\"}\n[2026-05-11 12:43:23] local.NOTICE: Monitoring end {\"correlation_id\":\"4617b638-c01e-4a69-812e-98ddf9a69737\",\"trace_id\":\"77960c02-0e5a-4434-9fa1-b5b5da7add54\"}\n[2026-05-11 12:43:29] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"7836dd33-459f-45c6-a580-d78cbfbfc418\",\"trace_id\":\"8f25dc99-3592-4e5c-8718-c05f6e5ad3b1\"}\n[2026-05-11 12:43:29] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"7836dd33-459f-45c6-a580-d78cbfbfc418\",\"trace_id\":\"8f25dc99-3592-4e5c-8718-c05f6e5ad3b1\"}\n[2026-05-11 12:43:32] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"24ce2536-3bc0-4ebb-a29e-f31ece105663\",\"trace_id\":\"9ceae23a-db8d-4ab9-9f87-fcb9d6a089a0\"}\n[2026-05-11 12:43:32] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"24ce2536-3bc0-4ebb-a29e-f31ece105663\",\"trace_id\":\"9ceae23a-db8d-4ab9-9f87-fcb9d6a089a0\"}\n[2026-05-11 12:43:32] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"24ce2536-3bc0-4ebb-a29e-f31ece105663\",\"trace_id\":\"9ceae23a-db8d-4ab9-9f87-fcb9d6a089a0\"}\n[2026-05-11 12:43:32] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"24ce2536-3bc0-4ebb-a29e-f31ece105663\",\"trace_id\":\"9ceae23a-db8d-4ab9-9f87-fcb9d6a089a0\"}\n[2026-05-11 12:43:43] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"calendar:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:43] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"33c92496-01c9-4dd1-b351-f10f84e3485d\",\"trace_id\":\"771d9995-14e2-4fe7-9229-92927a8a4597\"}\n[2026-05-11 12:43:43] local.NOTICE: Calendar sync start {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:43] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"33c92496-01c9-4dd1-b351-f10f84e3485d\",\"trace_id\":\"771d9995-14e2-4fe7-9229-92927a8a4597\"}\n[2026-05-11 12:43:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1393,\"provider\":\"google\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:43] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1393,\"provider\":\"google\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:43] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1393,\"provider\":\"google\",\"refreshToken\":\"5aa7e2d96b53201cd16fca5d2e4ef3ad03320971fc064781d18aee3ae7b99fbf\",\"state\":\"full-refresh\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:43] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1393,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Account has been deleted\"}} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:43] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:43] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1393,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1387,\"provider\":\"google\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:43] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1387,\"provider\":\"google\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:43] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1387,\"provider\":\"google\",\"refreshToken\":\"8157ac6de94842937194009e9c50e459253600f799dacf6a40755ffdbeb5bba6\",\"state\":\"full-refresh\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:43] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1387,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Account has been deleted\"}} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:43] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:43] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1387,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:43] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1348,\"provider\":\"google\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:43] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1348,\"provider\":\"google\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:43] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:43] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1348,\"provider\":\"google\",\"refreshToken\":\"9e7d13d3032d0cb1b79d8e95aef01383e8e91eb52ff8ee960c8a0b6b95cd8c73\",\"state\":\"full-refresh\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:43] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1348,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:43] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:44] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1348,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:44] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1361,\"provider\":\"google\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:44] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1361,\"provider\":\"google\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:44] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:44] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1361,\"provider\":\"google\",\"refreshToken\":\"6c843da199c2b9907445329304fcc4ec5057a4ee748d8299641764395c08e1fd\",\"state\":\"full-refresh\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:44] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1361,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Account has been deleted\"}} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:44] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:44] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1361,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:44] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1310,\"provider\":\"google\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:44] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1310,\"provider\":\"google\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:44] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:44] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1310,\"provider\":\"google\",\"refreshToken\":\"e34818922c2830a660813a63f6169a4a9a992ae2cccd7dc8dd7796cfdb470ef1\",\"state\":\"full-refresh\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:44] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1310,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:44] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:44] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1310,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:44] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1333,\"provider\":\"google\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:44] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1333,\"provider\":\"google\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:44] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:44] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1333,\"provider\":\"google\",\"refreshToken\":\"6c902986546d8e8da1dc539b046cdc1d458f519acc972e5b5f1d6a1a295165e0\",\"state\":\"full-refresh\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:44] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1333,\"provider\":\"google\",\"responseBody\":{\"error\":\"unauthorized_client\",\"error_description\":\"Unauthorized\"}} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:44] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:44] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1333,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:44] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1368,\"provider\":\"google\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:44] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1368,\"provider\":\"google\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:44] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:44] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1368,\"provider\":\"google\",\"refreshToken\":\"d2f128898ff8543bd16b69cfae37896ab85119b0f5ed2b431d739593bb600333\",\"state\":\"full-refresh\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:45] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1368,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:45] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:45] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1368,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1365,\"provider\":\"google\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:45] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1365,\"provider\":\"google\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:45] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1365,\"provider\":\"google\",\"refreshToken\":\"7676e4a9afcd082b413248ab5ec6e487021fec6a9bdf315860a59cefad9caad8\",\"state\":\"full-refresh\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:45] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1365,\"provider\":\"google\",\"responseBody\":{\"error\":\"unauthorized_client\",\"error_description\":\"Unauthorized\"}} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:45] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:45] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1365,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:45] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1364,\"provider\":\"google\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:45] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1364,\"provider\":\"google\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:45] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:45] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1364,\"provider\":\"google\",\"refreshToken\":\"dd5882ebce76e645292ce33ae74238abbb77c0a4ecc6a2bfe723cad82e72ba8e\",\"state\":\"full-refresh\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:46] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1364,\"provider\":\"google\",\"responseBody\":{\"error\":\"unauthorized_client\",\"error_description\":\"Unauthorized\"}} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:46] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:46] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1364,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1370,\"provider\":\"office\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:46] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1370,\"provider\":\"office\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:46] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1370,\"provider\":\"office\",\"refreshToken\":\"b7ee8035306d0043cea6e00e7c4fe14f745e44074a1194db62a31cdf8b70af3e\",\"state\":\"full-refresh\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:46] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1370,\"provider\":\"office\",\"responseBody\":\"{\\\"error\\\":\\\"invalid_client\\\",\\\"error_description\\\":\\\"AADSTS7000215: Invalid client secret provided. Ensure the secret being sent in the request is the client secret value, not the client secret ID, for a secret added to app 'bbcbb2ef-6200-4fae-82bd-d81f5dd738da'. Trace ID: 75cbe23e-e8aa-4dc2-a399-462ee4420200 Correlation ID: b4da2ce2-5084-4711-8a85-e0a84b213adf Timestamp: 2026-05-11 12:43:46Z\\\",\\\"error_codes\\\":[7000215],\\\"timestamp\\\":\\\"2026-05-11 12:43:46Z\\\",\\\"trace_id\\\":\\\"75cbe23e-e8aa-4dc2-a399-462ee4420200\\\",\\\"correlation_id\\\":\\\"b4da2ce2-5084-4711-8a85-e0a84b213adf\\\",\\\"error_uri\\\":\\\"https://login.microsoftonline.com/error?code=7000215\\\"}\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:46] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:46] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1370,\"provider\":\"office\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:46] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1202,\"provider\":\"office\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:46] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1202,\"provider\":\"office\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:46] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:46] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1202,\"provider\":\"office\",\"refreshToken\":\"b458799ccc29b21a6e2eb5260fdb63e49ccba21bf942a3973fb63799bd7f0afe\",\"state\":\"full-refresh\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:47] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1202,\"provider\":\"office\",\"responseBody\":\"{\\\"error\\\":\\\"invalid_client\\\",\\\"error_description\\\":\\\"AADSTS7000215: Invalid client secret provided. Ensure the secret being sent in the request is the client secret value, not the client secret ID, for a secret added to app 'bbcbb2ef-6200-4fae-82bd-d81f5dd738da'. Trace ID: a6d425e9-17c4-4184-bdce-460d37632900 Correlation ID: a12d7ccb-c8d3-4a1f-9094-e7ebd5ea33dd Timestamp: 2026-05-11 12:43:47Z\\\",\\\"error_codes\\\":[7000215],\\\"timestamp\\\":\\\"2026-05-11 12:43:47Z\\\",\\\"trace_id\\\":\\\"a6d425e9-17c4-4184-bdce-460d37632900\\\",\\\"correlation_id\\\":\\\"a12d7ccb-c8d3-4a1f-9094-e7ebd5ea33dd\\\",\\\"error_uri\\\":\\\"https://login.microsoftonline.com/error?code=7000215\\\"}\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:47] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:47] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1202,\"provider\":\"office\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:47] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:47] local.INFO: Calendar sync job dispatched {\"calendar_id\":501} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1300,\"provider\":\"google\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:47] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1300,\"provider\":\"google\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:47] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1300,\"provider\":\"google\",\"refreshToken\":\"4b811db0725fd9602a95943519a7da935e2a5065da7d9ebfcb170752e3e1ddb8\",\"state\":\"full-refresh\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:47] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1300,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Account has been deleted\"}} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:47] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:47] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1300,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:47] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1409,\"provider\":\"google\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:47] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1409,\"provider\":\"google\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:47] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:47] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1409,\"provider\":\"google\",\"refreshToken\":\"e2a3f2d06894894eed1ee87d9db1ace77d4d42ee6e1288a8940ad2c10333b0c4\",\"state\":\"full-refresh\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:48] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1409,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:48] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:48] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1409,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:48] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1352,\"provider\":\"google\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:48] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1352,\"provider\":\"google\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:48] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:48] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1352,\"provider\":\"google\",\"refreshToken\":\"dd4b16b00fdc1216da6b717c02338c073636e29162826b2de6db3f064fc029eb\",\"state\":\"full-refresh\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:48] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1352,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Token has been expired or revoked.\"}} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:48] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:48] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1352,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:49] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1296,\"provider\":\"office\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:49] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1296,\"provider\":\"office\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:49] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:49] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1296,\"provider\":\"office\",\"refreshToken\":\"011ae723c9d800c674e0b4be76f49fc046dac7d501b66c59ef0d9549cfa56ae5\",\"state\":\"full-refresh\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:49] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1296,\"provider\":\"office\",\"responseBody\":\"{\\\"error\\\":\\\"invalid_client\\\",\\\"error_description\\\":\\\"AADSTS7000215: Invalid client secret provided. Ensure the secret being sent in the request is the client secret value, not the client secret ID, for a secret added to app 'bbcbb2ef-6200-4fae-82bd-d81f5dd738da'. Trace ID: bbb5ab27-21e7-431e-af22-70d76afd2000 Correlation ID: 54cf5965-e49c-4fe8-aa09-dda16dbff35d Timestamp: 2026-05-11 12:43:49Z\\\",\\\"error_codes\\\":[7000215],\\\"timestamp\\\":\\\"2026-05-11 12:43:49Z\\\",\\\"trace_id\\\":\\\"bbb5ab27-21e7-431e-af22-70d76afd2000\\\",\\\"correlation_id\\\":\\\"54cf5965-e49c-4fe8-aa09-dda16dbff35d\\\",\\\"error_uri\\\":\\\"https://login.microsoftonline.com/error?code=7000215\\\"}\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:49] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:49] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1296,\"provider\":\"office\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:49] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"40fd25b6-942d-452d-a499-5bc1f4c4df76\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:49] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"40fd25b6-942d-452d-a499-5bc1f4c4df76\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:49] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"40fd25b6-942d-452d-a499-5bc1f4c4df76\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:49] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":391,\"provider\":\"office\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:50] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":391,\"provider\":\"office\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:50] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":391,\"provider\":\"office\",\"refreshToken\":\"00045eebae0f39b34887c6d53f92ae78064f7145e1f4b67754aebd03cfb2d881\",\"state\":\"full-refresh\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:50] local.INFO: [Calendar] Processing sync {\"calendarId\":\"a33076c1-8d97-431a-99f0-85c9524e118b\",\"from\":null,\"to\":null,\"delta\":\"CIiFh8TP44kDEIiFh8TP44kDGAUgkZvkzgIokZvkzgI=\",\"last_sync\":\"2024-12-09 07:12:53\",\"dateMode\":\"daily\"} {\"correlation_id\":\"40fd25b6-942d-452d-a499-5bc1f4c4df76\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:50] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"integration-app\",\"crm_owner\":1695,\"team_id\":3143} {\"correlation_id\":\"40fd25b6-942d-452d-a499-5bc1f4c4df76\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:50] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"40fd25b6-942d-452d-a499-5bc1f4c4df76\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:50] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1502,\"provider\":\"google\"} {\"correlation_id\":\"40fd25b6-942d-452d-a499-5bc1f4c4df76\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:50] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"40fd25b6-942d-452d-a499-5bc1f4c4df76\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:51] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":391,\"provider\":\"office\",\"responseBody\":\"{\\\"error\\\":\\\"invalid_client\\\",\\\"error_description\\\":\\\"AADSTS7000215: Invalid client secret provided. Ensure the secret being sent in the request is the client secret value, not the client secret ID, for a secret added to app 'bbcbb2ef-6200-4fae-82bd-d81f5dd738da'. Trace ID: 6339256e-38ea-40db-ac5d-43636f5e2700 Correlation ID: 64f01bfb-a8c3-4ce2-ac10-79d2d9da1c9e Timestamp: 2026-05-11 12:43:51Z\\\",\\\"error_codes\\\":[7000215],\\\"timestamp\\\":\\\"2026-05-11 12:43:51Z\\\",\\\"trace_id\\\":\\\"6339256e-38ea-40db-ac5d-43636f5e2700\\\",\\\"correlation_id\\\":\\\"64f01bfb-a8c3-4ce2-ac10-79d2d9da1c9e\\\",\\\"error_uri\\\":\\\"https://login.microsoftonline.com/error?code=7000215\\\"}\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:51] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:51] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":391,\"provider\":\"office\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:51] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1271,\"provider\":\"office\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:51] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1271,\"provider\":\"office\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:51] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:51] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1271,\"provider\":\"office\",\"refreshToken\":\"118cde2c06993147b07ccaec4cbcd5026a819dea6c71081166a492933e392afb\",\"state\":\"full-refresh\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:52] local.INFO: [Google Calendar] Failed to watch channel for calendar {\"calendarId\":\"a33076c1-8d97-431a-99f0-85c9524e118b\",\"code\":400,\"reason\":\"{\n \\\"error\\\": {\n \\\"errors\\\": [\n {\n \\\"domain\\\": \\\"global\\\",\n \\\"reason\\\": \\\"push.webhookUrlNotHttps\\\",\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n ],\n \\\"code\\\": 400,\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n}\"} {\"correlation_id\":\"40fd25b6-942d-452d-a499-5bc1f4c4df76\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:52] local.WARNING: [Calendar] Sync failed {\"calendarId\":\"a33076c1-8d97-431a-99f0-85c9524e118b\",\"code\":400,\"reason\":\"{\n \\\"error\\\": {\n \\\"errors\\\": [\n {\n \\\"domain\\\": \\\"global\\\",\n \\\"reason\\\": \\\"push.webhookUrlNotHttps\\\",\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n ],\n \\\"code\\\": 400,\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n}\"} {\"correlation_id\":\"40fd25b6-942d-452d-a499-5bc1f4c4df76\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:52] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1271,\"provider\":\"office\",\"responseBody\":\"{\\\"error\\\":\\\"invalid_client\\\",\\\"error_description\\\":\\\"AADSTS7000215: Invalid client secret provided. Ensure the secret being sent in the request is the client secret value, not the client secret ID, for a secret added to app 'bbcbb2ef-6200-4fae-82bd-d81f5dd738da'. Trace ID: 74008ab8-d6b6-462b-bd0e-92074db42800 Correlation ID: 276f953a-0988-461d-9422-a1978e679265 Timestamp: 2026-05-11 12:43:52Z\\\",\\\"error_codes\\\":[7000215],\\\"timestamp\\\":\\\"2026-05-11 12:43:52Z\\\",\\\"trace_id\\\":\\\"74008ab8-d6b6-462b-bd0e-92074db42800\\\",\\\"correlation_id\\\":\\\"276f953a-0988-461d-9422-a1978e679265\\\",\\\"error_uri\\\":\\\"https://login.microsoftonline.com/error?code=7000215\\\"}\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:52] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:52] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1271,\"provider\":\"office\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:52] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1351,\"provider\":\"google\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:52] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1351,\"provider\":\"google\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:52] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:52] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1351,\"provider\":\"google\",\"refreshToken\":\"4271d15b9e60a606439caddc68337f783e472c85b03dacff14d1b6dfded9051c\",\"state\":\"full-refresh\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:52] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1351,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:52] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:52] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1351,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:53] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1366,\"provider\":\"google\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:53] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1366,\"provider\":\"google\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:53] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:53] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1366,\"provider\":\"google\",\"refreshToken\":\"ae21385059b2eebfd43f68aecd56eccd702a1aabb6598f1f7ab594ed8af491b4\",\"state\":\"full-refresh\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:53] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1366,\"provider\":\"google\",\"responseBody\":{\"error\":\"invalid_grant\",\"error_description\":\"Bad Request\"}} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:53] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:53] local.ERROR: [SocialAccountService] Failed to refresh token {\"socialAccountId\":1366,\"provider\":\"google\",\"reason\":\"Flow refresh required.\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:53] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:53] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:53] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:53] local.INFO: Calendar sync job dispatched {\"calendar_id\":378} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:53] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1421,\"provider\":\"office\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:53] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1421,\"provider\":\"office\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:53] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:53] local.INFO: Calendar sync job dispatched {\"calendar_id\":504} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:53] local.NOTICE: Calendar sync end {\"retrieved_calendars\":31,\"processed_calendars\":3} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:53] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"calendar:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":62.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"7fe697c9-82fb-4314-94d5-aef6039ca026\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:54] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"7cd50d04-9c09-477a-926b-83061b568c0e\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:54] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"7cd50d04-9c09-477a-926b-83061b568c0e\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:54] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7cd50d04-9c09-477a-926b-83061b568c0e\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:54] local.INFO: [Calendar] Processing sync {\"calendarId\":\"2676cb6d-f86c-427e-bf78-591e388e3c1e\",\"from\":null,\"to\":null,\"delta\":\"CJ_x49O3jpIDEJ_x49O3jpIDGAUgw67KlwMow67KlwM=\",\"last_sync\":\"2026-01-19 07:48:40\",\"dateMode\":\"daily\"} {\"correlation_id\":\"7cd50d04-9c09-477a-926b-83061b568c0e\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:54] local.WARNING: [Pipedrive] Account not connected for user {\"userId\":\"e6538737-e7b4-455f-a37a-3e79b665a220\",\"account\":{\"Jiminny\\\\Models\\\\SocialAccount\":{\"id\":1116,\"sociable_id\":241,\"provider_user_id\":\"19555731\",\"expires\":1775683749,\"refresh_token_expires\":null,\"provider\":\"pipedrive\",\"state\":\"full-refresh\",\"auth_scope\":\"base,deals:full,activities:full,contacts:full,search:read\",\"retry_after\":null,\"created_at\":\"2023-09-08 09:44:29\",\"updated_at\":\"2026-04-08 22:58:34\"}}} {\"correlation_id\":\"7cd50d04-9c09-477a-926b-83061b568c0e\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:54] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"pipedrive\",\"crm_owner\":241,\"team_id\":19} {\"correlation_id\":\"7cd50d04-9c09-477a-926b-83061b568c0e\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:55] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"pipedrive\",\"team_id\":19} {\"correlation_id\":\"7cd50d04-9c09-477a-926b-83061b568c0e\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:55] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"pipedrive\",\"team_id\":19} {\"correlation_id\":\"7cd50d04-9c09-477a-926b-83061b568c0e\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:55] local.WARNING: [Calendar] CRM disconnected for user so events will not be matched {\"provider\":\"pipedrive\",\"user_id\":241,\"message\":\"Your Pipedrive account has become disconnected. Please login to Jiminny to reconnect.\"} {\"correlation_id\":\"7cd50d04-9c09-477a-926b-83061b568c0e\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:55] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"7cd50d04-9c09-477a-926b-83061b568c0e\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:55] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1115,\"provider\":\"google\"} {\"correlation_id\":\"7cd50d04-9c09-477a-926b-83061b568c0e\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:55] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"7cd50d04-9c09-477a-926b-83061b568c0e\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:56] local.INFO: [Google Calendar] Failed to watch channel for calendar {\"calendarId\":\"2676cb6d-f86c-427e-bf78-591e388e3c1e\",\"code\":400,\"reason\":\"{\n \\\"error\\\": {\n \\\"errors\\\": [\n {\n \\\"domain\\\": \\\"global\\\",\n \\\"reason\\\": \\\"push.webhookUrlNotHttps\\\",\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n ],\n \\\"code\\\": 400,\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n}\"} {\"correlation_id\":\"7cd50d04-9c09-477a-926b-83061b568c0e\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:56] local.WARNING: [Calendar] Sync failed {\"calendarId\":\"2676cb6d-f86c-427e-bf78-591e388e3c1e\",\"code\":400,\"reason\":\"{\n \\\"error\\\": {\n \\\"errors\\\": [\n {\n \\\"domain\\\": \\\"global\\\",\n \\\"reason\\\": \\\"push.webhookUrlNotHttps\\\",\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n ],\n \\\"code\\\": 400,\n \\\"message\\\": \\\"WebHook callback must be HTTPS: /webhook/calendar/google?resourceType=event\\\"\n }\n}\"} {\"correlation_id\":\"7cd50d04-9c09-477a-926b-83061b568c0e\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:56] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1421,\"provider\":\"office\"} {\"correlation_id\":\"6d26c44e-025d-4aa5-9db6-304a3df2e60a\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:56] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1421,\"provider\":\"office\"} {\"correlation_id\":\"6d26c44e-025d-4aa5-9db6-304a3df2e60a\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:56] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"6d26c44e-025d-4aa5-9db6-304a3df2e60a\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:56] local.INFO: [Calendar] Processing sync {\"calendarId\":\"9e8b1a2c-1a8f-42bd-b161-810fc0baf540\",\"from\":null,\"to\":null,\"delta\":\"R0usmcdvmMuZCBYV0hguCLlvcOB4kXlhlC7KgH1SnZwTrZ3faZv1fXPQqJhxe_L9AxWWlb-wASsjGiiWlhsBUg9MFb3ZdlAYerVV_ZirRPbsKWCxEXhybD90arJmok_M4ecGFUQ9_BIGu-c6RAnJy2TRKZ7gPTsJi_8TGceGAuqimlhm4G4mjDLvYVVwImjjU7M3xJvUzL47dLOGNTJCww.k1TST0VEYCgbFOkwa3ysYMi100FtVfkzfqlXLnV6gPg\",\"last_sync\":\"2026-05-11 06:13:36\",\"dateMode\":\"daily\"} {\"correlation_id\":\"6d26c44e-025d-4aa5-9db6-304a3df2e60a\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:56] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6d26c44e-025d-4aa5-9db6-304a3df2e60a\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:56] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"6d26c44e-025d-4aa5-9db6-304a3df2e60a\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:56] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"6d26c44e-025d-4aa5-9db6-304a3df2e60a\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:56] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":89,\"team_id\":2} {\"correlation_id\":\"6d26c44e-025d-4aa5-9db6-304a3df2e60a\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:43:56] local.INFO: [MS Office Calendar] Skipping delta sync for daily mode {\"calendarId\":\"9e8b1a2c-1a8f-42bd-b161-810fc0baf540\"} {\"correlation_id\":\"6d26c44e-025d-4aa5-9db6-304a3df2e60a\",\"trace_id\":\"fd6a7bd5-f500-41d6-a3f5-48cc8ab08a4e\"}\n[2026-05-11 12:44:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"8990bbf5-fe82-4fc9-9f98-9bcbfe128b3d\",\"trace_id\":\"963c0e14-5a90-4dc5-897f-999638900693\"}\n[2026-05-11 12:44:12] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"8990bbf5-fe82-4fc9-9f98-9bcbfe128b3d\",\"trace_id\":\"963c0e14-5a90-4dc5-897f-999638900693\"}\n[2026-05-11 12:44:12] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"8990bbf5-fe82-4fc9-9f98-9bcbfe128b3d\",\"trace_id\":\"963c0e14-5a90-4dc5-897f-999638900693\"}\n[2026-05-11 12:44:20] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"264eaef0-8cf2-49f1-bbbe-f869bf6cb3f6\",\"trace_id\":\"88508bd1-bce7-4b1e-a92c-f419f8a61a05\"}\n[2026-05-11 12:44:21] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"264eaef0-8cf2-49f1-bbbe-f869bf6cb3f6\",\"trace_id\":\"88508bd1-bce7-4b1e-a92c-f419f8a61a05\"}\n[2026-05-11 12:44:27] local.NOTICE: Monitoring start {\"correlation_id\":\"076d8dfb-b606-4b64-ac62-05d43c7a9584\",\"trace_id\":\"08e2935b-b45a-487f-953b-84f192d16c45\"}\n[2026-05-11 12:44:27] local.NOTICE: Monitoring end {\"correlation_id\":\"076d8dfb-b606-4b64-ac62-05d43c7a9584\",\"trace_id\":\"08e2935b-b45a-487f-953b-84f192d16c45\"}\n[2026-05-11 12:44:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"b7d17dde-90f3-4ecc-aaa6-8a93b434400a\",\"trace_id\":\"0e4b70cb-134f-4b43-b2a5-7b69d013955a\"}\n[2026-05-11 12:44:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"b7d17dde-90f3-4ecc-aaa6-8a93b434400a\",\"trace_id\":\"0e4b70cb-134f-4b43-b2a5-7b69d013955a\"}\n[2026-05-11 12:44:36] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"24d2f8b7-8afe-45d0-aa11-bf66316b3396\",\"trace_id\":\"8ba3def8-73d4-42a8-ae24-b873deef890a\"}\n[2026-05-11 12:44:36] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"24d2f8b7-8afe-45d0-aa11-bf66316b3396\",\"trace_id\":\"8ba3def8-73d4-42a8-ae24-b873deef890a\"}\n[2026-05-11 12:44:36] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"24d2f8b7-8afe-45d0-aa11-bf66316b3396\",\"trace_id\":\"8ba3def8-73d4-42a8-ae24-b873deef890a\"}\n[2026-05-11 12:44:36] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"24d2f8b7-8afe-45d0-aa11-bf66316b3396\",\"trace_id\":\"8ba3def8-73d4-42a8-ae24-b873deef890a\"}\n[2026-05-11 12:44:45] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"6cdf9b19-d16c-47c1-b0de-8116efc85c5a\",\"trace_id\":\"94ac9ff3-f5ec-4648-bf9d-3deed123642b\"}\n[2026-05-11 12:44:45] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 12:42:00, 2026-05-11 12:44:00] {\"correlation_id\":\"6cdf9b19-d16c-47c1-b0de-8116efc85c5a\",\"trace_id\":\"94ac9ff3-f5ec-4648-bf9d-3deed123642b\"}\n[2026-05-11 12:44:45] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 12:42:00, 2026-05-11 12:44:00] {\"correlation_id\":\"6cdf9b19-d16c-47c1-b0de-8116efc85c5a\",\"trace_id\":\"94ac9ff3-f5ec-4648-bf9d-3deed123642b\"}\n[2026-05-11 12:44:45] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"6cdf9b19-d16c-47c1-b0de-8116efc85c5a\",\"trace_id\":\"94ac9ff3-f5ec-4648-bf9d-3deed123642b\"}\n[2026-05-11 12:44:52] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:sync-objects\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"3cd389bc-e54a-429e-834e-61b19ac63e23\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:44:53] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:sync-objects\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"3cd389bc-e54a-429e-834e-61b19ac63e23\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:44:54] local.INFO: [SyncObjects] Before memory usage: {\"team\":\"6473c918-d8db-4ded-a52b-4febfd7b7c02\",\"usage\":23826968,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"20627cae-ebc4-490c-84c0-68ffc23207d6\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:44:54] local.WARNING: [Salesforce] Account not connected for user {\"userId\":\"641f1acb-16b8-42d1-8726-df52979dad0e\",\"account\":{\"Jiminny\\\\Models\\\\SocialAccount\":{\"id\":1500,\"sociable_id\":143,\"provider_user_id\":\"0052g000003frelAAA\",\"expires\":null,\"refresh_token_expires\":null,\"provider\":\"salesforce\",\"state\":\"full-refresh\",\"auth_scope\":\"refresh_token web api\",\"retry_after\":null,\"created_at\":\"2026-02-06 08:39:03\",\"updated_at\":\"2026-04-28 06:31:37\"}}} {\"correlation_id\":\"20627cae-ebc4-490c-84c0-68ffc23207d6\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:44:54] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"salesforce\",\"crm_owner\":143,\"team_id\":1} {\"correlation_id\":\"20627cae-ebc4-490c-84c0-68ffc23207d6\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:44:54] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"salesforce\",\"team_id\":1} {\"correlation_id\":\"20627cae-ebc4-490c-84c0-68ffc23207d6\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:44:54] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"salesforce\",\"team_id\":1} {\"correlation_id\":\"20627cae-ebc4-490c-84c0-68ffc23207d6\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:44:54] local.INFO: [SyncObjects] Sync finished {\"team\":\"6473c918-d8db-4ded-a52b-4febfd7b7c02\",\"provider\":\"salesforce\",\"status\":\"disconnected\",\"duration_ms\":245.51,\"usage\":23902576,\"real_usage\":62914560,\"pid\":74083,\"reason\":\"Your Salesforce account has become disconnected. Please login to Jiminny to reconnect.\"} {\"correlation_id\":\"20627cae-ebc4-490c-84c0-68ffc23207d6\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:44:55] local.INFO: [SyncObjects] Before memory usage: {\"team\":\"51467630-d89d-480b-be20-933e64a042f7\",\"usage\":23858368,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"c995f539-efe5-41d5-a336-2c8a67f5c975\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:44:55] local.WARNING: [Pipedrive] Account not connected for user {\"userId\":\"e6538737-e7b4-455f-a37a-3e79b665a220\",\"account\":{\"Jiminny\\\\Models\\\\SocialAccount\":{\"id\":1116,\"sociable_id\":241,\"provider_user_id\":\"19555731\",\"expires\":1775683749,\"refresh_token_expires\":null,\"provider\":\"pipedrive\",\"state\":\"full-refresh\",\"auth_scope\":\"base,deals:full,activities:full,contacts:full,search:read\",\"retry_after\":null,\"created_at\":\"2023-09-08 09:44:29\",\"updated_at\":\"2026-04-08 22:58:34\"}}} {\"correlation_id\":\"c995f539-efe5-41d5-a336-2c8a67f5c975\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:44:55] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"pipedrive\",\"crm_owner\":241,\"team_id\":19} {\"correlation_id\":\"c995f539-efe5-41d5-a336-2c8a67f5c975\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:44:55] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"pipedrive\",\"team_id\":19} {\"correlation_id\":\"c995f539-efe5-41d5-a336-2c8a67f5c975\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:44:55] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"pipedrive\",\"team_id\":19} {\"correlation_id\":\"c995f539-efe5-41d5-a336-2c8a67f5c975\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:44:55] local.INFO: [SyncObjects] Sync finished {\"team\":\"51467630-d89d-480b-be20-933e64a042f7\",\"provider\":\"pipedrive\",\"status\":\"disconnected\",\"duration_ms\":29.94,\"usage\":23933456,\"real_usage\":62914560,\"pid\":74083,\"reason\":\"Your Pipedrive account has become disconnected. Please login to Jiminny to reconnect.\"} {\"correlation_id\":\"c995f539-efe5-41d5-a336-2c8a67f5c975\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:44:57] local.INFO: [SyncObjects] Before memory usage: {\"team\":\"396ed57c-e3c4-49be-8290-37c32955f7c7\",\"usage\":23888624,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"ee83be84-ab68-4f0d-94c9-90e2198525ed\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:44:57] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"copper\",\"crm_owner\":333,\"team_id\":27} {\"correlation_id\":\"ee83be84-ab68-4f0d-94c9-90e2198525ed\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:44:58] local.NOTICE: Leads unavailable {\"method\":\"POST\",\"endpoint\":\"leads/search\",\"options\":[],\"body\":{\"minimum_modified_date\":1778498133,\"sort_by\":\"date_modified\",\"page_number\":1},\"status_code\":403,\"error\":\"{\\\"success\\\":false,\\\"status\\\":403,\\\"message\\\":\\\"Feature not enabled\\\"}\"} {\"correlation_id\":\"ee83be84-ab68-4f0d-94c9-90e2198525ed\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:44:58] local.INFO: [SyncObjects] Sync finished {\"team\":\"396ed57c-e3c4-49be-8290-37c32955f7c7\",\"provider\":\"copper\",\"status\":\"completed\",\"duration_ms\":1373.31,\"usage\":24034976,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"ee83be84-ab68-4f0d-94c9-90e2198525ed\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:44:59] local.INFO: [SyncObjects] Before memory usage: {\"team\":\"fda3cbdf-1117-4ba5-86f8-775f548b3a28\",\"usage\":24016464,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"834e0e1f-df57-4af7-a21d-846b86053c63\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:44:59] local.WARNING: [Pipedrive] Account not connected for user {\"userId\":\"e6538737-e7b4-455f-a37a-3e79b665a220\",\"account\":{\"Jiminny\\\\Models\\\\SocialAccount\":{\"id\":1116,\"sociable_id\":241,\"provider_user_id\":\"19555731\",\"expires\":1775683749,\"refresh_token_expires\":null,\"provider\":\"pipedrive\",\"state\":\"full-refresh\",\"auth_scope\":\"base,deals:full,activities:full,contacts:full,search:read\",\"retry_after\":null,\"created_at\":\"2023-09-08 09:44:29\",\"updated_at\":\"2026-04-08 22:58:34\"}}} {\"correlation_id\":\"834e0e1f-df57-4af7-a21d-846b86053c63\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:44:59] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"pipedrive\",\"crm_owner\":241,\"team_id\":28} {\"correlation_id\":\"834e0e1f-df57-4af7-a21d-846b86053c63\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:44:59] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"pipedrive\",\"team_id\":28} {\"correlation_id\":\"834e0e1f-df57-4af7-a21d-846b86053c63\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:44:59] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"pipedrive\",\"team_id\":28} {\"correlation_id\":\"834e0e1f-df57-4af7-a21d-846b86053c63\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:44:59] local.INFO: [SyncObjects] Sync finished {\"team\":\"fda3cbdf-1117-4ba5-86f8-775f548b3a28\",\"provider\":\"pipedrive\",\"status\":\"disconnected\",\"duration_ms\":22.59,\"usage\":24061248,\"real_usage\":62914560,\"pid\":74083,\"reason\":\"Your Pipedrive account has become disconnected. Please login to Jiminny to reconnect.\"} {\"correlation_id\":\"834e0e1f-df57-4af7-a21d-846b86053c63\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:45:02] local.INFO: [SyncObjects] Before memory usage: {\"team\":\"3ff5a02a-86fb-4357-b1d6-a04e26c38602\",\"usage\":24016592,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"bbdd00c8-2b7f-4e38-aff0-b4fc633883e8\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:45:02] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1219,\"provider\":\"close\"} {\"correlation_id\":\"bbdd00c8-2b7f-4e38-aff0-b4fc633883e8\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:45:02] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1219,\"provider\":\"close\"} {\"correlation_id\":\"bbdd00c8-2b7f-4e38-aff0-b4fc633883e8\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:45:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"bbdd00c8-2b7f-4e38-aff0-b4fc633883e8\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:45:02] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"close\",\"crm_owner\":257,\"team_id\":31} {\"correlation_id\":\"bbdd00c8-2b7f-4e38-aff0-b4fc633883e8\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:45:03] local.INFO: [SyncObjects] Sync finished {\"team\":\"3ff5a02a-86fb-4357-b1d6-a04e26c38602\",\"provider\":\"close\",\"status\":\"completed\",\"duration_ms\":1398.26,\"usage\":24109464,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"bbdd00c8-2b7f-4e38-aff0-b4fc633883e8\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:45:03] local.INFO: [SyncObjects] Before memory usage: {\"team\":\"1640a0ac-19da-4c3b-90f7-87525f07a6d2\",\"usage\":24088104,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"9cd80d28-db07-49ed-a1c2-f8a0e365bf9c\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:45:03] local.WARNING: [Bullhorn] Account not connected for user {\"userId\":\"941d12a6-e84f-4c3a-a4c8-2ef433792095\",\"account\":{\"Jiminny\\\\Models\\\\SocialAccount\":{\"id\":348,\"sociable_id\":121,\"provider_user_id\":null,\"expires\":1733727508,\"refresh_token_expires\":null,\"provider\":\"bullhorn\",\"state\":\"full-refresh\",\"auth_scope\":null,\"retry_after\":null,\"created_at\":\"2021-04-06 11:07:26\",\"updated_at\":\"2024-12-09 15:10:40\"}}} {\"correlation_id\":\"9cd80d28-db07-49ed-a1c2-f8a0e365bf9c\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:45:03] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"bullhorn\",\"crm_owner\":121,\"team_id\":36} {\"correlation_id\":\"9cd80d28-db07-49ed-a1c2-f8a0e365bf9c\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:45:03] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"bullhorn\",\"team_id\":36} {\"correlation_id\":\"9cd80d28-db07-49ed-a1c2-f8a0e365bf9c\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:45:03] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"bullhorn\",\"team_id\":36} {\"correlation_id\":\"9cd80d28-db07-49ed-a1c2-f8a0e365bf9c\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:45:03] local.INFO: [SyncObjects] Sync finished {\"team\":\"1640a0ac-19da-4c3b-90f7-87525f07a6d2\",\"provider\":\"bullhorn\",\"status\":\"disconnected\",\"duration_ms\":31.33,\"usage\":24168832,\"real_usage\":62914560,\"pid\":74083,\"reason\":\"Your Bullhorn account has become disconnected. Please login to Jiminny to reconnect.\"} {\"correlation_id\":\"9cd80d28-db07-49ed-a1c2-f8a0e365bf9c\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:45:05] local.INFO: [SyncObjects] Before memory usage: {\"team\":\"0c33bf2d-1c77-4200-8ed6-6147ad444c30\",\"usage\":24125848,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"d4d95c14-a0d0-4b77-8132-cf61a864d641\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:45:05] local.WARNING: [Salesforce] Account not connected for user {\"userId\":\"ed89227b-e364-4dfb-b4bf-343f154bf21e\",\"account\":{\"Jiminny\\\\Models\\\\SocialAccount\":{\"id\":1360,\"sociable_id\":245,\"provider_user_id\":\"0052g000003frZNAAY\",\"expires\":null,\"refresh_token_expires\":null,\"provider\":\"salesforce\",\"state\":\"full-refresh\",\"auth_scope\":\"refresh_token web api\",\"retry_after\":null,\"created_at\":\"2024-09-02 06:11:55\",\"updated_at\":\"2024-12-11 08:50:23\"}}} {\"correlation_id\":\"d4d95c14-a0d0-4b77-8132-cf61a864d641\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:45:05] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"salesforce\",\"crm_owner\":245,\"team_id\":59} {\"correlation_id\":\"d4d95c14-a0d0-4b77-8132-cf61a864d641\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:45:05] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"salesforce\",\"team_id\":59} {\"correlation_id\":\"d4d95c14-a0d0-4b77-8132-cf61a864d641\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:45:05] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"salesforce\",\"team_id\":59} {\"correlation_id\":\"d4d95c14-a0d0-4b77-8132-cf61a864d641\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:45:05] local.INFO: [SyncObjects] Sync finished {\"team\":\"0c33bf2d-1c77-4200-8ed6-6147ad444c30\",\"provider\":\"salesforce\",\"status\":\"disconnected\",\"duration_ms\":61.68,\"usage\":24167888,\"real_usage\":62914560,\"pid\":74083,\"reason\":\"Your Salesforce account has become disconnected. Please login to Jiminny to reconnect.\"} {\"correlation_id\":\"d4d95c14-a0d0-4b77-8132-cf61a864d641\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:45:07] local.INFO: [SyncObjects] Before memory usage: {\"team\":\"1ece66c8-feb1-4df1-b321-21607daf4623\",\"usage\":24126032,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"e215d2bc-60f6-4dc5-b809-f670db7857a7\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:45:07] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"integration-app\",\"crm_owner\":1695,\"team_id\":3143} {\"correlation_id\":\"e215d2bc-60f6-4dc5-b809-f670db7857a7\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:45:07] local.INFO: [integration-app] Syncing opportunities {\"parameters\":{\"since\":\"2026-05-11 11:15:42\",\"strategy\":\"lastModified\"},\"team_id\":3143} {\"correlation_id\":\"e215d2bc-60f6-4dc5-b809-f670db7857a7\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:45:08] local.INFO: [integration-app] Request {\"request\":\"POST connections/zohocrm/actions/query-deals/run\",\"full_target\":\"connections/zohocrm/actions/query-deals/run\"} {\"correlation_id\":\"e215d2bc-60f6-4dc5-b809-f670db7857a7\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:45:09] local.INFO: [integration-app] Syncing opportunities finished successfully {\"parameters\":{\"since\":\"2026-05-11 11:15:42\",\"strategy\":\"lastModified\"},\"team_id\":3143} {\"correlation_id\":\"e215d2bc-60f6-4dc5-b809-f670db7857a7\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:45:09] local.INFO: [integration-app] Syncing accounts {\"since\":\"2026-05-11 11:15:42\",\"to\":null,\"team_id\":3143} {\"correlation_id\":\"e215d2bc-60f6-4dc5-b809-f670db7857a7\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:45:09] local.INFO: [integration-app] Request {\"request\":\"POST connections/zohocrm/actions/query-companies/run\",\"full_target\":\"connections/zohocrm/actions/query-companies/run\"} {\"correlation_id\":\"e215d2bc-60f6-4dc5-b809-f670db7857a7\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:45:10] local.INFO: [integration-app] Syncing accounts finished successfully {\"since\":\"2026-05-11 11:15:42\",\"to\":null,\"team_id\":3143} {\"correlation_id\":\"e215d2bc-60f6-4dc5-b809-f670db7857a7\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:45:10] local.INFO: [integration-app] Syncing contacts {\"since\":\"2026-05-11 11:15:42\",\"to\":null,\"team_id\":3143} {\"correlation_id\":\"e215d2bc-60f6-4dc5-b809-f670db7857a7\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:45:10] local.INFO: [integration-app] Request {\"request\":\"POST connections/zohocrm/actions/query-contacts/run\",\"full_target\":\"connections/zohocrm/actions/query-contacts/run\"} {\"correlation_id\":\"e215d2bc-60f6-4dc5-b809-f670db7857a7\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:45:11] local.INFO: [integration-app] Syncing contacts finished successfully {\"since\":\"2026-05-11 11:15:42\",\"to\":null,\"team_id\":3143} {\"correlation_id\":\"e215d2bc-60f6-4dc5-b809-f670db7857a7\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:45:11] local.INFO: [integration-app] Syncing leads {\"since\":\"2026-05-11 11:15:42\",\"to\":null,\"crm_profile_id\":null,\"team_id\":3143} {\"correlation_id\":\"e215d2bc-60f6-4dc5-b809-f670db7857a7\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:45:11] local.INFO: [integration-app] Request {\"request\":\"POST connections/zohocrm/actions/get-converted-leads/run\",\"full_target\":\"connections/zohocrm/actions/get-converted-leads/run\"} {\"correlation_id\":\"e215d2bc-60f6-4dc5-b809-f670db7857a7\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:45:13] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"86d4039f-24a6-43fd-bdda-752cae55b075\",\"trace_id\":\"7be880af-d46e-49f8-82b8-5924fe620442\"}\n[2026-05-11 12:45:13] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"86d4039f-24a6-43fd-bdda-752cae55b075\",\"trace_id\":\"7be880af-d46e-49f8-82b8-5924fe620442\"}\n[2026-05-11 12:45:13] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"86d4039f-24a6-43fd-bdda-752cae55b075\",\"trace_id\":\"7be880af-d46e-49f8-82b8-5924fe620442\"}\n[2026-05-11 12:45:13] local.INFO: [integration-app] Syncing leads finished successfully {\"since\":\"2026-05-11 11:15:42\",\"to\":null,\"team_id\":3143} {\"correlation_id\":\"e215d2bc-60f6-4dc5-b809-f670db7857a7\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:45:13] local.INFO: [SyncObjects] Sync finished {\"team\":\"1ece66c8-feb1-4df1-b321-21607daf4623\",\"provider\":\"integration-app\",\"status\":\"completed\",\"duration_ms\":5628.24,\"usage\":24337344,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"e215d2bc-60f6-4dc5-b809-f670db7857a7\",\"trace_id\":\"12352cfb-2ff2-4e84-ae94-76ec64990a50\"}\n[2026-05-11 12:45:17] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"408e342b-f48d-464d-84a3-8a4fccff3720\",\"trace_id\":\"f72d4043-f5b5-4773-85ed-ca1d8da6b7e7\"}\n[2026-05-11 12:45:17] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"408e342b-f48d-464d-84a3-8a4fccff3720\",\"trace_id\":\"f72d4043-f5b5-4773-85ed-ca1d8da6b7e7\"}\n[2026-05-11 12:45:20] local.NOTICE: Monitoring start {\"correlation_id\":\"2d30be47-b0b1-4e0a-b8b5-cd450202880d\",\"trace_id\":\"2812bffa-9229-43fc-bbf6-79cecea5c925\"}\n[2026-05-11 12:45:20] local.NOTICE: Monitoring end {\"correlation_id\":\"2d30be47-b0b1-4e0a-b8b5-cd450202880d\",\"trace_id\":\"2812bffa-9229-43fc-bbf6-79cecea5c925\"}\n[2026-05-11 12:45:30] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"d3db8cbc-bb9a-4a2d-a094-4ea0466c8b3b\",\"trace_id\":\"90cf3c4c-ab26-4577-8c9f-afeec6330cf3\"}\n[2026-05-11 12:45:30] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"d3db8cbc-bb9a-4a2d-a094-4ea0466c8b3b\",\"trace_id\":\"90cf3c4c-ab26-4577-8c9f-afeec6330cf3\"}\n[2026-05-11 12:45:33] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"dcaeedfa-13dc-4116-b8ea-dcf12e1c01fc\",\"trace_id\":\"ff022c79-082a-428f-bafb-ffb1c1cfa583\"}\n[2026-05-11 12:45:33] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"dcaeedfa-13dc-4116-b8ea-dcf12e1c01fc\",\"trace_id\":\"ff022c79-082a-428f-bafb-ffb1c1cfa583\"}\n[2026-05-11 12:45:33] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"dcaeedfa-13dc-4116-b8ea-dcf12e1c01fc\",\"trace_id\":\"ff022c79-082a-428f-bafb-ffb1c1cfa583\"}\n[2026-05-11 12:45:33] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"dcaeedfa-13dc-4116-b8ea-dcf12e1c01fc\",\"trace_id\":\"ff022c79-082a-428f-bafb-ffb1c1cfa583\"}\n[2026-05-11 12:45:36] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"966e4c44-087d-46a6-9cc1-d9cbe31fee7e\",\"trace_id\":\"20472a61-b6d1-4335-a91a-368fbafc452e\"}\n[2026-05-11 12:45:36] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"966e4c44-087d-46a6-9cc1-d9cbe31fee7e\",\"trace_id\":\"20472a61-b6d1-4335-a91a-368fbafc452e\"}\n[2026-05-11 12:45:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"120cd5e3-0824-43eb-ac78-cfc38ef99d73\",\"trace_id\":\"5977250c-3d95-4c04-baf7-55d5f2c12db6\"}\n[2026-05-11 12:45:43] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"120cd5e3-0824-43eb-ac78-cfc38ef99d73\",\"trace_id\":\"5977250c-3d95-4c04-baf7-55d5f2c12db6\"}\n[2026-05-11 12:45:47] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"cae42dcc-2dd3-430c-8a91-ce40ceebaa20\",\"trace_id\":\"ee5c0be6-abb6-4129-b0f6-02a803f536b7\"}\n[2026-05-11 12:45:47] local.INFO: Running pre-meeting notification command {\"correlation_id\":\"cae42dcc-2dd3-430c-8a91-ce40ceebaa20\",\"trace_id\":\"ee5c0be6-abb6-4129-b0f6-02a803f536b7\"}\n[2026-05-11 12:45:47] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"cae42dcc-2dd3-430c-8a91-ce40ceebaa20\",\"trace_id\":\"ee5c0be6-abb6-4129-b0f6-02a803f536b7\"}\n[2026-05-11 12:45:50] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"ff52302f-91b3-46fa-b1e0-08224760b4f6\",\"trace_id\":\"50fa0fa6-afa3-475a-ba2d-d823f5597ede\"}\n[2026-05-11 12:45:50] local.INFO: Running conference:monitor:start command for activities in (2026-05-11 12:35:00, 2026-05-11 12:40:00] {\"correlation_id\":\"ff52302f-91b3-46fa-b1e0-08224760b4f6\",\"trace_id\":\"50fa0fa6-afa3-475a-ba2d-d823f5597ede\"}\n[2026-05-11 12:45:50] local.INFO: [conference:monitor:start] No activities found in (2026-05-11 12:35:00, 2026-05-11 12:40:00] {\"correlation_id\":\"ff52302f-91b3-46fa-b1e0-08224760b4f6\",\"trace_id\":\"50fa0fa6-afa3-475a-ba2d-d823f5597ede\"}\n[2026-05-11 12:45:50] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"ff52302f-91b3-46fa-b1e0-08224760b4f6\",\"trace_id\":\"50fa0fa6-afa3-475a-ba2d-d823f5597ede\"}\n[2026-05-11 12:45:57] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"767c4ea3-2863-4b86-bddd-47d0d543b9cd\",\"trace_id\":\"b8d4a913-b7f0-476b-a2f7-587a6d25dbc2\"}\n[2026-05-11 12:45:57] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesEnded {\"from\":\"12:40\",\"to\":\"12:45\"} {\"correlation_id\":\"767c4ea3-2863-4b86-bddd-47d0d543b9cd\",\"trace_id\":\"b8d4a913-b7f0-476b-a2f7-587a6d25dbc2\"}\n[2026-05-11 12:45:57] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesWithUnfinishedSession {\"from\":\"02:35\",\"to\":\"02:40\"} {\"correlation_id\":\"767c4ea3-2863-4b86-bddd-47d0d543b9cd\",\"trace_id\":\"b8d4a913-b7f0-476b-a2f7-587a6d25dbc2\"}\n[2026-05-11 12:45:57] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"767c4ea3-2863-4b86-bddd-47d0d543b9cd\",\"trace_id\":\"b8d4a913-b7f0-476b-a2f7-587a6d25dbc2\"}\n[2026-05-11 12:46:01] local.NOTICE: Repairing HubSpot tokens start {\"correlation_id\":\"888ff0f2-b31e-4121-8fc1-8f057f6c550b\",\"trace_id\":\"1d45272b-e1eb-4904-b319-678f93f40f58\"}\n[2026-05-11 12:46:01] local.INFO: Trying to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\"} {\"correlation_id\":\"888ff0f2-b31e-4121-8fc1-8f057f6c550b\",\"trace_id\":\"1d45272b-e1eb-4904-b319-678f93f40f58\"}\n[2026-05-11 12:46:01] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"888ff0f2-b31e-4121-8fc1-8f057f6c550b\",\"trace_id\":\"1d45272b-e1eb-4904-b319-678f93f40f58\"}\n[2026-05-11 12:46:01] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":59,\"provider\":\"hubspot\",\"refreshToken\":\"97b78f6e2cc49965c00c2492b602b02708b1392551e6b3f113fbaa48992af90b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"888ff0f2-b31e-4121-8fc1-8f057f6c550b\",\"trace_id\":\"1d45272b-e1eb-4904-b319-678f93f40f58\"}\n[2026-05-11 12:46:02] local.ERROR: Failed to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"888ff0f2-b31e-4121-8fc1-8f057f6c550b\",\"trace_id\":\"1d45272b-e1eb-4904-b319-678f93f40f58\"}\n[2026-05-11 12:46:02] local.INFO: Trying to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\"} {\"correlation_id\":\"888ff0f2-b31e-4121-8fc1-8f057f6c550b\",\"trace_id\":\"1d45272b-e1eb-4904-b319-678f93f40f58\"}\n[2026-05-11 12:46:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"888ff0f2-b31e-4121-8fc1-8f057f6c550b\",\"trace_id\":\"1d45272b-e1eb-4904-b319-678f93f40f58\"}\n[2026-05-11 12:46:02] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":306,\"provider\":\"hubspot\",\"refreshToken\":\"6fa6aa8cc641d131231acc3470f5c03cb3b07b2e580fb18f8acb3b1dbb72549b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"888ff0f2-b31e-4121-8fc1-8f057f6c550b\",\"trace_id\":\"1d45272b-e1eb-4904-b319-678f93f40f58\"}\n[2026-05-11 12:46:02] local.ERROR: Failed to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"888ff0f2-b31e-4121-8fc1-8f057f6c550b\",\"trace_id\":\"1d45272b-e1eb-4904-b319-678f93f40f58\"}\n[2026-05-11 12:46:02] local.INFO: Trying to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\"} {\"correlation_id\":\"888ff0f2-b31e-4121-8fc1-8f057f6c550b\",\"trace_id\":\"1d45272b-e1eb-4904-b319-678f93f40f58\"}\n[2026-05-11 12:46:02] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"888ff0f2-b31e-4121-8fc1-8f057f6c550b\",\"trace_id\":\"1d45272b-e1eb-4904-b319-678f93f40f58\"}\n[2026-05-11 12:46:02] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1372,\"provider\":\"hubspot\",\"refreshToken\":\"9aa73948c761da29dce46c177cf9aee1fde483a44169ca38723f9f0597d7a8c4\",\"state\":\"full-refresh\"} {\"correlation_id\":\"888ff0f2-b31e-4121-8fc1-8f057f6c550b\",\"trace_id\":\"1d45272b-e1eb-4904-b319-678f93f40f58\"}\n[2026-05-11 12:46:02] local.ERROR: Failed to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"888ff0f2-b31e-4121-8fc1-8f057f6c550b\",\"trace_id\":\"1d45272b-e1eb-4904-b319-678f93f40f58\"}\n[2026-05-11 12:46:02] local.NOTICE: Repairing HubSpot tokens end {\"total\":3,\"fixed\":0,\"failed\":3} {\"correlation_id\":\"888ff0f2-b31e-4121-8fc1-8f057f6c550b\",\"trace_id\":\"1d45272b-e1eb-4904-b319-678f93f40f58\"}\n[2026-05-11 12:46:09] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"90466c54-393f-4c2e-a698-9e7f83b50b53\",\"trace_id\":\"cf333f1c-f9d1-429f-83cb-463a4485d10b\"}\n[2026-05-11 12:46:09] local.INFO: [HubSpot Journal Command] Starting polling service {\"correlation_id\":\"7bd9aaef-eaa2-4ead-9b6a-a9ac5745fde7\",\"trace_id\":\"0c0fd329-f61e-4a18-8770-7b7214f3ce1e\"}\n[2026-05-11 12:46:09] local.INFO: [HubSpot Journal Polling] Service starting {\"memory_limit\":\"256M\",\"max_execution_time\":\"0\",\"initial_memory_mb\":60.0} {\"correlation_id\":\"7bd9aaef-eaa2-4ead-9b6a-a9ac5745fde7\",\"trace_id\":\"0c0fd329-f61e-4a18-8770-7b7214f3ce1e\"}\n[2026-05-11 12:46:09] local.INFO: [HubSpot Journal Polling] Acquired polling lock {\"expires_at\":\"2026-05-11T12:48:09.496609Z\"} {\"correlation_id\":\"7bd9aaef-eaa2-4ead-9b6a-a9ac5745fde7\",\"trace_id\":\"0c0fd329-f61e-4a18-8770-7b7214f3ce1e\"}\n[2026-05-11 12:46:09] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"90466c54-393f-4c2e-a698-9e7f83b50b53\",\"trace_id\":\"cf333f1c-f9d1-429f-83cb-463a4485d10b\"}\n[2026-05-11 12:46:09] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"7bd9aaef-eaa2-4ead-9b6a-a9ac5745fde7\",\"trace_id\":\"0c0fd329-f61e-4a18-8770-7b7214f3ce1e\"}\n[2026-05-11 12:46:15] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"7bd9aaef-eaa2-4ead-9b6a-a9ac5745fde7\",\"trace_id\":\"0c0fd329-f61e-4a18-8770-7b7214f3ce1e\"}\n[2026-05-11 12:46:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"e14cd84c-cf16-4462-99d7-b402b767783c\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:16] local.INFO: Dispatching activity sync job {\"import_id\":812738,\"provider\":\"twilio-flex\",\"team\":\"jiminny\"} {\"correlation_id\":\"e14cd84c-cf16-4462-99d7-b402b767783c\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:16] local.INFO: Dispatching activity sync job {\"import_id\":812739,\"provider\":\"xant\",\"team\":\"jiminny\"} {\"correlation_id\":\"e14cd84c-cf16-4462-99d7-b402b767783c\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:16] local.INFO: Dispatching activity sync job {\"import_id\":812740,\"provider\":\"apollo\",\"team\":\"jiminny\"} {\"correlation_id\":\"e14cd84c-cf16-4462-99d7-b402b767783c\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:16] local.INFO: Dispatching activity sync job {\"import_id\":812741,\"provider\":\"groove\",\"team\":\"jiminny\"} {\"correlation_id\":\"e14cd84c-cf16-4462-99d7-b402b767783c\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:16] local.INFO: Dispatching activity sync job {\"import_id\":812742,\"provider\":\"twilio-video\",\"team\":\"jiminny\"} {\"correlation_id\":\"e14cd84c-cf16-4462-99d7-b402b767783c\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:16] local.INFO: Dispatching activity sync job {\"import_id\":812743,\"provider\":\"hubspot\",\"team\":\"hubspot\"} {\"correlation_id\":\"e14cd84c-cf16-4462-99d7-b402b767783c\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"e14cd84c-cf16-4462-99d7-b402b767783c\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:19] local.WARNING: [Salesforce] Account not connected for user {\"userId\":\"cdf8b554-d951-4758-bc2b-c1b85d1cd0b9\",\"account\":null} {\"correlation_id\":\"314ab941-a2cf-4bf4-9fa6-75630ce5d14f\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:19] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"salesforce\",\"crm_owner\":3,\"team_id\":1} {\"correlation_id\":\"314ab941-a2cf-4bf4-9fa6-75630ce5d14f\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:19] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"salesforce\",\"team_id\":1} {\"correlation_id\":\"314ab941-a2cf-4bf4-9fa6-75630ce5d14f\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:19] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"salesforce\",\"team_id\":1} {\"correlation_id\":\"314ab941-a2cf-4bf4-9fa6-75630ce5d14f\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:19] local.ALERT: [SyncActivity] Failed {\"import_id\":812738,\"provider\":\"twilio-flex\",\"provider_id\":317,\"team\":\"jiminny\",\"team_id\":1,\"reason\":\"Social account for Salesforce cannot be found. Please login to Jiminny to connect.\",\"file\":\"/home/jiminny/app/Services/Crm/BaseService.php\",\"line\":646} {\"correlation_id\":\"314ab941-a2cf-4bf4-9fa6-75630ce5d14f\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:19] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"4a597ad0-48b3-45bc-8317-ec5987c035ee\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:19] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"4a597ad0-48b3-45bc-8317-ec5987c035ee\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:19] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"4a597ad0-48b3-45bc-8317-ec5987c035ee\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:20] local.ALERT: [SyncActivity] Failed {\"import_id\":812739,\"provider\":\"xant\",\"provider_id\":161,\"team\":\"jiminny\",\"team_id\":1,\"reason\":\"Activity Provider account not connected.\",\"file\":\"/home/jiminny/app/Services/Activity/ActivityProviderService.php\",\"line\":174} {\"correlation_id\":\"4a597ad0-48b3-45bc-8317-ec5987c035ee\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:20] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"438da0cc-e01d-445c-895b-5346839e3876\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:20] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"438da0cc-e01d-445c-895b-5346839e3876\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:20] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"438da0cc-e01d-445c-895b-5346839e3876\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:20] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"7bd9aaef-eaa2-4ead-9b6a-a9ac5745fde7\",\"trace_id\":\"0c0fd329-f61e-4a18-8770-7b7214f3ce1e\"}\n[2026-05-11 12:46:21] local.ALERT: [SyncActivity] Failed {\"import_id\":812740,\"provider\":\"apollo\",\"provider_id\":441,\"team\":\"jiminny\",\"team_id\":1,\"reason\":\"Activity Provider account not connected.\",\"file\":\"/home/jiminny/app/Services/Activity/ActivityProviderService.php\",\"line\":174} {\"correlation_id\":\"438da0cc-e01d-445c-895b-5346839e3876\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:22] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"e272e968-331f-4a66-b4a7-f6f9f08c3515\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:22] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"e272e968-331f-4a66-b4a7-f6f9f08c3515\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:22] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"e272e968-331f-4a66-b4a7-f6f9f08c3515\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:22] local.ALERT: [SyncActivity] Failed {\"import_id\":812741,\"provider\":\"groove\",\"provider_id\":228,\"team\":\"jiminny\",\"team_id\":1,\"reason\":\"Activity Provider account not connected.\",\"file\":\"/home/jiminny/app/Services/Activity/ActivityProviderService.php\",\"line\":174} {\"correlation_id\":\"e272e968-331f-4a66-b4a7-f6f9f08c3515\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:23] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"b9150205-8a0f-43b6-856e-2bff769ec03b\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:23] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1173,\"provider\":\"salesforce\"} {\"correlation_id\":\"b9150205-8a0f-43b6-856e-2bff769ec03b\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:23] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"b9150205-8a0f-43b6-856e-2bff769ec03b\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:24] local.ALERT: [SyncActivity] Failed {\"import_id\":812742,\"provider\":\"twilio-video\",\"provider_id\":243,\"team\":\"jiminny\",\"team_id\":1,\"reason\":\"Activity Provider account not connected.\",\"file\":\"/home/jiminny/app/Services/Activity/ActivityProviderService.php\",\"line\":174} {\"correlation_id\":\"b9150205-8a0f-43b6-856e-2bff769ec03b\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:24] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c7c02bd3-e1e5-4734-b70f-f6eb089120d1\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:24] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"c7c02bd3-e1e5-4734-b70f-f6eb089120d1\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:24] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"c7c02bd3-e1e5-4734-b70f-f6eb089120d1\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:24] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":89,\"team_id\":2} {\"correlation_id\":\"c7c02bd3-e1e5-4734-b70f-f6eb089120d1\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:24] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":408,\"provider\":\"hubspot\"} {\"correlation_id\":\"c7c02bd3-e1e5-4734-b70f-f6eb089120d1\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:24] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":408,\"provider\":\"hubspot\"} {\"correlation_id\":\"c7c02bd3-e1e5-4734-b70f-f6eb089120d1\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:24] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"c7c02bd3-e1e5-4734-b70f-f6eb089120d1\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:24] local.INFO: [SyncActivity] Start {\"import_id\":812743,\"provider\":\"hubspot\",\"provider_id\":31,\"team\":\"hubspot\",\"team_id\":2} {\"correlation_id\":\"c7c02bd3-e1e5-4734-b70f-f6eb089120d1\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:24] local.INFO: [HubSpot] Search calls for period {\"from\":\"2026-05-11 12:29:00\",\"to\":\"2026-05-11 12:45:00\"} {\"correlation_id\":\"c7c02bd3-e1e5-4734-b70f-f6eb089120d1\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:25] local.INFO: [SyncActivity] End {\"import_id\":812743,\"provider\":\"hubspot\",\"provider_id\":31,\"team\":\"hubspot\",\"team_id\":2} {\"correlation_id\":\"c7c02bd3-e1e5-4734-b70f-f6eb089120d1\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:25] local.INFO: [SyncActivity] Memory usage {\"import_id\":812743,\"provider\":\"hubspot\",\"provider_id\":31,\"team\":\"hubspot\",\"team_id\":2,\"memory_usage\":25442000,\"memory_real_usage\":67108864,\"pid\":74086} {\"correlation_id\":\"c7c02bd3-e1e5-4734-b70f-f6eb089120d1\",\"trace_id\":\"e16753f0-4c58-49f9-ab1e-19b26b1d2bee\"}\n[2026-05-11 12:46:28] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"0346e786-2563-44fc-a13c-5f1787538233\",\"trace_id\":\"d839f681-855d-4f8d-a2ac-f6af79b8dca1\"}\n[2026-05-11 12:46:29] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"0346e786-2563-44fc-a13c-5f1787538233\",\"trace_id\":\"d839f681-855d-4f8d-a2ac-f6af79b8dca1\"}\n[2026-05-11 12:46:36] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"7bd9aaef-eaa2-4ead-9b6a-a9ac5745fde7\",\"trace_id\":\"0c0fd329-f61e-4a18-8770-7b7214f3ce1e\"}\n[2026-05-11 12:46:36] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"nudges:send\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"dee73d2c-bdd6-4e73-8303-9b915466101c\",\"trace_id\":\"8fb41652-d98b-4387-95ae-378e191d4765\"}\n[2026-05-11 12:46:36] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"nudges:send\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"dee73d2c-bdd6-4e73-8303-9b915466101c\",\"trace_id\":\"8fb41652-d98b-4387-95ae-378e191d4765\"}\n[2026-05-11 12:46:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"jiminny:playlists:normalize-sort\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"7f4c99a0-a910-4165-b826-2fec7c4111df\",\"trace_id\":\"f498d542-27b5-4668-8f81-9c19f3b82469\"}\n[2026-05-11 12:46:42] local.INFO: [Jiminny\\Component\\Playlist\\Command\\NormalizeSortCommand::handle] starting. {\"playlists\":[]} {\"correlation_id\":\"7f4c99a0-a910-4165-b826-2fec7c4111df\",\"trace_id\":\"f498d542-27b5-4668-8f81-9c19f3b82469\"}\n[2026-05-11 12:46:42] local.INFO: [Jiminny\\Component\\Playlist\\Command\\NormalizeSortCommand::handle] finished. {\"normalizedPlaylists\":[],\"deletedPlaylists\":[]} {\"correlation_id\":\"7f4c99a0-a910-4165-b826-2fec7c4111df\",\"trace_id\":\"f498d542-27b5-4668-8f81-9c19f3b82469\"}\n[2026-05-11 12:46:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"jiminny:playlists:normalize-sort\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"7f4c99a0-a910-4165-b826-2fec7c4111df\",\"trace_id\":\"f498d542-27b5-4668-8f81-9c19f3b82469\"}\n[2026-05-11 12:47:06] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"7bd9aaef-eaa2-4ead-9b6a-a9ac5745fde7\",\"trace_id\":\"0c0fd329-f61e-4a18-8770-7b7214f3ce1e\"}\n[2026-05-11 12:47:06] local.WARNING: [HubSpot Journal Polling] Maximum empty results reached, stopping {\"empty_results\":5,\"max_empty_results\":5} {\"correlation_id\":\"7bd9aaef-eaa2-4ead-9b6a-a9ac5745fde7\",\"trace_id\":\"0c0fd329-f61e-4a18-8770-7b7214f3ce1e\"}\n[2026-05-11 12:47:06] local.WARNING: [HubSpot Journal Polling] Maximum empty results reached, stopping {\"empty_results\":5,\"max_empty_results\":5} {\"correlation_id\":\"7bd9aaef-eaa2-4ead-9b6a-a9ac5745fde7\",\"trace_id\":\"0c0fd329-f61e-4a18-8770-7b7214f3ce1e\"}\n[2026-05-11 12:47:06] local.INFO: [HubSpot Journal Polling] Service ending {\"runtime_seconds\":57,\"total_cycles\":5,\"files_downloaded\":0,\"empty_files\":0,\"other_portal_skipped\":0,\"total_events\":0,\"events_per_file\":0,\"avg_api_ms\":228.7,\"avg_download_ms\":0.0,\"avg_transform_ms\":0.0,\"avg_process_ms\":0.0,\"peak_memory_mb\":99.73} {\"correlation_id\":\"7bd9aaef-eaa2-4ead-9b6a-a9ac5745fde7\",\"trace_id\":\"0c0fd329-f61e-4a18-8770-7b7214f3ce1e\"}\n[2026-05-11 12:47:07] local.INFO: [HubSpot Journal Polling] Saved offset to database on cleanup {\"offset\":\"019e15a9-9ea0-7da7-87bc-82592e3ccf0d\"} {\"correlation_id\":\"7bd9aaef-eaa2-4ead-9b6a-a9ac5745fde7\",\"trace_id\":\"0c0fd329-f61e-4a18-8770-7b7214f3ce1e\"}\n[2026-05-11 12:47:07] local.INFO: [HubSpot Journal Polling] Released polling lock {\"correlation_id\":\"7bd9aaef-eaa2-4ead-9b6a-a9ac5745fde7\",\"trace_id\":\"0c0fd329-f61e-4a18-8770-7b7214f3ce1e\"}\n[2026-05-11 12:47:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"1ae04424-dc91-4c3e-a688-a8a520c7c2e2\",\"trace_id\":\"97d7aa88-b42b-42cf-9f6b-b9d54e232360\"}\n[2026-05-11 12:47:15] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"1ae04424-dc91-4c3e-a688-a8a520c7c2e2\",\"trace_id\":\"97d7aa88-b42b-42cf-9f6b-b9d54e232360\"}\n[2026-05-11 12:47:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"1ae04424-dc91-4c3e-a688-a8a520c7c2e2\",\"trace_id\":\"97d7aa88-b42b-42cf-9f6b-b9d54e232360\"}\n[2026-05-11 12:47:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"6f760468-fc36-4508-adfe-c5f240cb0fec\",\"trace_id\":\"8f86bc50-8b95-4533-84b0-1e8ab0c04546\"}\n[2026-05-11 12:47:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"6f760468-fc36-4508-adfe-c5f240cb0fec\",\"trace_id\":\"8f86bc50-8b95-4533-84b0-1e8ab0c04546\"}\n[2026-05-11 12:47:22] local.NOTICE: Monitoring start {\"correlation_id\":\"489089ce-8bf4-4ed8-aaed-83c8ac3b3b3e\",\"trace_id\":\"261b4f71-0350-4b65-97d9-9004e023fab3\"}\n[2026-05-11 12:47:22] local.NOTICE: Monitoring end {\"correlation_id\":\"489089ce-8bf4-4ed8-aaed-83c8ac3b3b3e\",\"trace_id\":\"261b4f71-0350-4b65-97d9-9004e023fab3\"}\n[2026-05-11 12:47:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"f1fa5112-897f-49a0-8939-13e593afc447\",\"trace_id\":\"fa69dca2-8695-49a2-b9fa-114d05e3f387\"}\n[2026-05-11 12:47:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"f1fa5112-897f-49a0-8939-13e593afc447\",\"trace_id\":\"fa69dca2-8695-49a2-b9fa-114d05e3f387\"}\n[2026-05-11 12:47:34] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a090d8fe-acd3-4b32-aa48-08772ad5bf37\",\"trace_id\":\"f01944c9-a3a5-4c79-bee4-63e4317f5dfb\"}\n[2026-05-11 12:47:34] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"a090d8fe-acd3-4b32-aa48-08772ad5bf37\",\"trace_id\":\"f01944c9-a3a5-4c79-bee4-63e4317f5dfb\"}\n[2026-05-11 12:47:34] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"a090d8fe-acd3-4b32-aa48-08772ad5bf37\",\"trace_id\":\"f01944c9-a3a5-4c79-bee4-63e4317f5dfb\"}\n[2026-05-11 12:47:34] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a090d8fe-acd3-4b32-aa48-08772ad5bf37\",\"trace_id\":\"f01944c9-a3a5-4c79-bee4-63e4317f5dfb\"}\n[2026-05-11 12:47:40] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"e9cf7f2a-85a0-49fa-b634-b06bf83554c0\",\"trace_id\":\"6876026f-1013-4a0a-9b17-914a3ae58d04\"}\n[2026-05-11 12:47:40] local.INFO: [EmailSchedule] STARTING batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"e9cf7f2a-85a0-49fa-b634-b06bf83554c0\",\"trace_id\":\"6876026f-1013-4a0a-9b17-914a3ae58d04\"}\n[2026-05-11 12:47:40] local.INFO: [EmailSchedule] FINISHED batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"e9cf7f2a-85a0-49fa-b634-b06bf83554c0\",\"trace_id\":\"6876026f-1013-4a0a-9b17-914a3ae58d04\"}\n[2026-05-11 12:47:40] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"e9cf7f2a-85a0-49fa-b634-b06bf83554c0\",\"trace_id\":\"6876026f-1013-4a0a-9b17-914a3ae58d04\"}\n[2026-05-11 12:47:41] local.INFO: [Jiminny\\Jobs\\Mailbox\\CreateBatches] processed 2 inboxes and created 0 batches {\"userId\":null,\"batchSize\":30,\"maxBatches\":1000} {\"correlation_id\":\"0574fa9b-5bc5-4486-8f14-eff5332fc4a3\",\"trace_id\":\"6876026f-1013-4a0a-9b17-914a3ae58d04\"}\n[2026-05-11 12:48:11] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"4d776ef6-38be-4ab8-8bce-f7982f89bdee\",\"trace_id\":\"ac6bd687-ca1b-4f51-8960-f0582a9f03c4\"}\n[2026-05-11 12:48:11] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"4d776ef6-38be-4ab8-8bce-f7982f89bdee\",\"trace_id\":\"ac6bd687-ca1b-4f51-8960-f0582a9f03c4\"}\n[2026-05-11 12:48:11] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"4d776ef6-38be-4ab8-8bce-f7982f89bdee\",\"trace_id\":\"ac6bd687-ca1b-4f51-8960-f0582a9f03c4\"}\n[2026-05-11 12:48:14] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"50783c0e-040a-41d8-a097-b48d6fe5e789\",\"trace_id\":\"eddd1fb7-6e33-42a2-bc96-20b36fbd4218\"}\n[2026-05-11 12:48:14] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"50783c0e-040a-41d8-a097-b48d6fe5e789\",\"trace_id\":\"eddd1fb7-6e33-42a2-bc96-20b36fbd4218\"}\n[2026-05-11 12:48:17] local.NOTICE: Monitoring start {\"correlation_id\":\"74523c44-c5c2-41ae-a071-0a855253c2a4\",\"trace_id\":\"7b6ae353-a43f-48c2-a4f2-ea36886f0095\"}\n[2026-05-11 12:48:17] local.NOTICE: Monitoring end {\"correlation_id\":\"74523c44-c5c2-41ae-a071-0a855253c2a4\",\"trace_id\":\"7b6ae353-a43f-48c2-a4f2-ea36886f0095\"}\n[2026-05-11 12:48:20] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"769235ff-adf4-47cd-adca-67b5b8ac7b23\",\"trace_id\":\"82cb4a65-4fdf-4c66-ab18-6ea2537798f2\"}\n[2026-05-11 12:48:20] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"769235ff-adf4-47cd-adca-67b5b8ac7b23\",\"trace_id\":\"82cb4a65-4fdf-4c66-ab18-6ea2537798f2\"}\n[2026-05-11 12:48:23] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"0cb41424-1ae5-4d5e-94b6-47f4430a8193\",\"trace_id\":\"b8cdf2e0-aa0c-429f-bea2-2ee6bc64b311\"}\n[2026-05-11 12:48:23] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"0cb41424-1ae5-4d5e-94b6-47f4430a8193\",\"trace_id\":\"b8cdf2e0-aa0c-429f-bea2-2ee6bc64b311\"}\n[2026-05-11 12:48:23] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"0cb41424-1ae5-4d5e-94b6-47f4430a8193\",\"trace_id\":\"b8cdf2e0-aa0c-429f-bea2-2ee6bc64b311\"}\n[2026-05-11 12:48:23] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"0cb41424-1ae5-4d5e-94b6-47f4430a8193\",\"trace_id\":\"b8cdf2e0-aa0c-429f-bea2-2ee6bc64b311\"}\n[2026-05-11 12:48:26] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"06a20de6-c66f-4c0d-90d3-5d9168d5fef8\",\"trace_id\":\"43bd5483-44ec-42e0-84b4-92edd7d084e7\"}\n[2026-05-11 12:48:26] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 12:46:00, 2026-05-11 12:48:00] {\"correlation_id\":\"06a20de6-c66f-4c0d-90d3-5d9168d5fef8\",\"trace_id\":\"43bd5483-44ec-42e0-84b4-92edd7d084e7\"}\n[2026-05-11 12:48:26] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 12:46:00, 2026-05-11 12:48:00] {\"correlation_id\":\"06a20de6-c66f-4c0d-90d3-5d9168d5fef8\",\"trace_id\":\"43bd5483-44ec-42e0-84b4-92edd7d084e7\"}\n[2026-05-11 12:48:26] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"06a20de6-c66f-4c0d-90d3-5d9168d5fef8\",\"trace_id\":\"43bd5483-44ec-42e0-84b4-92edd7d084e7\"}\n[2026-05-11 12:48:34] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"f9f326d2-a491-49a5-b7d0-e8dea3dbb227\",\"trace_id\":\"790d4388-07d6-4b23-b0b8-1be65299ab66\"}\n[2026-05-11 12:48:34] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"f9f326d2-a491-49a5-b7d0-e8dea3dbb227\",\"trace_id\":\"790d4388-07d6-4b23-b0b8-1be65299ab66\"}\n[2026-05-11 12:49:07] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"228be68f-ffcd-44b0-806e-d1d1175abd7f\",\"trace_id\":\"e5f8da62-3f7f-4f47-b8d9-8deba993ae36\"}\n[2026-05-11 12:49:07] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"228be68f-ffcd-44b0-806e-d1d1175abd7f\",\"trace_id\":\"e5f8da62-3f7f-4f47-b8d9-8deba993ae36\"}\n[2026-05-11 12:49:07] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"228be68f-ffcd-44b0-806e-d1d1175abd7f\",\"trace_id\":\"e5f8da62-3f7f-4f47-b8d9-8deba993ae36\"}\n[2026-05-11 12:49:10] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"f8b64fda-f106-426e-8b95-c2c7139f228c\",\"trace_id\":\"452d2a22-10d2-43ac-a8d1-9e2dcc5cab0b\"}\n[2026-05-11 12:49:10] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"f8b64fda-f106-426e-8b95-c2c7139f228c\",\"trace_id\":\"452d2a22-10d2-43ac-a8d1-9e2dcc5cab0b\"}\n[2026-05-11 12:49:17] local.NOTICE: Monitoring start {\"correlation_id\":\"ed2e5750-f4f0-41c4-ba71-9b85d4eabd0f\",\"trace_id\":\"0d06e89f-e00e-42e3-a8cb-09fd88372eab\"}\n[2026-05-11 12:49:18] local.NOTICE: Monitoring end {\"correlation_id\":\"ed2e5750-f4f0-41c4-ba71-9b85d4eabd0f\",\"trace_id\":\"0d06e89f-e00e-42e3-a8cb-09fd88372eab\"}\n[2026-05-11 12:49:22] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a00c0435-18a1-4061-8227-eb8f878e29d0\",\"trace_id\":\"6f1342e2-e9c7-4e1a-b177-322a920d53df\"}\n[2026-05-11 12:49:23] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a00c0435-18a1-4061-8227-eb8f878e29d0\",\"trace_id\":\"6f1342e2-e9c7-4e1a-b177-322a920d53df\"}\n[2026-05-11 12:49:26] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"86e3c595-3411-48c4-a0f7-c54940677141\",\"trace_id\":\"21c88c03-af75-4f8d-aa32-b09e1f594a06\"}\n[2026-05-11 12:49:26] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"86e3c595-3411-48c4-a0f7-c54940677141\",\"trace_id\":\"21c88c03-af75-4f8d-aa32-b09e1f594a06\"}\n[2026-05-11 12:49:26] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"86e3c595-3411-48c4-a0f7-c54940677141\",\"trace_id\":\"21c88c03-af75-4f8d-aa32-b09e1f594a06\"}\n[2026-05-11 12:49:26] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"86e3c595-3411-48c4-a0f7-c54940677141\",\"trace_id\":\"21c88c03-af75-4f8d-aa32-b09e1f594a06\"}\n[2026-05-11 12:50:08] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"0b57497a-53b1-4a32-a6da-06fcf73b0b2a\",\"trace_id\":\"2ba53a97-280f-4669-8974-69726a819fa9\"}\n[2026-05-11 12:50:08] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"0b57497a-53b1-4a32-a6da-06fcf73b0b2a\",\"trace_id\":\"2ba53a97-280f-4669-8974-69726a819fa9\"}\n[2026-05-11 12:50:08] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"0b57497a-53b1-4a32-a6da-06fcf73b0b2a\",\"trace_id\":\"2ba53a97-280f-4669-8974-69726a819fa9\"}\n[2026-05-11 12:50:20] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"5852b3e5-9f90-4a2b-a431-77efe6947819\",\"trace_id\":\"20005c85-902e-49ae-ac11-33e437461d28\"}\n[2026-05-11 12:50:21] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"5852b3e5-9f90-4a2b-a431-77efe6947819\",\"trace_id\":\"20005c85-902e-49ae-ac11-33e437461d28\"}\n[2026-05-11 12:50:31] local.NOTICE: Monitoring start {\"correlation_id\":\"92c9c3cb-3e72-4e9e-b9ab-9bc420d1bdd8\",\"trace_id\":\"21345f63-83e6-44b6-b0e5-950dd5daae14\"}\n[2026-05-11 12:50:31] local.NOTICE: Monitoring end {\"correlation_id\":\"92c9c3cb-3e72-4e9e-b9ab-9bc420d1bdd8\",\"trace_id\":\"21345f63-83e6-44b6-b0e5-950dd5daae14\"}\n[2026-05-11 12:50:38] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"3722715c-5634-4e21-be1f-b9761a11f92d\",\"trace_id\":\"655a02f1-2476-4c79-9ebb-70136a54989c\"}\n[2026-05-11 12:50:38] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"3722715c-5634-4e21-be1f-b9761a11f92d\",\"trace_id\":\"655a02f1-2476-4c79-9ebb-70136a54989c\"}\n[2026-05-11 12:50:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"a0ae6c4d-bee8-4247-9247-0bd4b4e54d16\",\"trace_id\":\"f12308b8-6240-4f0f-8001-eb991af7a449\"}\n[2026-05-11 12:50:42] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"a0ae6c4d-bee8-4247-9247-0bd4b4e54d16\",\"trace_id\":\"f12308b8-6240-4f0f-8001-eb991af7a449\"}\n[2026-05-11 12:50:42] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"a0ae6c4d-bee8-4247-9247-0bd4b4e54d16\",\"trace_id\":\"f12308b8-6240-4f0f-8001-eb991af7a449\"}\n[2026-05-11 12:50:42] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"a0ae6c4d-bee8-4247-9247-0bd4b4e54d16\",\"trace_id\":\"f12308b8-6240-4f0f-8001-eb991af7a449\"}\n[2026-05-11 12:50:49] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"1aef586a-70e6-472c-8855-be25a1bcebd4\",\"trace_id\":\"7383dc14-1423-4c19-8188-43d954f198f0\"}\n[2026-05-11 12:50:49] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 12:48:00, 2026-05-11 12:50:00] {\"correlation_id\":\"1aef586a-70e6-472c-8855-be25a1bcebd4\",\"trace_id\":\"7383dc14-1423-4c19-8188-43d954f198f0\"}\n[2026-05-11 12:50:49] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 12:48:00, 2026-05-11 12:50:00] {\"correlation_id\":\"1aef586a-70e6-472c-8855-be25a1bcebd4\",\"trace_id\":\"7383dc14-1423-4c19-8188-43d954f198f0\"}\n[2026-05-11 12:50:49] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"1aef586a-70e6-472c-8855-be25a1bcebd4\",\"trace_id\":\"7383dc14-1423-4c19-8188-43d954f198f0\"}\n[2026-05-11 12:50:53] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"8a6d095d-5220-484e-860b-26ff21bcd305\",\"trace_id\":\"cf9ff408-c72e-4b98-9f67-fb7e2a9abbe3\"}\n[2026-05-11 12:50:53] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:purge-stale\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"8a6d095d-5220-484e-860b-26ff21bcd305\",\"trace_id\":\"cf9ff408-c72e-4b98-9f67-fb7e2a9abbe3\"}\n[2026-05-11 12:50:57] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"391dea49-ed4f-41e3-97fb-17e2a305cc66\",\"trace_id\":\"61ccab53-6ded-42c1-ba75-91308adcc0bf\"}\n[2026-05-11 12:50:58] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:text-relay:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"391dea49-ed4f-41e3-97fb-17e2a305cc66\",\"trace_id\":\"61ccab53-6ded-42c1-ba75-91308adcc0bf\"}\n[2026-05-11 12:51:04] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"94dc8912-6e32-4085-b4f5-923d235942dd\",\"trace_id\":\"7f9da85c-9fea-4331-8f60-9faf3555e9e7\"}\n[2026-05-11 12:51:05] local.INFO: Running pre-meeting notification command {\"correlation_id\":\"94dc8912-6e32-4085-b4f5-923d235942dd\",\"trace_id\":\"7f9da85c-9fea-4331-8f60-9faf3555e9e7\"}\n[2026-05-11 12:51:05] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-notification\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"94dc8912-6e32-4085-b4f5-923d235942dd\",\"trace_id\":\"7f9da85c-9fea-4331-8f60-9faf3555e9e7\"}\n[2026-05-11 12:51:08] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"d99e2e78-6104-404c-a4c3-843eeb7dabc1\",\"trace_id\":\"869fd24f-6bab-4088-94f1-fc8ac03084b2\"}\n[2026-05-11 12:51:08] local.INFO: Running conference:monitor:start command for activities in (2026-05-11 12:41:00, 2026-05-11 12:46:00] {\"correlation_id\":\"d99e2e78-6104-404c-a4c3-843eeb7dabc1\",\"trace_id\":\"869fd24f-6bab-4088-94f1-fc8ac03084b2\"}\n[2026-05-11 12:51:08] local.INFO: [conference:monitor:start] No activities found in (2026-05-11 12:41:00, 2026-05-11 12:46:00] {\"correlation_id\":\"d99e2e78-6104-404c-a4c3-843eeb7dabc1\",\"trace_id\":\"869fd24f-6bab-4088-94f1-fc8ac03084b2\"}\n[2026-05-11 12:51:08] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:start\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"d99e2e78-6104-404c-a4c3-843eeb7dabc1\",\"trace_id\":\"869fd24f-6bab-4088-94f1-fc8ac03084b2\"}\n[2026-05-11 12:51:11] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"58a88182-b00c-4494-8cbf-4ee0929e201b\",\"trace_id\":\"0e2515cf-09ef-45d1-8919-9fe046a474b8\"}\n[2026-05-11 12:51:11] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesEnded {\"from\":\"12:46\",\"to\":\"12:51\"} {\"correlation_id\":\"58a88182-b00c-4494-8cbf-4ee0929e201b\",\"trace_id\":\"0e2515cf-09ef-45d1-8919-9fe046a474b8\"}\n[2026-05-11 12:51:11] local.INFO: conference:monitor:end:Jiminny\\Console\\Commands\\Activities\\MonitorMeetingEndCommand::logActivitiesWithUnfinishedSession {\"from\":\"02:41\",\"to\":\"02:46\"} {\"correlation_id\":\"58a88182-b00c-4494-8cbf-4ee0929e201b\",\"trace_id\":\"0e2515cf-09ef-45d1-8919-9fe046a474b8\"}\n[2026-05-11 12:51:11] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:end\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"58a88182-b00c-4494-8cbf-4ee0929e201b\",\"trace_id\":\"0e2515cf-09ef-45d1-8919-9fe046a474b8\"}\n[2026-05-11 12:51:13] local.NOTICE: Repairing HubSpot tokens start {\"correlation_id\":\"3e88b7cd-4af9-4222-8354-4b8f697285f3\",\"trace_id\":\"0c0c71e6-0143-43e7-bb56-412dd2c2e0ea\"}\n[2026-05-11 12:51:13] local.INFO: Trying to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\"} {\"correlation_id\":\"3e88b7cd-4af9-4222-8354-4b8f697285f3\",\"trace_id\":\"0c0c71e6-0143-43e7-bb56-412dd2c2e0ea\"}\n[2026-05-11 12:51:13] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"3e88b7cd-4af9-4222-8354-4b8f697285f3\",\"trace_id\":\"0c0c71e6-0143-43e7-bb56-412dd2c2e0ea\"}\n[2026-05-11 12:51:13] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":59,\"provider\":\"hubspot\",\"refreshToken\":\"97b78f6e2cc49965c00c2492b602b02708b1392551e6b3f113fbaa48992af90b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"3e88b7cd-4af9-4222-8354-4b8f697285f3\",\"trace_id\":\"0c0c71e6-0143-43e7-bb56-412dd2c2e0ea\"}\n[2026-05-11 12:51:14] local.ERROR: Failed to refresh HubSpot token {\"account_id\":59,\"updated_at\":\"2025-10-03 09:32:05\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"3e88b7cd-4af9-4222-8354-4b8f697285f3\",\"trace_id\":\"0c0c71e6-0143-43e7-bb56-412dd2c2e0ea\"}\n[2026-05-11 12:51:14] local.INFO: Trying to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\"} {\"correlation_id\":\"3e88b7cd-4af9-4222-8354-4b8f697285f3\",\"trace_id\":\"0c0c71e6-0143-43e7-bb56-412dd2c2e0ea\"}\n[2026-05-11 12:51:14] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"3e88b7cd-4af9-4222-8354-4b8f697285f3\",\"trace_id\":\"0c0c71e6-0143-43e7-bb56-412dd2c2e0ea\"}\n[2026-05-11 12:51:14] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":306,\"provider\":\"hubspot\",\"refreshToken\":\"6fa6aa8cc641d131231acc3470f5c03cb3b07b2e580fb18f8acb3b1dbb72549b\",\"state\":\"full-refresh\"} {\"correlation_id\":\"3e88b7cd-4af9-4222-8354-4b8f697285f3\",\"trace_id\":\"0c0c71e6-0143-43e7-bb56-412dd2c2e0ea\"}\n[2026-05-11 12:51:14] local.ERROR: Failed to refresh HubSpot token {\"account_id\":306,\"updated_at\":\"2023-11-27 09:30:03\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"3e88b7cd-4af9-4222-8354-4b8f697285f3\",\"trace_id\":\"0c0c71e6-0143-43e7-bb56-412dd2c2e0ea\"}\n[2026-05-11 12:51:14] local.INFO: Trying to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\"} {\"correlation_id\":\"3e88b7cd-4af9-4222-8354-4b8f697285f3\",\"trace_id\":\"0c0c71e6-0143-43e7-bb56-412dd2c2e0ea\"}\n[2026-05-11 12:51:14] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"3e88b7cd-4af9-4222-8354-4b8f697285f3\",\"trace_id\":\"0c0c71e6-0143-43e7-bb56-412dd2c2e0ea\"}\n[2026-05-11 12:51:14] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1372,\"provider\":\"hubspot\",\"refreshToken\":\"9aa73948c761da29dce46c177cf9aee1fde483a44169ca38723f9f0597d7a8c4\",\"state\":\"full-refresh\"} {\"correlation_id\":\"3e88b7cd-4af9-4222-8354-4b8f697285f3\",\"trace_id\":\"0c0c71e6-0143-43e7-bb56-412dd2c2e0ea\"}\n[2026-05-11 12:51:15] local.ERROR: Failed to refresh HubSpot token {\"account_id\":1372,\"updated_at\":\"2025-10-02 14:47:06\",\"reason\":\"missing or invalid refresh token\",\"previous\":\"\"} {\"correlation_id\":\"3e88b7cd-4af9-4222-8354-4b8f697285f3\",\"trace_id\":\"0c0c71e6-0143-43e7-bb56-412dd2c2e0ea\"}\n[2026-05-11 12:51:15] local.NOTICE: Repairing HubSpot tokens end {\"total\":3,\"fixed\":0,\"failed\":3} {\"correlation_id\":\"3e88b7cd-4af9-4222-8354-4b8f697285f3\",\"trace_id\":\"0c0c71e6-0143-43e7-bb56-412dd2c2e0ea\"}\n[2026-05-11 12:51:28] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"jiminny:transcription:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"cf3b85e7-bf94-4bad-b034-45899029fb46\",\"trace_id\":\"8ebbced3-1771-4640-8e58-b20c4adc6535\"}\n[2026-05-11 12:51:29] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"62fd3cf7-c6eb-4317-a2e2-56d791e4f57d\",\"trace_id\":\"418ca9b2-4855-4b28-80d2-ea8cf2de6e64\"}\n[2026-05-11 12:51:29] local.INFO: [HubSpot Journal Command] Starting polling service {\"correlation_id\":\"e0275d48-0053-4811-8f69-7a087bdf45dd\",\"trace_id\":\"524c9dd8-6e05-491b-a916-3dc386ced5f0\"}\n[2026-05-11 12:51:29] local.INFO: [HubSpot Journal Polling] Service starting {\"memory_limit\":\"256M\",\"max_execution_time\":\"0\",\"initial_memory_mb\":60.0} {\"correlation_id\":\"e0275d48-0053-4811-8f69-7a087bdf45dd\",\"trace_id\":\"524c9dd8-6e05-491b-a916-3dc386ced5f0\"}\n[2026-05-11 12:51:29] local.INFO: [HubSpot Journal Polling] Acquired polling lock {\"expires_at\":\"2026-05-11T12:53:29.135827Z\"} {\"correlation_id\":\"e0275d48-0053-4811-8f69-7a087bdf45dd\",\"trace_id\":\"524c9dd8-6e05-491b-a916-3dc386ced5f0\"}\n[2026-05-11 12:51:29] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"jiminny:transcription:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"cf3b85e7-bf94-4bad-b034-45899029fb46\",\"trace_id\":\"8ebbced3-1771-4640-8e58-b20c4adc6535\"}\n[2026-05-11 12:51:29] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:pre-meeting-reminder\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"62fd3cf7-c6eb-4317-a2e2-56d791e4f57d\",\"trace_id\":\"418ca9b2-4855-4b28-80d2-ea8cf2de6e64\"}\n[2026-05-11 12:51:29] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"e0275d48-0053-4811-8f69-7a087bdf45dd\",\"trace_id\":\"524c9dd8-6e05-491b-a916-3dc386ced5f0\"}\n[2026-05-11 12:51:34] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"e0275d48-0053-4811-8f69-7a087bdf45dd\",\"trace_id\":\"524c9dd8-6e05-491b-a916-3dc386ced5f0\"}\n[2026-05-11 12:51:38] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:reset-governor\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"3512a58e-9efe-4da2-ab9f-d0b735484d23\",\"trace_id\":\"5b35f66c-dd63-4a02-8f64-f0ba72826a3d\"}\n[2026-05-11 12:51:39] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:reset-governor\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"3512a58e-9efe-4da2-ab9f-d0b735484d23\",\"trace_id\":\"5b35f66c-dd63-4a02-8f64-f0ba72826a3d\"}\n[2026-05-11 12:51:41] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"e0275d48-0053-4811-8f69-7a087bdf45dd\",\"trace_id\":\"524c9dd8-6e05-491b-a916-3dc386ced5f0\"}\n[2026-05-11 12:51:45] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"877bbe1f-4978-420b-aa01-402fd93724be\",\"trace_id\":\"43b46046-4624-4d9e-b200-fff7749a1176\"}\n[2026-05-11 12:51:45] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:bullhorn:ping\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"877bbe1f-4978-420b-aa01-402fd93724be\",\"trace_id\":\"43b46046-4624-4d9e-b200-fff7749a1176\"}\n[2026-05-11 12:51:56] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"e0275d48-0053-4811-8f69-7a087bdf45dd\",\"trace_id\":\"524c9dd8-6e05-491b-a916-3dc386ced5f0\"}\n[2026-05-11 12:52:09] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"99c962d1-418e-4057-a69f-f1a2b13ccbd1\",\"trace_id\":\"0bb36197-97de-43ca-b6f1-7b1a0ef8c1ad\"}\n[2026-05-11 12:52:09] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"99c962d1-418e-4057-a69f-f1a2b13ccbd1\",\"trace_id\":\"0bb36197-97de-43ca-b6f1-7b1a0ef8c1ad\"}\n[2026-05-11 12:52:09] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"99c962d1-418e-4057-a69f-f1a2b13ccbd1\",\"trace_id\":\"0bb36197-97de-43ca-b6f1-7b1a0ef8c1ad\"}\n[2026-05-11 12:52:11] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"49b1f4c7-d423-4c4f-89a2-aba08db5f01b\",\"trace_id\":\"14a9780f-5a8b-4d3a-a3be-fdd344601c64\"}\n[2026-05-11 12:52:11] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"49b1f4c7-d423-4c4f-89a2-aba08db5f01b\",\"trace_id\":\"14a9780f-5a8b-4d3a-a3be-fdd344601c64\"}\n[2026-05-11 12:52:13] local.NOTICE: Monitoring start {\"correlation_id\":\"f223a6d1-1e7b-44a0-bbf2-bbd78f108896\",\"trace_id\":\"e4deb44e-091c-426b-a629-4dde9218fa6f\"}\n[2026-05-11 12:52:13] local.NOTICE: Monitoring end {\"correlation_id\":\"f223a6d1-1e7b-44a0-bbf2-bbd78f108896\",\"trace_id\":\"e4deb44e-091c-426b-a629-4dde9218fa6f\"}\n[2026-05-11 12:52:14] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"656854f1-fc28-4cf7-956d-bba8814b7942\",\"trace_id\":\"ce62f2be-a071-4705-8528-e83a32e7db82\"}\n[2026-05-11 12:52:15] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"656854f1-fc28-4cf7-956d-bba8814b7942\",\"trace_id\":\"ce62f2be-a071-4705-8528-e83a32e7db82\"}\n[2026-05-11 12:52:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"e13d1652-7bca-4996-9f9d-1b9f10d86b4f\",\"trace_id\":\"17c0a491-4ca3-4624-aee9-475b1907e223\"}\n[2026-05-11 12:52:18] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"e13d1652-7bca-4996-9f9d-1b9f10d86b4f\",\"trace_id\":\"17c0a491-4ca3-4624-aee9-475b1907e223\"}\n[2026-05-11 12:52:18] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"e13d1652-7bca-4996-9f9d-1b9f10d86b4f\",\"trace_id\":\"17c0a491-4ca3-4624-aee9-475b1907e223\"}\n[2026-05-11 12:52:18] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"e13d1652-7bca-4996-9f9d-1b9f10d86b4f\",\"trace_id\":\"17c0a491-4ca3-4624-aee9-475b1907e223\"}\n[2026-05-11 12:52:24] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"db306fdc-8027-4055-83c9-3d71b6d7ef4d\",\"trace_id\":\"d311460e-32d5-47a0-b1f2-07f643b95fd9\"}\n[2026-05-11 12:52:24] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 12:50:00, 2026-05-11 12:52:00] {\"correlation_id\":\"db306fdc-8027-4055-83c9-3d71b6d7ef4d\",\"trace_id\":\"d311460e-32d5-47a0-b1f2-07f643b95fd9\"}\n[2026-05-11 12:52:24] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 12:50:00, 2026-05-11 12:52:00] {\"correlation_id\":\"db306fdc-8027-4055-83c9-3d71b6d7ef4d\",\"trace_id\":\"d311460e-32d5-47a0-b1f2-07f643b95fd9\"}\n[2026-05-11 12:52:24] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"db306fdc-8027-4055-83c9-3d71b6d7ef4d\",\"trace_id\":\"d311460e-32d5-47a0-b1f2-07f643b95fd9\"}\n[2026-05-11 12:52:26] local.INFO: [HubSpot Journal Polling] No data {\"correlation_id\":\"e0275d48-0053-4811-8f69-7a087bdf45dd\",\"trace_id\":\"524c9dd8-6e05-491b-a916-3dc386ced5f0\"}\n[2026-05-11 12:52:26] local.WARNING: [HubSpot Journal Polling] Maximum empty results reached, stopping {\"empty_results\":5,\"max_empty_results\":5} {\"correlation_id\":\"e0275d48-0053-4811-8f69-7a087bdf45dd\",\"trace_id\":\"524c9dd8-6e05-491b-a916-3dc386ced5f0\"}\n[2026-05-11 12:52:26] local.WARNING: [HubSpot Journal Polling] Maximum empty results reached, stopping {\"empty_results\":5,\"max_empty_results\":5} {\"correlation_id\":\"e0275d48-0053-4811-8f69-7a087bdf45dd\",\"trace_id\":\"524c9dd8-6e05-491b-a916-3dc386ced5f0\"}\n[2026-05-11 12:52:26] local.INFO: [HubSpot Journal Polling] Service ending {\"runtime_seconds\":57,\"total_cycles\":5,\"files_downloaded\":0,\"empty_files\":0,\"other_portal_skipped\":0,\"total_events\":0,\"events_per_file\":0,\"avg_api_ms\":474.3,\"avg_download_ms\":0.0,\"avg_transform_ms\":0.0,\"avg_process_ms\":0.0,\"peak_memory_mb\":99.73} {\"correlation_id\":\"e0275d48-0053-4811-8f69-7a087bdf45dd\",\"trace_id\":\"524c9dd8-6e05-491b-a916-3dc386ced5f0\"}\n[2026-05-11 12:52:27] local.INFO: [HubSpot Journal Polling] Saved offset to database on cleanup {\"offset\":\"019e15a9-9ea0-7da7-87bc-82592e3ccf0d\"} {\"correlation_id\":\"e0275d48-0053-4811-8f69-7a087bdf45dd\",\"trace_id\":\"524c9dd8-6e05-491b-a916-3dc386ced5f0\"}\n[2026-05-11 12:52:27] local.INFO: [HubSpot Journal Polling] Released polling lock {\"correlation_id\":\"e0275d48-0053-4811-8f69-7a087bdf45dd\",\"trace_id\":\"524c9dd8-6e05-491b-a916-3dc386ced5f0\"}\n[2026-05-11 12:52:27] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"db456441-150c-40da-95d4-307c467e8940\",\"trace_id\":\"f3a9a065-32db-4cee-a227-a0c28480d165\"}\n[2026-05-11 12:52:27] local.INFO: [EmailSchedule] STARTING batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"db456441-150c-40da-95d4-307c467e8940\",\"trace_id\":\"f3a9a065-32db-4cee-a227-a0c28480d165\"}\n[2026-05-11 12:52:27] local.INFO: [EmailSchedule] FINISHED batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"db456441-150c-40da-95d4-307c467e8940\",\"trace_id\":\"f3a9a065-32db-4cee-a227-a0c28480d165\"}\n[2026-05-11 12:52:27] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"db456441-150c-40da-95d4-307c467e8940\",\"trace_id\":\"f3a9a065-32db-4cee-a227-a0c28480d165\"}\n[2026-05-11 12:52:30] local.INFO: [Jiminny\\Jobs\\Mailbox\\CreateBatches] processed 2 inboxes and created 0 batches {\"userId\":null,\"batchSize\":30,\"maxBatches\":1000} {\"correlation_id\":\"865b33b6-fb6d-4657-84ab-e27244c6acae\",\"trace_id\":\"f3a9a065-32db-4cee-a227-a0c28480d165\"}\n[2026-05-11 12:52:33] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"95aefcc4-5bf7-44b1-ac66-7d2fd7be751e\",\"trace_id\":\"f920ad20-28f0-4dec-a7a0-009d23fbecab\"}\n[2026-05-11 12:52:33] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"95aefcc4-5bf7-44b1-ac66-7d2fd7be751e\",\"trace_id\":\"f920ad20-28f0-4dec-a7a0-009d23fbecab\"}\n[2026-05-11 12:53:13] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"d1af4629-83a3-420d-8795-1fd7b573fd28\",\"trace_id\":\"2f540cb3-3d8f-405a-9000-6d588ea71f98\"}\n[2026-05-11 12:53:13] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"d1af4629-83a3-420d-8795-1fd7b573fd28\",\"trace_id\":\"2f540cb3-3d8f-405a-9000-6d588ea71f98\"}\n[2026-05-11 12:53:13] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"d1af4629-83a3-420d-8795-1fd7b573fd28\",\"trace_id\":\"2f540cb3-3d8f-405a-9000-6d588ea71f98\"}\n[2026-05-11 12:53:20] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"2e1089dc-a722-4232-a615-33af8ab158cd\",\"trace_id\":\"917c2cb2-7539-4639-8b69-b27d3970802f\"}\n[2026-05-11 12:53:20] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"2e1089dc-a722-4232-a615-33af8ab158cd\",\"trace_id\":\"917c2cb2-7539-4639-8b69-b27d3970802f\"}\n[2026-05-11 12:53:31] local.NOTICE: Monitoring start {\"correlation_id\":\"7bc6d997-0433-498e-97fb-aac4b561b244\",\"trace_id\":\"ef13f2b5-1cd0-4974-88bd-c8c8787787f6\"}\n[2026-05-11 12:53:31] local.NOTICE: Monitoring end {\"correlation_id\":\"7bc6d997-0433-498e-97fb-aac4b561b244\",\"trace_id\":\"ef13f2b5-1cd0-4974-88bd-c8c8787787f6\"}\n[2026-05-11 12:53:41] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"4687678a-41b0-4f1e-8c5c-9c6332e3170a\",\"trace_id\":\"fbbd336e-0585-49db-830b-c0ce2e97c266\"}\n[2026-05-11 12:53:41] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"4687678a-41b0-4f1e-8c5c-9c6332e3170a\",\"trace_id\":\"fbbd336e-0585-49db-830b-c0ce2e97c266\"}\n[2026-05-11 12:53:46] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"7dc5d803-54b3-4b2a-948a-074efb29f7a7\",\"trace_id\":\"256c7fbf-a236-4bd0-a30d-225da1a5e183\"}\n[2026-05-11 12:53:46] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"7dc5d803-54b3-4b2a-948a-074efb29f7a7\",\"trace_id\":\"256c7fbf-a236-4bd0-a30d-225da1a5e183\"}\n[2026-05-11 12:53:46] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"7dc5d803-54b3-4b2a-948a-074efb29f7a7\",\"trace_id\":\"256c7fbf-a236-4bd0-a30d-225da1a5e183\"}\n[2026-05-11 12:53:46] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"7dc5d803-54b3-4b2a-948a-074efb29f7a7\",\"trace_id\":\"256c7fbf-a236-4bd0-a30d-225da1a5e183\"}\n[2026-05-11 12:53:52] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"c63f42c6-afeb-42cd-87b0-eb08bc02b6e7\",\"trace_id\":\"057700b6-09b6-4f02-8ab9-afc12b53f13e\"}\n[2026-05-11 12:53:53] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:retry-failed\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"c63f42c6-afeb-42cd-87b0-eb08bc02b6e7\",\"trace_id\":\"057700b6-09b6-4f02-8ab9-afc12b53f13e\"}\n[2026-05-11 12:54:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"b0c9bb87-d145-449a-aedf-793897d9c4c8\",\"trace_id\":\"4d08e2ce-dcde-44e7-a59d-3f494af0bd32\"}\n[2026-05-11 12:54:16] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"b0c9bb87-d145-449a-aedf-793897d9c4c8\",\"trace_id\":\"4d08e2ce-dcde-44e7-a59d-3f494af0bd32\"}\n[2026-05-11 12:54:16] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"b0c9bb87-d145-449a-aedf-793897d9c4c8\",\"trace_id\":\"4d08e2ce-dcde-44e7-a59d-3f494af0bd32\"}\n[2026-05-11 12:54:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"00ff82b8-6e74-44ef-85d5-ff12e7b42467\",\"trace_id\":\"1efd4a91-0a42-4b09-9241-9e2beae99e88\"}\n[2026-05-11 12:54:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"00ff82b8-6e74-44ef-85d5-ff12e7b42467\",\"trace_id\":\"1efd4a91-0a42-4b09-9241-9e2beae99e88\"}\n[2026-05-11 12:54:33] testing.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":1,\"remote_search\":false,\"set_configuration\":5,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":null,\"opportunity_id\":null,\"stage_id\":null}} {\"correlation_id\":\"f8db6dff-a3af-4785-855d-bd04ed3ed096\",\"trace_id\":\"f24b6e85-6f89-42b8-b4e4-91b2a82e1a7d\"}\n[2026-05-11 12:54:33] testing.INFO: [MatchActivityCrmData] Switching CRM configuration {\"activity\":1,\"old_configuration\":10,\"new_configuration\":5} {\"correlation_id\":\"f8db6dff-a3af-4785-855d-bd04ed3ed096\",\"trace_id\":\"f24b6e85-6f89-42b8-b4e4-91b2a82e1a7d\"}\n[2026-05-11 12:54:33] testing.INFO: [MatchActivityCrmData] No CRM match found {\"activity\":1,\"remote_search\":false} {\"correlation_id\":\"f8db6dff-a3af-4785-855d-bd04ed3ed096\",\"trace_id\":\"f24b6e85-6f89-42b8-b4e4-91b2a82e1a7d\"}\n[2026-05-11 12:54:34] testing.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":123,\"remote_search\":false,\"set_configuration\":5,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":null,\"opportunity_id\":null,\"stage_id\":null}} {\"correlation_id\":\"37dd4a6c-1fc8-4331-ad24-b1cb13b583ce\",\"trace_id\":\"d39aa1e8-6b1c-48eb-a6fa-f38c876ca543\"}\n[2026-05-11 12:54:34] testing.INFO: [MatchActivityCrmData] No CRM match found {\"activity\":123,\"remote_search\":false} {\"correlation_id\":\"37dd4a6c-1fc8-4331-ad24-b1cb13b583ce\",\"trace_id\":\"d39aa1e8-6b1c-48eb-a6fa-f38c876ca543\"}\n[2026-05-11 12:54:34] testing.ERROR: [MatchActivityCrmData] Failed to match CRM data {\"activity\":1,\"remote_search\":false,\"exception\":\"Test exception\",\"trace\":\"#0 /home/jiminny/vendor/phpunit/phpunit/src/Framework/TestCase.php(1667): Tests\\\\Unit\\\\Jobs\\\\Crm\\\\MatchActivityCrmDataTest->testTransactionRollbackOnException()\n#1 /home/jiminny/vendor/phpunit/phpunit/src/Framework/TestCase.php(519): PHPUnit\\\\Framework\\\\TestCase->runTest()\n#2 /home/jiminny/vendor/phpunit/phpunit/src/Framework/TestRunner/TestRunner.php(87): PHPUnit\\\\Framework\\\\TestCase->runBare()\n#3 /home/jiminny/vendor/phpunit/phpunit/src/Framework/TestCase.php(365): PHPUnit\\\\Framework\\\\TestRunner->run(Object(Tests\\\\Unit\\\\Jobs\\\\Crm\\\\MatchActivityCrmDataTest))\n#4 /home/jiminny/vendor/phpunit/phpunit/src/Framework/TestSuite.php(369): PHPUnit\\\\Framework\\\\TestCase->run()\n#5 /home/jiminny/vendor/phpunit/phpunit/src/Framework/TestSuite.php(369): PHPUnit\\\\Framework\\\\TestSuite->run()\n#6 /home/jiminny/vendor/phpunit/phpunit/src/TextUI/TestRunner.php(64): PHPUnit\\\\Framework\\\\TestSuite->run()\n#7 /home/jiminny/vendor/phpunit/phpunit/src/TextUI/Application.php(211): PHPUnit\\\\TextUI\\\\TestRunner->run(Object(PHPUnit\\\\TextUI\\\\Configuration\\\\Configuration), Object(PHPUnit\\\\Runner\\\\ResultCache\\\\DefaultResultCache), Object(PHPUnit\\\\Framework\\\\TestSuite))\n#8 /home/jiminny/vendor/phpunit/phpunit/phpunit(104): PHPUnit\\\\TextUI\\\\Application->run(Array)\n#9 /home/jiminny/vendor/bin/phpunit(122): include('/home/jiminny/v...')\n#10 {main}\"} {\"correlation_id\":\"e1f9dd5e-db18-4167-a3d9-d6a017f64442\",\"trace_id\":\"64407c7f-5ad5-4d40-a02b-e06c3988f345\"}\n[2026-05-11 12:54:34] testing.ERROR: [MatchActivityCrmData] Job permanently failed after all retries {\"activity\":123,\"remote_search\":true,\"from_configuration\":null,\"exception\":\"Test failure\",\"attempts\":1} {\"correlation_id\":\"abdea40d-435e-4d87-b225-38b24cc6344b\",\"trace_id\":\"3b31770a-e7c6-4b45-872d-e4391cb4278d\"}\n[2026-05-11 12:54:35] testing.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":123,\"remote_search\":false,\"set_configuration\":null,\"old_state\":{\"lead_id\":456,\"contact_id\":null,\"account_id\":null,\"opportunity_id\":null,\"stage_id\":null}} {\"correlation_id\":\"571d5566-2335-4bdb-920d-c55467ca1712\",\"trace_id\":\"599aca3d-a7b4-424d-89b8-da6461cab370\"}\n[2026-05-11 12:54:35] testing.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":123,\"remote_search\":false,\"lead_id\":456,\"contact_id\":null,\"account_id\":null,\"opportunity_id\":null,\"stage_id\":null} {\"correlation_id\":\"571d5566-2335-4bdb-920d-c55467ca1712\",\"trace_id\":\"599aca3d-a7b4-424d-89b8-da6461cab370\"}\n[2026-05-11 12:54:35] testing.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":123,\"remote_search\":true,\"set_configuration\":null,\"old_state\":{\"lead_id\":null,\"contact_id\":null,\"account_id\":null,\"opportunity_id\":null,\"stage_id\":null}} {\"correlation_id\":\"e954700b-88a6-4955-9977-edcd8e5c93a4\",\"trace_id\":\"84ae5b92-3c87-4a95-ad91-7353e0cff15d\"}\n[2026-05-11 12:54:35] testing.INFO: [MatchActivityCrmData] No CRM match found {\"activity\":123,\"remote_search\":true} {\"correlation_id\":\"e954700b-88a6-4955-9977-edcd8e5c93a4\",\"trace_id\":\"84ae5b92-3c87-4a95-ad91-7353e0cff15d\"}\n[2026-05-11 12:54:35] testing.INFO: [MatchActivityCrmData] Starting CRM data matching {\"activity\":999,\"remote_search\":false,\"set_configuration\":null,\"old_state\":{\"lead_id\":111,\"contact_id\":222,\"account_id\":333,\"opportunity_id\":444,\"stage_id\":555}} {\"correlation_id\":\"fcdf2f28-0489-4742-9561-c2a20665c51e\",\"trace_id\":\"8d3fbbbf-56c9-456f-ad9e-ffd2ad6cfd3b\"}\n[2026-05-11 12:54:35] testing.INFO: [MatchActivityCrmData] Participants old state {\"activity\":999,\"participants\":[{\"id\":10,\"user_id\":100,\"contact_id\":200,\"lead_id\":null},{\"id\":20,\"user_id\":null,\"contact_id\":null,\"lead_id\":300}]} {\"correlation_id\":\"fcdf2f28-0489-4742-9561-c2a20665c51e\",\"trace_id\":\"8d3fbbbf-56c9-456f-ad9e-ffd2ad6cfd3b\"}\n[2026-05-11 12:54:35] testing.INFO: [MatchActivityCrmData] Successfully matched CRM data {\"activity\":999,\"remote_search\":false,\"lead_id\":111,\"contact_id\":222,\"account_id\":333,\"opportunity_id\":444,\"stage_id\":555} {\"correlation_id\":\"fcdf2f28-0489-4742-9561-c2a20665c51e\",\"trace_id\":\"8d3fbbbf-56c9-456f-ad9e-ffd2ad6cfd3b\"}\n[2026-05-11 12:54:38] local.NOTICE: Monitoring start {\"correlation_id\":\"a8be3ef9-4dcf-4730-8dc6-509a8dc93ace\",\"trace_id\":\"e383025b-076b-46f1-8dd7-5d9143ad3695\"}\n[2026-05-11 12:54:39] local.NOTICE: Monitoring end {\"correlation_id\":\"a8be3ef9-4dcf-4730-8dc6-509a8dc93ace\",\"trace_id\":\"e383025b-076b-46f1-8dd7-5d9143ad3695\"}\n[2026-05-11 12:54:48] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"1921e478-1c59-44bd-a25d-38938aab926a\",\"trace_id\":\"519f3980-38c3-4dc2-b158-3999ee8f47be\"}\n[2026-05-11 12:54:49] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"1921e478-1c59-44bd-a25d-38938aab926a\",\"trace_id\":\"519f3980-38c3-4dc2-b158-3999ee8f47be\"}\n[2026-05-11 12:54:55] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"c2eca233-9902-4414-95d9-edd6f425bcbd\",\"trace_id\":\"29e6d9bc-e635-4e28-be97-8da6b20a5ab7\"}\n[2026-05-11 12:54:55] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"c2eca233-9902-4414-95d9-edd6f425bcbd\",\"trace_id\":\"29e6d9bc-e635-4e28-be97-8da6b20a5ab7\"}\n[2026-05-11 12:54:55] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"c2eca233-9902-4414-95d9-edd6f425bcbd\",\"trace_id\":\"29e6d9bc-e635-4e28-be97-8da6b20a5ab7\"}\n[2026-05-11 12:54:55] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"c2eca233-9902-4414-95d9-edd6f425bcbd\",\"trace_id\":\"29e6d9bc-e635-4e28-be97-8da6b20a5ab7\"}\n[2026-05-11 12:54:58] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"5797ace0-2829-4b5b-8598-1a58d489cca4\",\"trace_id\":\"8d5b31cb-bc2b-4bda-acc3-b64c5ced70eb\"}\n[2026-05-11 12:54:58] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 12:52:00, 2026-05-11 12:54:00] {\"correlation_id\":\"5797ace0-2829-4b5b-8598-1a58d489cca4\",\"trace_id\":\"8d5b31cb-bc2b-4bda-acc3-b64c5ced70eb\"}\n[2026-05-11 12:54:58] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 12:52:00, 2026-05-11 12:54:00] {\"correlation_id\":\"5797ace0-2829-4b5b-8598-1a58d489cca4\",\"trace_id\":\"8d5b31cb-bc2b-4bda-acc3-b64c5ced70eb\"}\n[2026-05-11 12:54:58] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"5797ace0-2829-4b5b-8598-1a58d489cca4\",\"trace_id\":\"8d5b31cb-bc2b-4bda-acc3-b64c5ced70eb\"}\n[2026-05-11 12:55:01] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:aircall:check-and-renew\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"bbbd3f61-3f69-427a-ad42-e0bf21f332fb\",\"trace_id\":\"1ed1d0aa-0b53-42db-8898-bc6028dcf6b5\"}\n[2026-05-11 12:55:01] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1496,\"provider\":\"aircall\"} {\"correlation_id\":\"bbbd3f61-3f69-427a-ad42-e0bf21f332fb\",\"trace_id\":\"1ed1d0aa-0b53-42db-8898-bc6028dcf6b5\"}\n[2026-05-11 12:55:01] local.INFO: [SocialAccountService] Token retrieved {\"socialAccountId\":1496,\"provider\":\"aircall\"} {\"correlation_id\":\"bbbd3f61-3f69-427a-ad42-e0bf21f332fb\",\"trace_id\":\"1ed1d0aa-0b53-42db-8898-bc6028dcf6b5\"}\n[2026-05-11 12:55:01] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"bbbd3f61-3f69-427a-ad42-e0bf21f332fb\",\"trace_id\":\"1ed1d0aa-0b53-42db-8898-bc6028dcf6b5\"}\n[2026-05-11 12:55:02] local.ERROR: [Aircall] Re-activating webhooks failed {\"team_id\":1,\"reason\":\"{\\\"message\\\":\\\"Forbidden\\\"}\"} {\"correlation_id\":\"bbbd3f61-3f69-427a-ad42-e0bf21f332fb\",\"trace_id\":\"1ed1d0aa-0b53-42db-8898-bc6028dcf6b5\"}\n[2026-05-11 12:55:02] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:aircall:check-and-renew\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"bbbd3f61-3f69-427a-ad42-e0bf21f332fb\",\"trace_id\":\"1ed1d0aa-0b53-42db-8898-bc6028dcf6b5\"}\n[2026-05-11 12:55:06] local.INFO: [RetryFailedDownloads] Starting {\"options\":{\"from\":null,\"to\":null,\"help\":false,\"silent\":false,\"quiet\":false,\"verbose\":false,\"version\":false,\"ansi\":null,\"no-interaction\":false,\"env\":null}} {\"correlation_id\":\"0bba9dee-e11e-486c-a2b0-9c5cc7727dd8\",\"trace_id\":\"503f418b-706e-4530-9d36-8d8963a7052b\"}\n[2026-05-11 12:56:05] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"d9e3c7fa-c23d-4eca-b031-433e040b9c83\",\"trace_id\":\"fbee6315-3879-4beb-9238-dc7868160885\"}\n[2026-05-11 12:56:05] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"d9e3c7fa-c23d-4eca-b031-433e040b9c83\",\"trace_id\":\"fbee6315-3879-4beb-9238-dc7868160885\"}\n[2026-05-11 12:56:05] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"d9e3c7fa-c23d-4eca-b031-433e040b9c83\",\"trace_id\":\"fbee6315-3879-4beb-9238-dc7868160885\"}\n[2026-05-11 12:56:07] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"6811a21c-320f-40e4-adf5-e4a973024886\",\"trace_id\":\"ba63e30f-517e-4031-89f3-9cc39e6e5ea7\"}\n[2026-05-11 12:56:07] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"6811a21c-320f-40e4-adf5-e4a973024886\",\"trace_id\":\"ba63e30f-517e-4031-89f3-9cc39e6e5ea7\"}\n[2026-05-11 12:56:12] local.NOTICE: Monitoring start {\"correlation_id\":\"3c2a21d5-8845-4b23-afb8-6f094d5c9fba\",\"trace_id\":\"e6fff20c-4066-4c1e-9d20-54c2da5f7f44\"}\n[2026-05-11 12:56:12] local.NOTICE: Monitoring end {\"correlation_id\":\"3c2a21d5-8845-4b23-afb8-6f094d5c9fba\",\"trace_id\":\"e6fff20c-4066-4c1e-9d20-54c2da5f7f44\"}\n[2026-05-11 12:56:14] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"ae60dfc4-8687-4853-a0b2-0f96f1c2a489\",\"trace_id\":\"7d37e315-814b-47b2-a512-585a2eb66f15\"}\n[2026-05-11 12:56:14] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"ae60dfc4-8687-4853-a0b2-0f96f1c2a489\",\"trace_id\":\"7d37e315-814b-47b2-a512-585a2eb66f15\"}\n[2026-05-11 12:56:17] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"51e7381b-58c5-4f6c-87cf-d087a982652a\",\"trace_id\":\"6534a7b7-6305-41d5-a643-f3c0e14c0b26\"}\n[2026-05-11 12:56:17] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"51e7381b-58c5-4f6c-87cf-d087a982652a\",\"trace_id\":\"6534a7b7-6305-41d5-a643-f3c0e14c0b26\"}\n[2026-05-11 12:56:17] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"51e7381b-58c5-4f6c-87cf-d087a982652a\",\"trace_id\":\"6534a7b7-6305-41d5-a643-f3c0e14c0b26\"}\n[2026-05-11 12:56:17] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"51e7381b-58c5-4f6c-87cf-d087a982652a\",\"trace_id\":\"6534a7b7-6305-41d5-a643-f3c0e14c0b26\"}\n[2026-05-11 12:56:20] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"e1f63aef-2af6-4823-9ceb-b7d4da7f0329\",\"trace_id\":\"73724fe8-11af-41cb-b55c-8a31638b379e\"}\n[2026-05-11 12:56:20] local.INFO: Running conference:monitor:count command for activities in (2026-05-11 12:54:00, 2026-05-11 12:56:00] {\"correlation_id\":\"e1f63aef-2af6-4823-9ceb-b7d4da7f0329\",\"trace_id\":\"73724fe8-11af-41cb-b55c-8a31638b379e\"}\n[2026-05-11 12:56:20] local.INFO: [conference:monitor:count] No activities found in (2026-05-11 12:54:00, 2026-05-11 12:56:00] {\"correlation_id\":\"e1f63aef-2af6-4823-9ceb-b7d4da7f0329\",\"trace_id\":\"73724fe8-11af-41cb-b55c-8a31638b379e\"}\n[2026-05-11 12:56:20] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"conference:monitor:count\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"e1f63aef-2af6-4823-9ceb-b7d4da7f0329\",\"trace_id\":\"73724fe8-11af-41cb-b55c-8a31638b379e\"}\n[2026-05-11 12:56:22] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"crm:sync-hubspot-objects\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"2a027ef1-d1bc-46b9-9aa7-37d2ef3c4bf1\",\"trace_id\":\"562958bd-7185-4e4d-9127-ece685e5015c\"}\n[2026-05-11 12:56:22] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"crm:sync-hubspot-objects\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"2a027ef1-d1bc-46b9-9aa7-37d2ef3c4bf1\",\"trace_id\":\"562958bd-7185-4e4d-9127-ece685e5015c\"}\n[2026-05-11 12:56:23] local.INFO: [SyncHubspotObjects] Starting sync {\"team\":\"abae74b8-bfa8-4383-9a7f-89f4bf2bdbb4\",\"usage\":24323216,\"real_usage\":62914560,\"pid\":74083} {\"correlation_id\":\"05af9baa-9cc7-4520-aaca-a16765976dce\",\"trace_id\":\"562958bd-7185-4e4d-9127-ece685e5015c\"}\n[2026-05-11 12:56:23] local.INFO: [SocialAccountService] Fetching token {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05af9baa-9cc7-4520-aaca-a16765976dce\",\"trace_id\":\"562958bd-7185-4e4d-9127-ece685e5015c\"}\n[2026-05-11 12:56:23] local.INFO: [SocialAccountService] Token needs refreshing {\"socialAccountId\":1499,\"provider\":\"hubspot\"} {\"correlation_id\":\"05af9baa-9cc7-4520-aaca-a16765976dce\",\"trace_id\":\"562958bd-7185-4e4d-9127-ece685e5015c\"}\n[2026-05-11 12:56:23] local.INFO: [EncryptedTokenManager] Generating access token. {\"mode\":\"legacy\"} {\"correlation_id\":\"05af9baa-9cc7-4520-aaca-a16765976dce\",\"trace_id\":\"562958bd-7185-4e4d-9127-ece685e5015c\"}\n[2026-05-11 12:56:23] local.INFO: [SocialAccountService] Refreshing token from provider {\"socialAccountId\":1499,\"provider\":\"hubspot\",\"refreshToken\":\"96f94c623a404e02ebdbf07f1b75707bb6cdbf848cbf45d418baf608c41a8d86\",\"state\":\"connected\"} {\"correlation_id\":\"05af9baa-9cc7-4520-aaca-a16765976dce\",\"trace_id\":\"562958bd-7185-4e4d-9127-ece685e5015c\"}\n[2026-05-11 12:56:23] local.INFO: [SocialAccountObserver] Saving model {\"correlation_id\":\"05af9baa-9cc7-4520-aaca-a16765976dce\",\"trace_id\":\"562958bd-7185-4e4d-9127-ece685e5015c\"}\n[2026-05-11 12:56:23] local.INFO: [SocialAccountObserver] Access token was modified, encrypting {\"correlation_id\":\"05af9baa-9cc7-4520-aaca-a16765976dce\",\"trace_id\":\"562958bd-7185-4e4d-9127-ece685e5015c\"}\n[2026-05-11 12:56:24] local.INFO: [SocialAccountService] Token refreshed {\"socialAccountId\":1499,\"provider\":\"hubspot\",\"state\":\"connected\"} {\"correlation_id\":\"05af9baa-9cc7-4520-aaca-a16765976dce\",\"trace_id\":\"562958bd-7185-4e4d-9127-ece685e5015c\"}\n[2026-05-11 12:56:24] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {\"crm_provider\":\"hubspot\",\"crm_owner\":148,\"team_id\":2} {\"correlation_id\":\"05af9baa-9cc7-4520-aaca-a16765976dce\",\"trace_id\":\"562958bd-7185-4e4d-9127-ece685e5015c\"}\n[2026-05-11 12:56:24] local.INFO: [HubSpot] Syncing opportunities using strategy: lastModified {\"team\":2} {\"correlation_id\":\"05af9baa-9cc7-4520-aaca-a16765976dce\",\"trace_id\":\"562958bd-7185-4e4d-9127-ece685e5015c\"}\n[2026-05-11 12:56:24] local.INFO: [Hubspot] Pagination completed {\"team_id\":2,\"endpoint\":\"https://api.hubapi.com/crm/v3/objects/deals/search\",\"total_requests\":1,\"total_records_fetched\":0,\"total_elapsed_seconds\":0.38,\"average_seconds_per_request\":0.38} {\"correlation_id\":\"05af9baa-9cc7-4520-aaca-a16765976dce\",\"trace_id\":\"562958bd-7185-4e4d-9127-ece685e5015c\"}\n[2026-05-11 12:56:24] local.INFO: [HubSpot] Synced opportunities {\"team\":2,\"strategies\":\"lastModified\",\"sync_count\":0,\"total\":0,\"last_synced_id\":null,\"duration_ms\":425.55} {\"correlation_id\":\"05af9baa-9cc7-4520-aaca-a16765976dce\",\"trace_id\":\"562958bd-7185-4e4d-9127-ece685e5015c\"}\n[2026-05-11 12:56:24] local.INFO: [SyncHubspotObjects] Sync finished {\"team\":\"abae74b8-bfa8-4383-9a7f-89f4bf2bdbb4\",\"provider\":\"hubspot\",\"status\":\"completed\",\"duration_ms\":1641.74,\"usage\":24523328,\"real_usage\":65011712,\"pid\":74083} {\"correlation_id\":\"05af9baa-9cc7-4520-aaca-a16765976dce\",\"trace_id\":\"562958bd-7185-4e4d-9127-ece685e5015c\"}\n[2026-05-11 12:56:24] local.INFO: [SyncHubspotObjects] Starting sync {\"team\":\"b2d49a54-b645-4637-a7ae-a86cfce6e8e4\",\"usage\":24497992,\"real_usage\":65011712,\"pid\":74083} {\"correlation_id\":\"781b74c2-a11c-475f-b2b9-62c36145f8ec\",\"trace_id\":\"562958bd-7185-4e4d-9127-ece685e5015c\"}\n[2026-05-11 12:56:24] local.WARNING: [HubSpot] Account not connected for user {\"userId\":\"2ac0447f-3c8c-4ce0-baeb-b63ddb76fa9b\",\"account\":null} {\"correlation_id\":\"781b74c2-a11c-475f-b2b9-62c36145f8ec\",\"trace_id\":\"562958bd-7185-4e4d-9127-ece685e5015c\"}\n[2026-05-11 12:56:24] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"hubspot\",\"crm_owner\":130,\"team_id\":42} {\"correlation_id\":\"781b74c2-a11c-475f-b2b9-62c36145f8ec\",\"trace_id\":\"562958bd-7185-4e4d-9127-ece685e5015c\"}\n[2026-05-11 12:56:24] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":42} {\"correlation_id\":\"781b74c2-a11c-475f-b2b9-62c36145f8ec\",\"trace_id\":\"562958bd-7185-4e4d-9127-ece685e5015c\"}\n[2026-05-11 12:56:24] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":42} {\"correlation_id\":\"781b74c2-a11c-475f-b2b9-62c36145f8ec\",\"trace_id\":\"562958bd-7185-4e4d-9127-ece685e5015c\"}\n[2026-05-11 12:56:24] local.INFO: [SyncHubspotObjects] Sync finished {\"team\":\"b2d49a54-b645-4637-a7ae-a86cfce6e8e4\",\"provider\":\"hubspot\",\"status\":\"disconnected\",\"duration_ms\":133.88,\"usage\":24475192,\"real_usage\":65011712,\"pid\":74083,\"reason\":\"Social account for HubSpot cannot be found. Please login to Jiminny to connect.\"} {\"correlation_id\":\"781b74c2-a11c-475f-b2b9-62c36145f8ec\",\"trace_id\":\"562958bd-7185-4e4d-9127-ece685e5015c\"}\n[2026-05-11 12:56:24] local.INFO: [SyncHubspotObjects] Starting sync {\"team\":\"b2b115eb-93ce-4d1b-929c-173757df8fba\",\"usage\":24435944,\"real_usage\":65011712,\"pid\":74083} {\"correlation_id\":\"0b248ea5-6124-4c86-9340-975e5add6c66\",\"trace_id\":\"562958bd-7185-4e4d-9127-ece685e5015c\"}\n[2026-05-11 12:56:24] local.WARNING: [HubSpot] Account not connected for user {\"userId\":\"33e34a7a-1c02-4f04-87ac-22c3a385e6e3\",\"account\":{\"Jiminny\\\\Models\\\\SocialAccount\":{\"id\":306,\"sociable_id\":109,\"provider_user_id\":\"11348452\",\"expires\":1701077403,\"refresh_token_expires\":null,\"provider\":\"hubspot\",\"state\":\"full-refresh\",\"auth_scope\":null,\"retry_after\":null,\"created_at\":\"2020-09-01 16:59:04\",\"updated_at\":\"2023-11-27 09:30:03\"}}} {\"correlation_id\":\"0b248ea5-6124-4c86-9340-975e5add6c66\",\"trace_id\":\"562958bd-7185-4e4d-9127-ece685e5015c\"}\n[2026-05-11 12:56:25] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"hubspot\",\"crm_owner\":109,\"team_id\":29} {\"correlation_id\":\"0b248ea5-6124-4c86-9340-975e5add6c66\",\"trace_id\":\"562958bd-7185-4e4d-9127-ece685e5015c\"}\n[2026-05-11 12:56:25] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":29} {\"correlation_id\":\"0b248ea5-6124-4c86-9340-975e5add6c66\",\"trace_id\":\"562958bd-7185-4e4d-9127-ece685e5015c\"}\n[2026-05-11 12:56:25] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":29} {\"correlation_id\":\"0b248ea5-6124-4c86-9340-975e5add6c66\",\"trace_id\":\"562958bd-7185-4e4d-9127-ece685e5015c\"}\n[2026-05-11 12:56:25] local.INFO: [SyncHubspotObjects] Sync finished {\"team\":\"b2b115eb-93ce-4d1b-929c-173757df8fba\",\"provider\":\"hubspot\",\"status\":\"disconnected\",\"duration_ms\":279.28,\"usage\":24497984,\"real_usage\":65011712,\"pid\":74083,\"reason\":\"Your HubSpot account has become disconnected. Please login to Jiminny to reconnect.\"} {\"correlation_id\":\"0b248ea5-6124-4c86-9340-975e5add6c66\",\"trace_id\":\"562958bd-7185-4e4d-9127-ece685e5015c\"}\n[2026-05-11 12:56:25] local.INFO: [SyncHubspotObjects] Starting sync {\"team\":\"c6b9d6b0-b48d-4832-a68c-a57d60651888\",\"usage\":24455488,\"real_usage\":65011712,\"pid\":74083} {\"correlation_id\":\"8a90cba2-a8b2-44ba-8715-ea3515ab1934\",\"trace_id\":\"562958bd-7185-4e4d-9127-ece685e5015c\"}\n[2026-05-11 12:56:25] local.WARNING: [HubSpot] Account not connected for user {\"userId\":\"71e3aac5-fb66-47c5-a236-2d051ae3e319\",\"account\":null} {\"correlation_id\":\"8a90cba2-a8b2-44ba-8715-ea3515ab1934\",\"trace_id\":\"562958bd-7185-4e4d-9127-ece685e5015c\"}\n[2026-05-11 12:56:25] local.INFO: [CrmOwnerResolver] Integration owner is not connected, attempting team members {\"crm_provider\":\"hubspot\",\"crm_owner\":256,\"team_id\":49} {\"correlation_id\":\"8a90cba2-a8b2-44ba-8715-ea3515ab1934\",\"trace_id\":\"562958bd-7185-4e4d-9127-ece685e5015c\"}\n[2026-05-11 12:56:25] local.INFO: [CrmOwnerResolver] No team members found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":49} {\"correlation_id\":\"8a90cba2-a8b2-44ba-8715-ea3515ab1934\",\"trace_id\":\"562958bd-7185-4e4d-9127-ece685e5015c\"}\n[2026-05-11 12:56:25] local.INFO: [CrmOwnerResolver] No team member found with active crm connection {\"crm_provider\":\"hubspot\",\"team_id\":49} {\"correlation_id\":\"8a90cba2-a8b2-44ba-8715-ea3515ab1934\",\"trace_id\":\"562958bd-7185-4e4d-9127-ece685e5015c\"}\n[2026-05-11 12:56:25] local.INFO: [SyncHubspotObjects] Sync finished {\"team\":\"c6b9d6b0-b48d-4832-a68c-a57d60651888\",\"provider\":\"hubspot\",\"status\":\"disconnected\",\"duration_ms\":100.02,\"usage\":24471608,\"real_usage\":65011712,\"pid\":74083,\"reason\":\"Social account for HubSpot cannot be found. Please login to Jiminny to connect.\"} {\"correlation_id\":\"8a90cba2-a8b2-44ba-8715-ea3515ab1934\",\"trace_id\":\"562958bd-7185-4e4d-9127-ece685e5015c\"}\n[2026-05-11 12:56:28] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"activity:notify-not-logged\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"de0629ae-2f96-4bdd-8828-9238ab100a4b\",\"trace_id\":\"ec67a07b-f71a-47e4-a047-93cfc5c875bb\"}\n[2026-05-11 12:56:29] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"activity:notify-not-logged\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"de0629ae-2f96-4bdd-8828-9238ab100a4b\",\"trace_id\":\"ec67a07b-f71a-47e4-a047-93cfc5c875bb\"}\n[2026-05-11 12:56:35] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"c702a967-f054-4d71-bc81-35306b2464ae\",\"trace_id\":\"bae43efd-c04a-42db-8082-6116d320b676\"}\n[2026-05-11 12:56:35] local.INFO: [EmailSchedule] STARTING Inbox Sync {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"c702a967-f054-4d71-bc81-35306b2464ae\",\"trace_id\":\"bae43efd-c04a-42db-8082-6116d320b676\"}\n[2026-05-11 12:56:35] local.INFO: [EmailSchedule] FINISHED Inbox Sync {\"host\":\"docker_lamp_1\",\"events\":2} {\"correlation_id\":\"c702a967-f054-4d71-bc81-35306b2464ae\",\"trace_id\":\"bae43efd-c04a-42db-8082-6116d320b676\"}\n[2026-05-11 12:56:35] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:sync\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"c702a967-f054-4d71-bc81-35306b2464ae\",\"trace_id\":\"bae43efd-c04a-42db-8082-6116d320b676\"}\n[2026-05-11 12:56:38] local.INFO: [Sync Mailbox] Sync start {\"inbox_id\":59} {\"correlation_id\":\"d714d7ca-7da0-4e1f-9847-ce912092716b\",\"trace_id\":\"bae43efd-c04a-42db-8082-6116d320b676\"}\n[2026-05-11 12:56:38] local.INFO: [Inbox service] Skipping METADATA SYNC for inbox 59 due to unauthorized access to the mailbox {\"correlation_id\":\"d714d7ca-7da0-4e1f-9847-ce912092716b\",\"trace_id\":\"bae43efd-c04a-42db-8082-6116d320b676\"}\n[2026-05-11 12:56:38] local.INFO: [Sync Mailbox] Sync complete {\"inbox_id\":59} {\"correlation_id\":\"d714d7ca-7da0-4e1f-9847-ce912092716b\",\"trace_id\":\"bae43efd-c04a-42db-8082-6116d320b676\"}\n[2026-05-11 12:56:38] local.INFO: [Sync Mailbox] Sync start {\"inbox_id\":212} {\"correlation_id\":\"33be6d30-2ce9-43fd-b1cd-b09b8db09e50\",\"trace_id\":\"bae43efd-c04a-42db-8082-6116d320b676\"}\n[2026-05-11 12:56:38] local.INFO: [Inbox service] Skipping METADATA SYNC for inbox 212 due to unauthorized access to the mailbox {\"correlation_id\":\"33be6d30-2ce9-43fd-b1cd-b09b8db09e50\",\"trace_id\":\"bae43efd-c04a-42db-8082-6116d320b676\"}\n[2026-05-11 12:56:38] local.INFO: [Sync Mailbox] Sync complete {\"inbox_id\":212} {\"correlation_id\":\"33be6d30-2ce9-43fd-b1cd-b09b8db09e50\",\"trace_id\":\"bae43efd-c04a-42db-8082-6116d320b676\"}\n[2026-05-11 12:57:06] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"3cd76c2b-1df2-46f4-80ca-11116e49faa7\",\"trace_id\":\"3ebaa5f1-a345-4004-ac87-212a4cb725d0\"}\n[2026-05-11 12:57:06] local.INFO: [ScheduleBotCommand] Number of activities to be captured: 0 {\"correlation_id\":\"3cd76c2b-1df2-46f4-80ca-11116e49faa7\",\"trace_id\":\"3ebaa5f1-a345-4004-ac87-212a4cb725d0\"}\n[2026-05-11 12:57:06] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"meeting-bot:schedule-bot\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"3cd76c2b-1df2-46f4-80ca-11116e49faa7\",\"trace_id\":\"3ebaa5f1-a345-4004-ac87-212a4cb725d0\"}\n[2026-05-11 12:57:09] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"03bc3c99-69f1-4522-be3f-562f793c5073\",\"trace_id\":\"de921d11-d6ab-4b89-b22a-50abe1e9a9bd\"}\n[2026-05-11 12:57:09] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"dialers:monitor-activities\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"03bc3c99-69f1-4522-be3f-562f793c5073\",\"trace_id\":\"de921d11-d6ab-4b89-b22a-50abe1e9a9bd\"}\n[2026-05-11 12:57:17] local.NOTICE: Monitoring start {\"correlation_id\":\"113f8d3a-8b62-4b20-9d0a-7697a887342e\",\"trace_id\":\"fdd0489d-da38-4e7e-a86e-03cd51f4b8b0\"}\n[2026-05-11 12:57:17] local.NOTICE: Monitoring end {\"correlation_id\":\"113f8d3a-8b62-4b20-9d0a-7697a887342e\",\"trace_id\":\"fdd0489d-da38-4e7e-a86e-03cd51f4b8b0\"}\n[2026-05-11 12:57:20] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"b31f6833-5840-4515-a57c-52cb790bdde3\",\"trace_id\":\"3093819c-1a7a-4c22-9aa4-8e2d26b0fd02\"}\n[2026-05-11 12:57:21] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:skip-lists:refresh\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"b31f6833-5840-4515-a57c-52cb790bdde3\",\"trace_id\":\"3093819c-1a7a-4c22-9aa4-8e2d26b0fd02\"}\n[2026-05-11 12:57:27] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"d6dd12d3-a4d6-4a6d-9154-dd0ed404133b\",\"trace_id\":\"737774ee-74d4-4cb6-961c-af938c3dee95\"}\n[2026-05-11 12:57:27] local.INFO: [EmailSchedule] STARTING batch process {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"d6dd12d3-a4d6-4a6d-9154-dd0ed404133b\",\"trace_id\":\"737774ee-74d4-4cb6-961c-af938c3dee95\"}\n[2026-05-11 12:57:27] local.INFO: [EmailSchedule] FINISHED batch process {\"host\":\"docker_lamp_1\",\"processed\":0} {\"correlation_id\":\"d6dd12d3-a4d6-4a6d-9154-dd0ed404133b\",\"trace_id\":\"737774ee-74d4-4cb6-961c-af938c3dee95\"}\n[2026-05-11 12:57:27] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:process\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"d6dd12d3-a4d6-4a6d-9154-dd0ed404133b\",\"trace_id\":\"737774ee-74d4-4cb6-961c-af938c3dee95\"}\n[2026-05-11 12:57:31] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage before starting command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryPeakBeforeCommandInMb\":99.727} {\"correlation_id\":\"f9c36853-5dcb-4606-bfc1-9a4101d735b3\",\"trace_id\":\"d1b9ac7f-39c0-4858-a72b-e304627b1f4d\"}\n[2026-05-11 12:57:31] local.INFO: [EmailSchedule] STARTING batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"f9c36853-5dcb-4606-bfc1-9a4101d735b3\",\"trace_id\":\"d1b9ac7f-39c0-4858-a72b-e304627b1f4d\"}\n[2026-05-11 12:57:32] local.INFO: [EmailSchedule] FINISHED batch create {\"host\":\"docker_lamp_1\"} {\"correlation_id\":\"f9c36853-5dcb-4606-bfc1-9a4101d735b3\",\"trace_id\":\"d1b9ac7f-39c0-4858-a72b-e304627b1f4d\"}\n[2026-05-11 12:57:32] local.INFO: Jiminny\\Console\\Commands\\Command::run Memory usage for command {\"command\":\"mailbox:batch:create\",\"memoryBeforeCommandInMb\":60.0,\"memoryAfterCommandInMB\":60.0,\"memoryPeakBeforeCommandInMb\":99.727,\"memoryPeakAfterCommandInMB\":99.727} {\"correlation_id\":\"f9c36853-5dcb-4606-bfc1-9a4101d735b3\",\"trace_id\":\"d1b9ac7f-39c0-4858-a72b-e304627b1f4d\"}\n[2026-05-11 12:57:32] local.INFO: [Jiminny\\Jobs\\Mailbox\\CreateBatches] processed 2 inboxes and created 0 batches {\"userId\":null,\"batchSize\":30,\"maxBatches\":1000} {\"correlation_id\":\"c6145b9c-1c18-4073-ae56-415227cda914\",\"trace_id\":\"d1b9ac7f-39c0-4858-a72b-e304627b1f4d\"}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
8308324644148172569
|
6220992830396315873
|
click
|
accessibility
|
NULL
|
Project: faVsco.js, menu
JY-20725-handle-HS-search Project: faVsco.js, menu
JY-20725-handle-HS-search-rate-limit, menu
Start Listening for PHP Debug Connections
MatchActivityCrmDataTest
Run 'MatchActivityCrmDataTest'
Debug 'MatchActivityCrmDataTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Code changed:
Hide
Sync Changes
Hide This Notification
2
19
8
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Tests\Unit\Jobs\Crm;
use Illuminate\Database\Connection;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Jiminny\Exceptions\InvalidArgumentException;
use Jiminny\Jobs\Crm\MatchActivityCrmData;
use Jiminny\Models\Account;
use Jiminny\Models\Activity;
use Jiminny\Models\Contact;
use Jiminny\Models\Crm\Configuration;
use Jiminny\Models\Lead;
use Jiminny\Models\Opportunity;
use Jiminny\Models\Stage;
use Jiminny\Models\Team;
use Jiminny\Models\User;
use Jiminny\Repositories\ActivityRepository;
use Jiminny\Services\Crm\CrmActivityService;
use PHPUnit\Framework\MockObject\Exception;
use PHPUnit\Framework\MockObject\MockObject;
use Tests\TestCase;
class MatchActivityCrmDataTest extends TestCase
{
private ActivityRepository|MockObject $activityRepository;
private CrmActivityService|MockObject $crmActivityService;
private Connection|MockObject $connection;
protected function setUp(): void
{
parent::setUp();
$this->activityRepository = $this->createMock(ActivityRepository::class);
$this->crmActivityService = $this->createMock(CrmActivityService::class);
$this->connection = $this->createMock(Connection::class);
}
/**
* @throws \Exception|Exception
*/
public function testHandle(): void
{
$fromConfiguration = $this->createMock(Configuration::class);
$fromConfiguration->method('getId')->willReturn(5);
$team = $this->createMock(Team::class);
$user = $this->createMock(User::class);
$user->method('getTeam')->willReturn($team);
$activityConfiguration = $this->createMock(Configuration::class);
$activityConfiguration->method('getId')->willReturn(10);
$participants = $this->createMock(HasMany::class);
$activity = $this->createMock(Activity::class);
$activity->method('getUuid')->willReturn('test');
$activity->method('getProvider')->willReturn('provider');
$activity->method('getUser')->willReturn($user);
$activity->method('getCrm')->willReturn($activityConfiguration);
$activity->method('participants')->willReturn($participants);
$activity->expects($this->exactly(2))->method('update');
$this->activityRepository->expects(($this->once()))
->method('findById')
->with(1)
->willReturn($activity);
$this->activityRepository->expects($this->once())
->method('getActivityParticipants')
->with($activity)
->willReturn(collect([]));
$this->crmActivityService->expects($this->once())
->method('updateCrmData')
->with($activity, false);
$this->connection->expects($this->once())
->method('transaction')
->willReturnCallback(function ($callback) {
return $callback();
});
$job = new MatchActivityCrmData(
activityId: 1,
fromConfiguration: $fromConfiguration,
);
$job->handle(
activityRepository: $this->activityRepository,
crmActivityService: $this->crmActivityService,
connection: $this->connection,
);
}
/**
* @throws \Exception|Exception
*/
public function testHandleNoActivity(): void
{
$this->activityRepository->expects(($this->once()))
->method('findById')
->with(1)
->willReturn(null);
$job = new MatchActivityCrmData(
activityId: 1,
fromConfiguration: null,
);
$this->expectException(InvalidArgumentException::class);
$this->expectExceptionMessage('[MatchActivityCrmData] Cannot find activity.');
$job->handle(
activityRepository: $this->activityRepository,
crmActivityService: $this->crmActivityService,
connection: $this->connection,
);
}
public function testSkipsCrmConfigurationSwitchWhenAlreadyMatches(): void
{
$fromConfiguration = $this->createMock(Configuration::class);
$fromConfiguration->method('getId')->willReturn(5);
$activityConfiguration = $this->createMock(Configuration::class);
$activityConfiguration->method('getId')->willReturn(5);
$participants = $this->createMock(HasMany::class);
$activity = $this->createMock(Activity::class);
$activity->method('getCrm')->willReturn($activityConfiguration);
$activity->method('participants')->willReturn($participants);
$activity->expects($this->once())->method('update');
$this->activityRepository->expects($this->once())
->method('findById')
->with(123)
->willReturn($activity);
$this->activityRepository->expects($this->once())
->method('getActivityParticipants')
->with($activity)
->willReturn(collect([]));
$this->crmActivityService->expects($this->once())
->method('updateCrmData')
->with($activity, false);
$this->connection->expects($this->once())
->method('transaction')
->willReturnCallback(function ($callback) {
return $callback();
});
$job = new MatchActivityCrmData(
activityId: 123,
fromConfiguration: $fromConfiguration,
);
$job->handle(
activityRepository: $this->activityRepository,
crmActivityService: $this->crmActivityService,
connection: $this->connection,
);
}
public function testJobConfiguration(): void
{
$job = new MatchActivityCrmData(
activityId: 1,
fromConfiguration: null,
remoteSearch: false,
);
$this->assertSame(3, $job->tries);
$this->assertSame(300, $job->timeout());
$this->assertSame(360, $job->uniqueFor());
$this->assertSame([30, 90, 180], $job->backoff());
}
public function testUniqueId(): void
{
$configuration = $this->createMock(Configuration::class);
$configuration->method('getId')->willReturn(5);
$job1 = new MatchActivityCrmData(
activityId: 123,
fromConfiguration: null,
remoteSearch: false,
);
$this->assertSame('123:0:local', $job1->uniqueId());
$job2 = new MatchActivityCrmData(
activityId: 123,
fromConfiguration: null,
remoteSearch: true,
);
$this->assertSame('123:0:remote', $job2->uniqueId());
$job3 = new MatchActivityCrmData(
activityId: 123,
fromConfiguration: $configuration,
remoteSearch: false,
);
$this->assertSame('123:5:local', $job3->uniqueId());
}
public function testTransactionRollbackOnException(): void
{
$activity = $this->createMock(Activity::class);
$this->activityRepository->expects($this->once())
->method('findById')
->with(1)
->willReturn($activity);
$exception = new \RuntimeException('Test exception');
$this->connection->expects($this->once())
->method('transaction')
->willReturnCallback(function ($callback) use ($exception) {
throw $exception;
});
$job = new MatchActivityCrmData(
activityId: 1,
fromConfiguration: null,
);
$this->expectException(\RuntimeException::class);
$this->expectExceptionMessage('Test exception');
$job->handle(
activityRepository: $this->activityRepository,
crmActivityService: $this->crmActivityService,
connection: $this->connection,
);
}
public function testFailedMethodLogsError(): void
{
$exception = new \RuntimeException('Test failure');
$job = new MatchActivityCrmData(
activityId: 123,
fromConfiguration: null,
remoteSearch: true,
);
$job->failed($exception);
$this->assertTrue(true);
}
public function testLogsSuccessWhenMatchFound(): void
{
$participants = $this->createMock(HasMany::class);
$lead = $this->createMock(Lead::class);
$lead->method('getId')->willReturn(456);
$activity = $this->createMock(Activity::class);
$activity->method('participants')->willReturn($participants);
$activity->method('getLead')->willReturn($lead);
$activity->method('getContact')->willReturn(null);
$activity->method('getAccount')->willReturn(null);
$activity->method('getOpportunity')->willReturn(null);
$this->activityRepository->expects($this->once())
->method('findById')
->with(123)
->willReturn($activity);
$this->activityRepository->expects($this->once())
->method('getActivityParticipants')
->with($activity)
->willReturn(collect([]));
$this->crmActivityService->expects($this->once())
->method('updateCrmData')
->with($activity, false);
$this->connection->expects($this->once())
->method('transaction')
->willReturnCallback(function ($callback) {
return $callback();
});
$job = new MatchActivityCrmData(
activityId: 123,
fromConfiguration: null,
remoteSearch: false,
);
$job->handle(
activityRepository: $this->activityRepository,
crmActivityService: $this->crmActivityService,
connection: $this->connection,
);
}
public function testLogsNoMatchWhenNoMatchFound(): void
{
$participants = $this->createMock(HasMany::class);
$activity = $this->createMock(Activity::class);
$activity->method('participants')->willReturn($participants);
$activity->method('getLead')->willReturn(null);
$activity->method('getContact')->willReturn(null);
$activity->method('getAccount')->willReturn(null);
$activity->method('getOpportunity')->willReturn(null);
$this->activityRepository->expects($this->once())
->method('findById')
->with(123)
->willReturn($activity);
$this->activityRepository->expects($this->once())
->method('getActivityParticipants')
->with($activity)
->willReturn(collect([]));
$this->crmActivityService->expects($this->once())
->method('updateCrmData')
->with($activity, true);
$this->connection->expects($this->once())
->method('transaction')
->willReturnCallback(function ($callback) {
return $callback();
});
$job = new MatchActivityCrmData(
activityId: 123,
fromConfiguration: null,
remoteSearch: true,
);
$job->handle(
activityRepository: $this->activityRepository,
crmActivityService: $this->crmActivityService,
connection: $this->connection,
);
}
public function testLogsOldStateBeforeClearing(): void
{
$participant1 = new \stdClass();
$participant1->id = 10;
$participant1->user_id = 100;
$participant1->contact_id = 200;
$participant1->lead_id = null;
$participant2 = new \stdClass();
$participant2->id = 20;
$participant2->user_id = null;
$participant2->contact_id = null;
$participant2->lead_id = 300;
$participantsCollection = collect([$participant1, $participant2]);
$participantsRelation = $this->createMock(HasMany::class);
$lead = $this->createMock(Lead::class);
$lead->method('getId')->willReturn(111);
$contact = $this->createMock(Contact::class);
$contact->method('getId')->willReturn(222);
$account = $this->createMock(Account::class);
$account->method('getId')->willReturn(333);
$opportunity = $this->createMock(Opportunity::class);
$opportunity->method('getId')->willReturn(444);
$stage = $this->createMock(Stage::class);
$stage->method('getId')->willReturn(555);
$activity = $this->createMock(Activity::class);
$activity->method('participants')->willReturn($participantsRelation);
$activity->method('getLead')->willReturn($lead);
$activity->method('getContact')->willReturn($contact);
$activity->method('getAccount')->willReturn($account);
$activity->method('getOpportunity')->willReturn($opportunity);
$activity->method('getStage')->willReturn($stage);
$this->activityRepository->expects($this->once())
->method('findById')
->with(999)
->willReturn($activity);
$this->activityRepository->expects($this->once())
->method('getActivityParticipants')
->with($activity)
->willReturn($participantsCollection);
$this->crmActivityService->expects($this->once())
->method('updateCrmData')
->with($activity, false);
$this->connection->expects($this->once())
->method('transaction')
->willReturnCallback(function ($callback) {
return $callback();
});
$job = new MatchActivityCrmData(
activityId: 999,
fromConfiguration: null,
remoteSearch: false,
);
$job->handle(
activityRepository: $this->activityRepository,
crmActivityService: $this->crmActivityService,
connection: $this->connection,
);
}
}
Show Replace Field
Search History
429
New Line
Match Case
Words
Regex
Replace History
Replace
New Line
Preserve case
23/232
Previous Occurrence
Next Occurrence
Filter Search Results
Open in Window, Multiple Cursors
Click to highlight
Close
Sync Changes
Hide This Notification
Code changed:
Hide
[2026-05-11 11:17:21] local.NOTICE: Monitoring start {"correlation_id":"885fde59-3852-4120-a620-af3da7ecce17","trace_id":"4cc10f53-5d39-418d-8e98-fe53d9bbff5f"}
[2026-05-11 11:17:21] local.NOTICE: Monitoring end {"correlation_id":"885fde59-3852-4120-a620-af3da7ecce17","trace_id":"4cc10f53-5d39-418d-8e98-fe53d9bbff5f"}
[2026-05-11 11:17:34] local.INFO: Jiminny\Console\Commands\Command::run Memory usage before starting command {"command":"mailbox:skip-lists:refresh","memoryBeforeCommandInMb":60.0,"memoryPeakBeforeCommandInMb":99.727} {"correlation_id":"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90","trace_id":"fb6d8028-db7d-4ef2-b175-740f0a7b8b39"}
[2026-05-11 11:17:35] local.INFO: Jiminny\Console\Commands\Command::run Memory usage for command {"command":"mailbox:skip-lists:refresh","memoryBeforeCommandInMb":60.0,"memoryAfterCommandInMB":60.0,"memoryPeakBeforeCommandInMb":99.727,"memoryPeakAfterCommandInMB":99.727} {"correlation_id":"a773fb28-5a0c-4b8f-a1b5-d57e6b81db90","trace_id":"fb6d8028-db7d-4ef2-b175-740f0a7b8b39"}
[2026-05-11 11:17:37] local.INFO: [MatchActivityCrmData] Starting CRM data matching {"activity":615092,"remote_search":true,"set_configuration":2,"old_state":{"lead_id":null,"contact_id":null,"account_id":26,"opportunity_id":22,"stage_id":89}} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":615092} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":615092,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [MatchActivityCrmData] Participants old state {"activity":615092,"participants":[{"id":1004102,"user_id":null,"contact_id":null,"lead_id":null},{"id":1004103,"user_id":89,"contact_id":null,"lead_id":null}]} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:37] local.INFO: [Prospect match] Cache miss, calling the API {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Hubspot] Failed to fetch contact {"email":"[EMAIL]","reason":"[404] Client error: `GET https://api.hubapi.com/crm/v3/objects/contacts/nikolay.nikolov%40jiminny.com?properties=email%2Cfirstname%2Clastname%2Ccountry%2Cphone%2Cmobilephone%2Cjobtitle%2Chubspot_owner_id%2Cassociatedcompanyid%2Cphoto&archived=0&idProperty=email` resulted in a `404 Not Found` response"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] API returned empty result, caching the miss with empty prospect data {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.WARNING: [Hubspot] Received 429 from API {"team_id":2,"config_id":2,"retry_after":1,"reason":"Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response:
{\"status\":\"error\",\"message\":\"You have reached your secondly limit.\",\"errorType\":\"RATE_LIMIT\",\"correlationId\":\"019e16c1-c (truncated...)
"} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":4} {"correlation_id":"01554272-3758-416d-bcd8-0b07cf17fce3","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [MatchActivityCrmData] Starting CRM data matching {"activity":614436,"remote_search":true,"set_configuration":2,"old_state":{"lead_id":null,"contact_id":null,"account_id":26,"opportunity_id":22,"stage_id":89}} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614436} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614436,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [MatchActivityCrmData] Participants old state {"activity":614436,"participants":[{"id":1002751,"user_id":null,"contact_id":null,"lead_id":null},{"id":1002752,"user_id":89,"contact_id":null,"lead_id":null}]} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:38] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":3} {"correlation_id":"6f97c580-31f1-4723-80d8-b1046a615d37","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [MatchActivityCrmData] Starting CRM data matching {"activity":614382,"remote_search":true,"set_configuration":2,"old_state":{"lead_id":null,"contact_id":null,"account_id":26,"opportunity_id":22,"stage_id":89}} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614382} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614382,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [MatchActivityCrmData] Participants old state {"activity":614382,"participants":[{"id":1002632,"user_id":null,"contact_id":null,"lead_id":null},{"id":1002633,"user_id":89,"contact_id":null,"lead_id":null}]} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":1} {"correlation_id":"80fe8576-047a-495f-b42a-d75cb83d9591","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [MatchActivityCrmData] Starting CRM data matching {"activity":614381,"remote_search":true,"set_configuration":2,"old_state":{"lead_id":null,"contact_id":null,"account_id":26,"opportunity_id":22,"stage_id":89}} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614381} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614381,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [MatchActivityCrmData] Participants old state {"activity":614381,"participants":[{"id":1002630,"user_id":null,"contact_id":null,"lead_id":null},{"id":1002631,"user_id":89,"contact_id":null,"lead_id":null}]} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.WARNING: [Hubspot] Received 429 from API {"team_id":2,"config_id":2,"retry_after":1,"reason":"Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response:
{\"status\":\"error\",\"message\":\"You have reached your secondly limit.\",\"errorType\":\"RATE_LIMIT\",\"correlationId\":\"019e16c1-c (truncated...)
"} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":2} {"correlation_id":"55cd98de-2b2f-4dd6-b0d5-36af698ea32d","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [MatchActivityCrmData] Starting CRM data matching {"activity":614378,"remote_search":true,"set_configuration":2,"old_state":{"lead_id":null,"contact_id":6167,"account_id":null,"opportunity_id":null,"stage_id":null}} {"correlation_id":"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":614378} {"correlation_id":"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":614378,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [MatchActivityCrmData] Participants old state {"activity":614378,"participants":[{"id":1002623,"user_id":null,"contact_id":null,"lead_id":null},{"id":1002624,"user_id":null,"contact_id":6167,"lead_id":null},{"id":1002625,"user_id":89,"contact_id":null,"lead_id":null}]} {"correlation_id":"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:39] local.INFO: [Prospect match] cached empty result - no API calls, try next matching method {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [HandleHubspotRateLimit] Rate limit caught, releasing job with delay {"job_class":"Jiminny\\Jobs\\Crm\\MatchActivityCrmData","attempts":1,"retry_after":1,"delay":3} {"correlation_id":"05cfe3c8-6fd4-4a49-ab3c-70dfd05e457b","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [MatchActivityCrmData] Starting CRM data matching {"activity":613840,"remote_search":true,"set_configuration":2,"old_state":{"lead_id":null,"contact_id":4487,"account_id":244,"opportunity_id":299,"stage_id":36}} {"correlation_id":"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":613840} {"correlation_id":"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":613840,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [MatchActivityCrmData] Participants old state {"activity":613840,"participants":[{"id":1001764,"user_id":null,"contact_id":4487,"lead_id":null},{"id":1001765,"user_id":261,"contact_id":null,"lead_id":null}]} {"correlation_id":"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: ProspectCache - Searching DB for opportunity by owner {"account_id":244,"contact_id":4487,"owner_id":261} {"correlation_id":"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: ProspectCache - Opportunity DB search results {"account_id":244,"contact_id":4487,"opportunity_id":299} {"correlation_id":"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {"activity_id":613840,"team_id":2,"email":"[EMAIL]"} {"correlation_id":"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {"activity_id":613840,"participants_processed":2,"exact_matches":1,"domain_matches":0,"best_match_found":true} {"correlation_id":"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":613840} {"correlation_id":"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":613840,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {"activity":613840,"remote_search":true,"lead_id":null,"contact_id":4487,"account_id":244,"opportunity_id":299,"stage_id":36} {"correlation_id":"8ccfe9b2-ef68-4a3d-95a5-5ca1667f2a59","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [MatchActivityCrmData] Starting CRM data matching {"activity":613833,"remote_search":true,"set_configuration":2,"old_state":{"lead_id":null,"contact_id":4487,"account_id":244,"opportunity_id":299,"stage_id":36}} {"correlation_id":"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":613833} {"correlation_id":"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":613833,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [MatchActivityCrmData] Participants old state {"activity":613833,"participants":[{"id":1001750,"user_id":null,"contact_id":4487,"lead_id":null},{"id":1001751,"user_id":261,"contact_id":null,"lead_id":null}]} {"correlation_id":"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [ EsUpdateProcessManager ] Finished updating entities in ES {"worker":"","peak_memory":"99.73 MB","elapsed_seconds":1.0,"update_target":"activities","should_iterate_again":false} {"correlation_id":"8c24420c-db53-4450-9cd8-db5d2426bd57","trace_id":"5406d133-f6cd-4f5a-b463-9146e1dfb021"}
[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {"activity_id":613833,"team_id":2,"email":"[EMAIL]"} {"correlation_id":"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {"activity_id":613833,"participants_processed":2,"exact_matches":1,"domain_matches":0,"best_match_found":true} {"correlation_id":"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":613833} {"correlation_id":"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":613833,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {"activity":613833,"remote_search":true,"lead_id":null,"contact_id":4487,"account_id":244,"opportunity_id":299,"stage_id":36} {"correlation_id":"41fb906c-1cf1-4cdb-b1bd-c638f6abc0fe","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [MatchActivityCrmData] Starting CRM data matching {"activity":613827,"remote_search":true,"set_configuration":2,"old_state":{"lead_id":null,"contact_id":4487,"account_id":244,"opportunity_id":299,"stage_id":36}} {"correlation_id":"d1d42ab0-5c87-42e8-a91f-a56b538619ce","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":613827} {"correlation_id":"d1d42ab0-5c87-42e8-a91f-a56b538619ce","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":613827,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"d1d42ab0-5c87-42e8-a91f-a56b538619ce","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [MatchActivityCrmData] Participants old state {"activity":613827,"participants":[{"id":1001734,"user_id":null,"contact_id":4487,"lead_id":null},{"id":1001735,"user_id":261,"contact_id":null,"lead_id":null}]} {"correlation_id":"d1d42ab0-5c87-42e8-a91f-a56b538619ce","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"d1d42ab0-5c87-42e8-a91f-a56b538619ce","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"d1d42ab0-5c87-42e8-a91f-a56b538619ce","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"d1d42ab0-5c87-42e8-a91f-a56b538619ce","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"d1d42ab0-5c87-42e8-a91f-a56b538619ce","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"d1d42ab0-5c87-42e8-a91f-a56b538619ce","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {"activity_id":613827,"team_id":2,"email":"[EMAIL]"} {"correlation_id":"d1d42ab0-5c87-42e8-a91f-a56b538619ce","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {"activity_id":613827,"participants_processed":2,"exact_matches":1,"domain_matches":0,"best_match_found":true} {"correlation_id":"d1d42ab0-5c87-42e8-a91f-a56b538619ce","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":613827} {"correlation_id":"d1d42ab0-5c87-42e8-a91f-a56b538619ce","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":613827,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"d1d42ab0-5c87-42e8-a91f-a56b538619ce","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {"activity":613827,"remote_search":true,"lead_id":null,"contact_id":4487,"account_id":244,"opportunity_id":299,"stage_id":36} {"correlation_id":"d1d42ab0-5c87-42e8-a91f-a56b538619ce","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [MatchActivityCrmData] Starting CRM data matching {"activity":613826,"remote_search":true,"set_configuration":2,"old_state":{"lead_id":null,"contact_id":4487,"account_id":244,"opportunity_id":299,"stage_id":36}} {"correlation_id":"861e79c7-b5d3-4476-b429-0f1b4cf196a4","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":613826} {"correlation_id":"861e79c7-b5d3-4476-b429-0f1b4cf196a4","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":613826,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"861e79c7-b5d3-4476-b429-0f1b4cf196a4","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [MatchActivityCrmData] Participants old state {"activity":613826,"participants":[{"id":1001732,"user_id":null,"contact_id":4487,"lead_id":null},{"id":1001733,"user_id":261,"contact_id":null,"lead_id":null}]} {"correlation_id":"861e79c7-b5d3-4476-b429-0f1b4cf196a4","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Fetching token {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"861e79c7-b5d3-4476-b429-0f1b4cf196a4","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [SocialAccountService] Token retrieved {"socialAccountId":1499,"provider":"hubspot"} {"correlation_id":"861e79c7-b5d3-4476-b429-0f1b4cf196a4","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"861e79c7-b5d3-4476-b429-0f1b4cf196a4","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"crm_provider":"hubspot","crm_owner":148,"team_id":2} {"correlation_id":"861e79c7-b5d3-4476-b429-0f1b4cf196a4","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [Prospect match] Cache / local search hit {"identifier_type":"email","identifier":"[EMAIL]"} {"correlation_id":"861e79c7-b5d3-4476-b429-0f1b4cf196a4","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [CrmActivityService] Email domain belongs to the team, skipping crm lookup {"activity_id":613826,"team_id":2,"email":"[EMAIL]"} {"correlation_id":"861e79c7-b5d3-4476-b429-0f1b4cf196a4","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [CrmActivityService] CRM matching completed {"activity_id":613826,"participants_processed":2,"exact_matches":1,"domain_matches":0,"best_match_found":true} {"correlation_id":"861e79c7-b5d3-4476-b429-0f1b4cf196a4","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":613826} {"correlation_id":"861e79c7-b5d3-4476-b429-0f1b4cf196a4","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":613826,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"861e79c7-b5d3-4476-b429-0f1b4cf196a4","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [MatchActivityCrmData] Successfully matched CRM data {"activity":613826,"remote_search":true,"lead_id":null,"contact_id":4487,"account_id":244,"opportunity_id":299,"stage_id":36} {"correlation_id":"861e79c7-b5d3-4476-b429-0f1b4cf196a4","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [MatchActivityCrmData] Starting CRM data matching {"activity":613820,"remote_search":true,"set_configuration":2,"old_state":{"lead_id":null,"contact_id":4487,"account_id":244,"opportunity_id":299,"stage_id":36}} {"correlation_id":"97a99ff2-5956-4d77-837b-790c01b09967","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [ EsUpdateTarget ] Update single target {"target":"activities","purpose":"searchable-observer-update","entityId":613820} {"correlation_id":"97a99ff2-5956-4d77-837b-790c01b09967","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] local.INFO: [ AsyncUpdateElasticSearch ] Entity added to Redis list {"entityType":"activities","entityId":613820,"collectionKey":"activities-for-update-priority","withPriority":true} {"correlation_id":"97a99ff2-5956-4d77-837b-790c01b09967","trace_id":"6cee2988-85fe-44ce-ba47-56fc0392669c"}
[2026-05-11 11:17:40] loc...
|
19520
|
NULL
|
NULL
|
NULL
|
|
19523
|
835
|
5
|
2026-05-11T12:58:12.585052+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778504292585_m2.jpg...
|
Code
|
Review rate limit handli… — app
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 12 pending changes
12
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php
SaveTranscription.php
SetupLayout.php
SyncActivity.php
SyncFieldMetadata.php
SyncHubspotObjects.php
SyncLeads.php
SyncObjects.php
SyncOpportunitiesJob.php
SyncOpportunity.php
SyncProfileMetadata.php
SyncTeamFieldsJob.php
SyncTeamMetadata.php
UpdateOpportunitySpecifications.php
UpdateStage.php
DealRisks
Mailbox
MeetingBot
Middleware
HandleHubspotRateLimit.php
RateLimited.php
Streaming
Team
Telephony
User
BaseProcessingJob.php
DummyJob.php
ImportRecallAIRecordingsJob.php
ImportRemoteTrackJob.php
Job.php
JobDispatcher.php
JobDispatcherInterface.php
PurgeSoftDeletedOpportunityJob.php
SqsVisibilityControl.php
Listeners
Mail
Models
Activity
Ai
AskAnything
Calendar
Connection
Crm
Jobs
app
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
MySQL Section
MYSQL
MYSQL
MatchActivityCrmData.php, Editor Group 1
RateLimitException.php, Editor Group 1
HandleHubspotRateLimit.php, Editor Group 1
Client.php, Editor Group 1
HubspotPaginationService.php, Editor Group 1
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Middleware;
use Illuminate\Support\Facades\Log;
use Jiminny\Exceptions\RateLimitException;
/**
* Job middleware that catches RateLimitException from HubSpot API calls
* and releases the job back to the queue with the appropriate delay.
*/
class HandleHubspotRateLimit
{
private const int MAX_RETRY_DELAY = 600;
private const int MIN_RETRY_DELAY = 1;
private const int JITTER_SECONDS = 5;
public function handle(object $job, callable $next): void
{
try {
$next($job);
} catch (RateLimitException $e) {
$delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));
// Add jitter to prevent thundering herd problem by randomizing retry times
$delay += random_int(0, self::JITTER_SECONDS);
$attempts = $job->attempts();
if ($attempts <= 3 || $attempts % 10 === 0) {
Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [
'job_class' => $job::class,
'attempts' => $attempts,
'retry_after' => $e->getRetryAfter(),
'delay' => $delay,
]);
}
$job->release($delay);
}
}
}
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Middleware;
use Illuminate\Support\Facades\Log;
use Jiminny\Exceptions\RateLimitException;
/**
* Job middleware that catches RateLimitException from HubSpot API calls
* and releases the job back to the queue with the appropriate delay.
*/
class HandleHubspotRateLimit
{
private const int MAX_RETRY_DELAY = 600;
private const int MIN_RETRY_DELAY = 1;
private const int JITTER_SECONDS = 5;
public function handle(object $job, callable $next): void
{
try {
$next($job);
} catch (RateLimitException $e) {
$delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));
// Add jitter to prevent thundering herd problem by randomizing retry times
$delay += random_int(0, self::JITTER_SECONDS);
$attempts = $job->attempts();
if ($attempts <= 3 || $attempts % 10 === 0) {
Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [
'job_class' => $job::class,
'attempts' => $attempts,
'retry_after' => $e->getRetryAfter(),
'delay' => $delay,
]);
}
$job->release($delay);
}
}
}
Review rate limit handli…, Editor Group 2
remote
app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...
JY-20725-handle-HS-search-rate-limit*
app (Git) - Synchronize Changes
Errors: 6, Warnings: 9, Infos: 2
6
9
2
Notifications
key, PHP extension: Premium features not active.
Sign In
Sign In
Diff editor
Clear
Review rate limit handling for HubSpot job queue
Session history
New session
Message actions
RateLimitException.php#9-9
RateLimitException.php#9-9
Reveiw the diff. Mostly
@app/Jobs/Crm/MatchActivityCrmData.php
,
@app/Exceptions/RateLimitException.php
,
@app/Jobs/Middleware/HandleHubspotRateLimit.php
,
@app/Services/Crm/Hubspot/Client.php
and
@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php
. The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?
Thought for 5s
Thought for 5s
I'll review the implementation carefully. Let me first check how
RateLimitException
is used elsewhere and look at the test files and
PaginationState
.
Bash
Find all usages of RateLimitException outside the changed files
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/app --include="*.php" | grep -v "HandleHubspotRateLimit\|MatchActivityCrmData\|Client.php\|RateLimitException.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:17:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:68: RateLimitException |
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:15:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:58: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:19:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:76: RateLimitException |
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:50: * @throws RateLimitException When rate limit is hit
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:195: // RateLimitException and other exceptions are re-thrown as-is
Read
PaginationState.php
PaginationState.php
Read
HandleHubspotRateLimitTest.php
HandleHubspotRateLimitTest.php
Bash
Check how RateLimitException is used in GenerateActionItemsJob
IN
grep -rn "RateLimitException\|LogicException\|RuntimeException" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -20
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
Bash
Find all catch blocks or instanceof checks for RateLimitException
IN
grep -rn "catch.*RateLimitException\|instanceof RateLimitException" /Users/lukas/jiminny/app/app --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:11: * Job middleware that catches RateLimitException from HubSpot API calls
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:24: } catch (RateLimitException $e) {
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:149: if (! $e instanceof RateLimitException) {
Bash
Find all test references to RateLimitException
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/tests --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:13:#[CoversClass(RateLimitException::class)]
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:14:class RateLimitExceptionTest extends TestCase
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:18: $exception = new RateLimitException();
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:28: $exception = new RateLimitException('Hubspot rate limit', 30, $previous);
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:52: $exception = new RateLimitException('test', $input);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:10:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:49: public function testPropagatesNonRateLimitExceptions(): void
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:103: throw new RateLimitException('rate limited', $retryAfter);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:150: throw new RateLimitException('rate limited', 1);
Bash
Check retry/failure handling in GenerateActionItemsJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -30
Copy code to clipboard
OUT
13:use Jiminny\Exceptions\RateLimitException;
51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
56: $this->release(30);
Bash
Check retry/failure handling in GenerateAiCallScoringJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php | head -30
Copy code to clipboard
OUT
17:use Jiminny\Exceptions\RateLimitException;
68: RateLimitException |
75: $this->release(30);
Bash...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Explorer (⇧⌘E)","depth":19,"bounds":{"left":0.0,"top":0.047885075,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":true},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.057462092,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Search (⇧⌘F)","depth":19,"bounds":{"left":0.0,"top":0.08619314,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.09577015,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Source Control (⌃⇧G) - 12 pending changes","depth":19,"bounds":{"left":0.0,"top":0.1245012,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.13407822,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"12","depth":22,"bounds":{"left":0.00831117,"top":0.1452514,"width":0.003656915,"height":0.008778931},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.008643617,"top":0.14604948,"width":0.0016622341,"height":0.007980846}},{"char_start":1,"char_count":1,"bounds":{"left":0.009973404,"top":0.14604948,"width":0.0023271276,"height":0.007980846}}],"role_description":"text"},{"role":"AXRadioButton","text":"Run and Debug (⇧⌘D)","depth":19,"bounds":{"left":0.0,"top":0.16280925,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.17238627,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Remote Explorer","depth":19,"bounds":{"left":0.0,"top":0.20111732,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.21069433,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Extensions (⇧⌘X) - 2 require update","depth":19,"bounds":{"left":0.0,"top":0.23942538,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.2490024,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":22,"bounds":{"left":0.009640957,"top":0.2601756,"width":0.0019946808,"height":0.008778931},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Testing","depth":19,"bounds":{"left":0.0,"top":0.27773345,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.28731045,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Claude Code","depth":19,"bounds":{"left":0.0,"top":0.3160415,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"EXPLORER","depth":17,"bounds":{"left":0.022606382,"top":0.047885075,"width":0.018949468,"height":0.02793296},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"EXPLORER","depth":18,"bounds":{"left":0.022606382,"top":0.056664005,"width":0.018949468,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.022606382,"top":0.056664005,"width":0.0023271276,"height":0.0103751}},{"char_start":1,"char_count":7,"bounds":{"left":0.024933511,"top":0.056664005,"width":0.01662234,"height":0.0103751}}],"role_description":"text"},{"role":"AXButton","text":"Explorer Section: app","depth":21,"bounds":{"left":0.015957447,"top":0.07581804,"width":0.09940159,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.07821229,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"Explorer Section: app","depth":22,"bounds":{"left":0.022606382,"top":0.07581804,"width":0.0076462766,"height":0.017557861},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"APP","depth":23,"bounds":{"left":0.022606382,"top":0.079010375,"width":0.0076462766,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.0933759,"width":0.0063164895,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CheckAndRetryRemoteMatch.php","depth":27,"bounds":{"left":0.033909574,"top":0.0933759,"width":0.068484046,"height":0.011173184},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.0933759,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":27,"bounds":{"left":0.036901597,"top":0.0933759,"width":0.06549202,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.10853951,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateFollowupActivity.php","depth":27,"bounds":{"left":0.033909574,"top":0.110135674,"width":0.054853722,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.11093376,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":25,"bounds":{"left":0.036901597,"top":0.11093376,"width":0.051861703,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.12609737,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateNotes.php","depth":27,"bounds":{"left":0.033909574,"top":0.12769353,"width":0.034242023,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.12849163,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.036901597,"top":0.12849163,"width":0.03125,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.14365523,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivitiesToNewOpportunity.php","depth":27,"bounds":{"left":0.033909574,"top":0.1452514,"width":0.07712766,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.14604948,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":34,"bounds":{"left":0.037898935,"top":0.14604948,"width":0.07347074,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.16121309,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivityCrmData.php","depth":27,"bounds":{"left":0.033909574,"top":0.16280925,"width":0.054521278,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.16360734,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":23,"bounds":{"left":0.037898935,"top":0.16360734,"width":0.050531916,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.17877094,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"NoteObject.php","depth":27,"bounds":{"left":0.033909574,"top":0.18036711,"width":0.031914894,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.1811652,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":13,"bounds":{"left":0.03723404,"top":0.1811652,"width":0.028922873,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.1963288,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SaveActivity.php","depth":27,"bounds":{"left":0.033909574,"top":0.19792499,"width":0.03324468,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.19872306,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":15,"bounds":{"left":0.03656915,"top":0.19872306,"width":0.030585106,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.21388668,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SaveTranscription.php","depth":27,"bounds":{"left":0.033909574,"top":0.21548285,"width":0.04454787,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.21628092,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":20,"bounds":{"left":0.03656915,"top":0.21628092,"width":0.042220745,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.23144454,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SetupLayout.php","depth":27,"bounds":{"left":0.033909574,"top":0.2330407,"width":0.034242023,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.23383878,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.03656915,"top":0.23383878,"width":0.031914894,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.2490024,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncActivity.php","depth":27,"bounds":{"left":0.033909574,"top":0.25059855,"width":0.03357713,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.25139666,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":15,"bounds":{"left":0.03656915,"top":0.25139666,"width":0.030917553,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.26656026,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncFieldMetadata.php","depth":27,"bounds":{"left":0.033909574,"top":0.26815644,"width":0.047539894,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.26895452,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":20,"bounds":{"left":0.03656915,"top":0.26895452,"width":0.04488032,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.28411812,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncHubspotObjects.php","depth":27,"bounds":{"left":0.033909574,"top":0.2857143,"width":0.051861703,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.28651237,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":21,"bounds":{"left":0.03656915,"top":0.28651237,"width":0.04920213,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.30167598,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncLeads.php","depth":27,"bounds":{"left":0.033909574,"top":0.30327216,"width":0.030917553,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.30407023,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":12,"bounds":{"left":0.03656915,"top":0.30407023,"width":0.02825798,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.31923383,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncObjects.php","depth":27,"bounds":{"left":0.033909574,"top":0.32083002,"width":0.034574468,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.3216281,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.03656915,"top":0.3216281,"width":0.031914894,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.3367917,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncOpportunitiesJob.php","depth":27,"bounds":{"left":0.033909574,"top":0.33838788,"width":0.053856384,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.33918595,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":23,"bounds":{"left":0.03656915,"top":0.33918595,"width":0.05119681,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.35434955,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncOpportunity.php","depth":27,"bounds":{"left":0.033909574,"top":0.35594574,"width":0.04288564,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.3567438,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":18,"bounds":{"left":0.03656915,"top":0.3567438,"width":0.040226065,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.3719074,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncProfileMetadata.php","depth":27,"bounds":{"left":0.033909574,"top":0.3735036,"width":0.05086436,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.37430167,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":22,"bounds":{"left":0.03656915,"top":0.37430167,"width":0.048204787,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.38946527,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncTeamFieldsJob.php","depth":27,"bounds":{"left":0.033909574,"top":0.39106146,"width":0.04886968,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.39185953,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":20,"bounds":{"left":0.03656915,"top":0.39185953,"width":0.046210106,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.40702313,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncTeamMetadata.php","depth":27,"bounds":{"left":0.033909574,"top":0.4086193,"width":0.048537236,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.4094174,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":19,"bounds":{"left":0.03656915,"top":0.4094174,"width":0.045877658,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.424581,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"UpdateOpportunitySpecifications.php","depth":27,"bounds":{"left":0.033909574,"top":0.42617717,"width":0.076130316,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.42697525,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":34,"bounds":{"left":0.03723404,"top":0.42697525,"width":0.0731383,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.44213888,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"UpdateStage.php","depth":27,"bounds":{"left":0.033909574,"top":0.44373503,"width":0.03523936,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.4445331,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.03723404,"top":0.4445331,"width":0.032247342,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.4612929,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"DealRisks","depth":27,"bounds":{"left":0.03125,"top":0.4612929,"width":0.019614361,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.46209097,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":8,"bounds":{"left":0.034574468,"top":0.46209097,"width":0.016289894,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.47885075,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mailbox","depth":27,"bounds":{"left":0.03125,"top":0.47885075,"width":0.015625,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.47964883,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":6,"bounds":{"left":0.03523936,"top":0.47964883,"width":0.011635638,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.4964086,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MeetingBot","depth":27,"bounds":{"left":0.03125,"top":0.4964086,"width":0.023271276,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.49720672,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":9,"bounds":{"left":0.03523936,"top":0.49720672,"width":0.019281914,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.5139665,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Middleware","depth":27,"bounds":{"left":0.03125,"top":0.5139665,"width":0.023271276,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.51476455,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":9,"bounds":{"left":0.03523936,"top":0.51476455,"width":0.019281914,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.52992815,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"HandleHubspotRateLimit.php","depth":27,"bounds":{"left":0.033909574,"top":0.53152436,"width":0.059175532,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.5323224,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":25,"bounds":{"left":0.03723404,"top":0.5323224,"width":0.05618351,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.547486,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"RateLimited.php","depth":27,"bounds":{"left":0.033909574,"top":0.5490822,"width":0.032912236,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.54988027,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.036901597,"top":0.54988027,"width":0.029920213,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.5666401,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Streaming","depth":27,"bounds":{"left":0.03125,"top":0.5666401,"width":0.020611702,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.5674381,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":8,"bounds":{"left":0.033909574,"top":0.5674381,"width":0.017952127,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.58419794,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Team","depth":27,"bounds":{"left":0.03125,"top":0.58419794,"width":0.010970744,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.584996,"width":0.0023271276,"height":0.011971269}},{"char_start":1,"char_count":3,"bounds":{"left":0.03357713,"top":0.584996,"width":0.008643617,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.6017558,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Telephony","depth":27,"bounds":{"left":0.03125,"top":0.6017558,"width":0.020611702,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.60255384,"width":0.0023271276,"height":0.011971269}},{"char_start":1,"char_count":8,"bounds":{"left":0.03357713,"top":0.60255384,"width":0.018284574,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.61931366,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"User","depth":27,"bounds":{"left":0.03125,"top":0.61931366,"width":0.00930851,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.6201117,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":3,"bounds":{"left":0.034574468,"top":0.6201117,"width":0.0063164895,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.63527536,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"BaseProcessingJob.php","depth":27,"bounds":{"left":0.03125,"top":0.6368715,"width":0.048537236,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.63766956,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":20,"bounds":{"left":0.034242023,"top":0.63766956,"width":0.045545213,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.6528332,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"DummyJob.php","depth":27,"bounds":{"left":0.03125,"top":0.6544294,"width":0.03158245,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.6552275,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":11,"bounds":{"left":0.034574468,"top":0.6552275,"width":0.02825798,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.6703911,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"ImportRecallAIRecordingsJob.php","depth":27,"bounds":{"left":0.03125,"top":0.67198724,"width":0.068484046,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.67278534,"width":0.0013297872,"height":0.011971269}},{"char_start":1,"char_count":30,"bounds":{"left":0.032579787,"top":0.67278534,"width":0.06715426,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.68794894,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"ImportRemoteTrackJob.php","depth":27,"bounds":{"left":0.03125,"top":0.6895451,"width":0.055518616,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.6903432,"width":0.0013297872,"height":0.011971269}},{"char_start":1,"char_count":23,"bounds":{"left":0.032579787,"top":0.6903432,"width":0.054521278,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.7055068,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Job.php","depth":27,"bounds":{"left":0.03125,"top":0.70710295,"width":0.016289894,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.70790106,"width":0.0023271276,"height":0.011971269}},{"char_start":1,"char_count":6,"bounds":{"left":0.03357713,"top":0.70790106,"width":0.014295213,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.72306466,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JobDispatcher.php","depth":27,"bounds":{"left":0.03125,"top":0.7246608,"width":0.037898935,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.7254589,"width":0.0023271276,"height":0.011971269}},{"char_start":1,"char_count":16,"bounds":{"left":0.03357713,"top":0.7254589,"width":0.035904255,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.7406225,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JobDispatcherInterface.php","depth":27,"bounds":{"left":0.03125,"top":0.7422187,"width":0.05618351,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.7430168,"width":0.0023271276,"height":0.011971269}},{"char_start":1,"char_count":25,"bounds":{"left":0.03357713,"top":0.7430168,"width":0.05418883,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.7581804,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"PurgeSoftDeletedOpportunityJob.php","depth":27,"bounds":{"left":0.03125,"top":0.75977653,"width":0.076130316,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.77573824,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SqsVisibilityControl.php","depth":27,"bounds":{"left":0.03125,"top":0.7773344,"width":0.047872342,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.022273935,"top":0.79489225,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Listeners","depth":27,"bounds":{"left":0.028590426,"top":0.79489225,"width":0.018284574,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.022273935,"top":0.8124501,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mail","depth":27,"bounds":{"left":0.028590426,"top":0.8124501,"width":0.00831117,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.022273935,"top":0.830008,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Models","depth":27,"bounds":{"left":0.028590426,"top":0.830008,"width":0.01462766,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.8475658,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Activity","depth":27,"bounds":{"left":0.03125,"top":0.8475658,"width":0.014960106,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.8651237,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Ai","depth":27,"bounds":{"left":0.03125,"top":0.8651237,"width":0.0039893617,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.88268155,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"AskAnything","depth":27,"bounds":{"left":0.03125,"top":0.88268155,"width":0.025265958,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.9002394,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Calendar","depth":27,"bounds":{"left":0.03125,"top":0.9002394,"width":0.017952127,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.91779727,"width":0.005319149,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Connection","depth":27,"bounds":{"left":0.03125,"top":0.91779727,"width":0.022938829,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.13088587,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Crm","depth":27,"bounds":{"left":0.03125,"top":0.13088587,"width":0.00831117,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.022273935,"top":0.11332801,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Jobs","depth":27,"bounds":{"left":0.028590426,"top":0.11332801,"width":0.009640957,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.019614361,"top":0.09577015,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"app","depth":27,"bounds":{"left":0.025930852,"top":0.09577015,"width":0.0076462766,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.10605053,"top":0.096568234,"width":0.004654255,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Outline Section","depth":21,"bounds":{"left":0.015957447,"top":0.92976856,"width":0.09940159,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.9321628,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"OUTLINE","depth":22,"bounds":{"left":0.022606382,"top":0.92976856,"width":0.01662234,"height":0.017557861},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"OUTLINE","depth":23,"bounds":{"left":0.022606382,"top":0.933759,"width":0.01662234,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Timeline Section","depth":21,"bounds":{"left":0.015957447,"top":0.9473264,"width":0.09940159,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.9497207,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"TIMELINE","depth":22,"bounds":{"left":0.022606382,"top":0.9473264,"width":0.01761968,"height":0.017557861},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"TIMELINE","depth":23,"bounds":{"left":0.022606382,"top":0.95131683,"width":0.01761968,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"MySQL Section","depth":21,"bounds":{"left":0.015957447,"top":0.9648843,"width":0.09940159,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.96727854,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"MYSQL","depth":22,"bounds":{"left":0.022606382,"top":0.9648843,"width":0.013297873,"height":0.017557861},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"MYSQL","depth":23,"bounds":{"left":0.022606382,"top":0.9688747,"width":0.013297873,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"MatchActivityCrmData.php, Editor Group 1","depth":28,"bounds":{"left":0.11569149,"top":0.047885075,"width":0.07480053,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"RateLimitException.php, Editor Group 1","depth":28,"bounds":{"left":0.19015957,"top":0.047885075,"width":0.06815159,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"HandleHubspotRateLimit.php, Editor Group 1","depth":28,"bounds":{"left":0.25797874,"top":0.047885075,"width":0.080119684,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXRadioButton","text":"Client.php, Editor Group 1","depth":28,"bounds":{"left":0.33776596,"top":0.047885075,"width":0.045545213,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"HubspotPaginationService.php, Editor Group 1","depth":28,"bounds":{"left":0.38297874,"top":0.047885075,"width":0.08277926,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.12832446,"top":0.07821229,"width":0.0056515955,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.14328457,"top":0.07821229,"width":0.0056515955,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.171875,"top":0.07821229,"width":0.0056515955,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.24401596,"top":0.07821229,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.24933511,"top":0.07821229,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Middleware;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Exceptions\\RateLimitException;\n\n/**\n * Job middleware that catches RateLimitException from HubSpot API calls\n * and releases the job back to the queue with the appropriate delay.\n */\nclass HandleHubspotRateLimit\n{\n private const int MAX_RETRY_DELAY = 600;\n private const int MIN_RETRY_DELAY = 1;\n private const int JITTER_SECONDS = 5;\n\n public function handle(object $job, callable $next): void\n {\n try {\n $next($job);\n } catch (RateLimitException $e) {\n $delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));\n // Add jitter to prevent thundering herd problem by randomizing retry times\n $delay += random_int(0, self::JITTER_SECONDS);\n\n $attempts = $job->attempts();\n if ($attempts <= 3 || $attempts % 10 === 0) {\n Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [\n 'job_class' => $job::class,\n 'attempts' => $attempts,\n 'retry_after' => $e->getRetryAfter(),\n 'delay' => $delay,\n ]);\n }\n\n $job->release($delay);\n }\n }\n}","depth":28,"bounds":{"left":0.13763298,"top":0.27613726,"width":0.23803191,"height":0.014365523},"on_screen":true,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Middleware;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Exceptions\\RateLimitException;\n\n/**\n * Job middleware that catches RateLimitException from HubSpot API calls\n * and releases the job back to the queue with the appropriate delay.\n */\nclass HandleHubspotRateLimit\n{\n private const int MAX_RETRY_DELAY = 600;\n private const int MIN_RETRY_DELAY = 1;\n private const int JITTER_SECONDS = 5;\n\n public function handle(object $job, callable $next): void\n {\n try {\n $next($job);\n } catch (RateLimitException $e) {\n $delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));\n // Add jitter to prevent thundering herd problem by randomizing retry times\n $delay += random_int(0, self::JITTER_SECONDS);\n\n $attempts = $job->attempts();\n if ($attempts <= 3 || $attempts % 10 === 0) {\n Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [\n 'job_class' => $job::class,\n 'attempts' => $attempts,\n 'retry_after' => $e->getRetryAfter(),\n 'delay' => $delay,\n ]);\n }\n\n $job->release($delay);\n }\n }\n}","role_description":"editor","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Middleware;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Exceptions\\RateLimitException;\n\n/**\n * Job middleware that catches RateLimitException from HubSpot API calls\n * and releases the job back to the queue with the appropriate delay.\n */\nclass HandleHubspotRateLimit\n{\n private const int MAX_RETRY_DELAY = 600;\n private const int MIN_RETRY_DELAY = 1;\n private const int JITTER_SECONDS = 5;\n\n public function handle(object $job, callable $next): void\n {\n try {\n $next($job);\n } catch (RateLimitException $e) {\n $delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));\n // Add jitter to prevent thundering herd problem by randomizing retry times\n $delay += random_int(0, self::JITTER_SECONDS);\n\n $attempts = $job->attempts();\n if ($attempts <= 3 || $attempts % 10 === 0) {\n Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [\n 'job_class' => $job::class,\n 'attempts' => $attempts,\n 'retry_after' => $e->getRetryAfter(),\n 'delay' => $delay,\n ]);\n }\n\n $job->release($delay);\n }\n }\n}","depth":29,"bounds":{"left":0.13763298,"top":0.27613726,"width":0.23803191,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Review rate limit handli…, Editor Group 2","depth":28,"bounds":{"left":0.5578458,"top":0.047885075,"width":0.07014628,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXButton","text":"remote","depth":16,"bounds":{"left":0.0006648936,"top":0.98244214,"width":0.010638298,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...","depth":16,"bounds":{"left":0.012965426,"top":0.98244214,"width":0.084773935,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.013962766,"top":0.9848364,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JY-20725-handle-HS-search-rate-limit*","depth":17,"bounds":{"left":0.019281914,"top":0.9856345,"width":0.0774601,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"app (Git) - Synchronize Changes","depth":16,"bounds":{"left":0.09740692,"top":0.98244214,"width":0.0076462766,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Errors: 6, Warnings: 9, Infos: 2","depth":16,"bounds":{"left":0.107380316,"top":0.98244214,"width":0.032579787,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.109042555,"top":0.9848364,"width":0.0056515955,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"6","depth":17,"bounds":{"left":0.1143617,"top":0.9856345,"width":0.004986702,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.11934841,"top":0.9848364,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"9","depth":17,"bounds":{"left":0.124667555,"top":0.9856345,"width":0.004654255,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.12932181,"top":0.9848364,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":17,"bounds":{"left":0.13464096,"top":0.9856345,"width":0.003656915,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Notifications","depth":16,"bounds":{"left":0.9886968,"top":0.98244214,"width":0.010638298,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"key, PHP extension: Premium features not active.","depth":16,"bounds":{"left":0.9790558,"top":0.98244214,"width":0.008643617,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sign In","depth":16,"bounds":{"left":0.9544548,"top":0.98244214,"width":0.022606382,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.95611703,"top":0.9848364,"width":0.0056515955,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Sign In","depth":17,"bounds":{"left":0.96143615,"top":0.9856345,"width":0.013962766,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Diff editor","depth":12,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Clear","depth":12,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Review rate limit handling for HubSpot job queue","depth":19,"bounds":{"left":0.56017286,"top":0.08060654,"width":0.099734046,"height":0.022346368},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Session history","depth":19,"bounds":{"left":0.9780585,"top":0.08060654,"width":0.00930851,"height":0.022346368},"on_screen":true,"help_text":"Session history","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New session","depth":19,"bounds":{"left":0.9886968,"top":0.08060654,"width":0.00930851,"height":0.022346368},"on_screen":true,"help_text":"New session","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Message actions","depth":24,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"RateLimitException.php#9-9","depth":23,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"RateLimitException.php#9-9","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Reveiw the diff. Mostly","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Jobs/Crm/MatchActivityCrmData.php","depth":26,"on_screen":false,"help_text":"Open app/Jobs/Crm/MatchActivityCrmData.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Exceptions/RateLimitException.php","depth":26,"on_screen":false,"help_text":"Open app/Exceptions/RateLimitException.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Jobs/Middleware/HandleHubspotRateLimit.php","depth":26,"on_screen":false,"help_text":"Open app/Jobs/Middleware/HandleHubspotRateLimit.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Services/Crm/Hubspot/Client.php","depth":26,"on_screen":false,"help_text":"Open app/Services/Crm/Hubspot/Client.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"and","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php","depth":26,"on_screen":false,"help_text":"Open app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":". The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Thought for 5s","depth":23,"on_screen":false,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thought for 5s","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"I'll review the implementation carefully. Let me first check how","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is used elsewhere and look at the test files and","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"PaginationState","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":".","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find all usages of RateLimitException outside the changed files","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"RateLimitException\" /Users/lukas/jiminny/app/app --include=\"*.php\" | grep -v \"HandleHubspotRateLimit\\|MatchActivityCrmData\\|Client.php\\|RateLimitException.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception\n/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:17:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:68: RateLimitException |\n/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:15:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:58: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception\n/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:19:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:76: RateLimitException |\n/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:8:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:50: * @throws RateLimitException When rate limit is hit\n/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:195: // RateLimitException and other exceptions are re-thrown as-is","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"PaginationState.php","depth":24,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"PaginationState.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"HandleHubspotRateLimitTest.php","depth":24,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"HandleHubspotRateLimitTest.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check how RateLimitException is used in GenerateActionItemsJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"RateLimitException\\|LogicException\\|RuntimeException\" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -20","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find all catch blocks or instanceof checks for RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"catch.*RateLimitException\\|instanceof RateLimitException\" /Users/lukas/jiminny/app/app --include=\"*.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:11: * Job middleware that catches RateLimitException from HubSpot API calls\n/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:24: } catch (RateLimitException $e) {\n/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:149: if (! $e instanceof RateLimitException) {","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find all test references to RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"RateLimitException\" /Users/lukas/jiminny/app/tests --include=\"*.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:8:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:13:#[CoversClass(RateLimitException::class)]\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:14:class RateLimitExceptionTest extends TestCase\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:18: $exception = new RateLimitException();\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:28: $exception = new RateLimitException('Hubspot rate limit', 30, $previous);\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:52: $exception = new RateLimitException('test', $input);\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:10:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:49: public function testPropagatesNonRateLimitExceptions(): void\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:103: throw new RateLimitException('rate limited', $retryAfter);\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:150: throw new RateLimitException('rate limited', 1);","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check retry/failure handling in GenerateActionItemsJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"RateLimitException\\|retryUntil\\|backoff\\|maxExceptions\\|maxTries\\|release\\|failed\" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -30","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"13:use Jiminny\\Exceptions\\RateLimitException;\n51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception\n56: $this->release(30);","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check retry/failure handling in GenerateAiCallScoringJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"RateLimitException\\|retryUntil\\|backoff\\|maxExceptions\\|maxTries\\|release\\|failed\" /Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php | head -30","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"17:use Jiminny\\Exceptions\\RateLimitException;\n68: RateLimitException |\n75: $this->release(30);","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"}]...
|
8289733694640590015
|
-8461682738101701405
|
visual_change
|
accessibility
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 12 pending changes
12
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php
SaveTranscription.php
SetupLayout.php
SyncActivity.php
SyncFieldMetadata.php
SyncHubspotObjects.php
SyncLeads.php
SyncObjects.php
SyncOpportunitiesJob.php
SyncOpportunity.php
SyncProfileMetadata.php
SyncTeamFieldsJob.php
SyncTeamMetadata.php
UpdateOpportunitySpecifications.php
UpdateStage.php
DealRisks
Mailbox
MeetingBot
Middleware
HandleHubspotRateLimit.php
RateLimited.php
Streaming
Team
Telephony
User
BaseProcessingJob.php
DummyJob.php
ImportRecallAIRecordingsJob.php
ImportRemoteTrackJob.php
Job.php
JobDispatcher.php
JobDispatcherInterface.php
PurgeSoftDeletedOpportunityJob.php
SqsVisibilityControl.php
Listeners
Mail
Models
Activity
Ai
AskAnything
Calendar
Connection
Crm
Jobs
app
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
MySQL Section
MYSQL
MYSQL
MatchActivityCrmData.php, Editor Group 1
RateLimitException.php, Editor Group 1
HandleHubspotRateLimit.php, Editor Group 1
Client.php, Editor Group 1
HubspotPaginationService.php, Editor Group 1
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Middleware;
use Illuminate\Support\Facades\Log;
use Jiminny\Exceptions\RateLimitException;
/**
* Job middleware that catches RateLimitException from HubSpot API calls
* and releases the job back to the queue with the appropriate delay.
*/
class HandleHubspotRateLimit
{
private const int MAX_RETRY_DELAY = 600;
private const int MIN_RETRY_DELAY = 1;
private const int JITTER_SECONDS = 5;
public function handle(object $job, callable $next): void
{
try {
$next($job);
} catch (RateLimitException $e) {
$delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));
// Add jitter to prevent thundering herd problem by randomizing retry times
$delay += random_int(0, self::JITTER_SECONDS);
$attempts = $job->attempts();
if ($attempts <= 3 || $attempts % 10 === 0) {
Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [
'job_class' => $job::class,
'attempts' => $attempts,
'retry_after' => $e->getRetryAfter(),
'delay' => $delay,
]);
}
$job->release($delay);
}
}
}
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Middleware;
use Illuminate\Support\Facades\Log;
use Jiminny\Exceptions\RateLimitException;
/**
* Job middleware that catches RateLimitException from HubSpot API calls
* and releases the job back to the queue with the appropriate delay.
*/
class HandleHubspotRateLimit
{
private const int MAX_RETRY_DELAY = 600;
private const int MIN_RETRY_DELAY = 1;
private const int JITTER_SECONDS = 5;
public function handle(object $job, callable $next): void
{
try {
$next($job);
} catch (RateLimitException $e) {
$delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));
// Add jitter to prevent thundering herd problem by randomizing retry times
$delay += random_int(0, self::JITTER_SECONDS);
$attempts = $job->attempts();
if ($attempts <= 3 || $attempts % 10 === 0) {
Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [
'job_class' => $job::class,
'attempts' => $attempts,
'retry_after' => $e->getRetryAfter(),
'delay' => $delay,
]);
}
$job->release($delay);
}
}
}
Review rate limit handli…, Editor Group 2
remote
app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...
JY-20725-handle-HS-search-rate-limit*
app (Git) - Synchronize Changes
Errors: 6, Warnings: 9, Infos: 2
6
9
2
Notifications
key, PHP extension: Premium features not active.
Sign In
Sign In
Diff editor
Clear
Review rate limit handling for HubSpot job queue
Session history
New session
Message actions
RateLimitException.php#9-9
RateLimitException.php#9-9
Reveiw the diff. Mostly
@app/Jobs/Crm/MatchActivityCrmData.php
,
@app/Exceptions/RateLimitException.php
,
@app/Jobs/Middleware/HandleHubspotRateLimit.php
,
@app/Services/Crm/Hubspot/Client.php
and
@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php
. The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?
Thought for 5s
Thought for 5s
I'll review the implementation carefully. Let me first check how
RateLimitException
is used elsewhere and look at the test files and
PaginationState
.
Bash
Find all usages of RateLimitException outside the changed files
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/app --include="*.php" | grep -v "HandleHubspotRateLimit\|MatchActivityCrmData\|Client.php\|RateLimitException.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:17:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:68: RateLimitException |
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:15:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:58: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:19:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:76: RateLimitException |
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:50: * @throws RateLimitException When rate limit is hit
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:195: // RateLimitException and other exceptions are re-thrown as-is
Read
PaginationState.php
PaginationState.php
Read
HandleHubspotRateLimitTest.php
HandleHubspotRateLimitTest.php
Bash
Check how RateLimitException is used in GenerateActionItemsJob
IN
grep -rn "RateLimitException\|LogicException\|RuntimeException" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -20
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
Bash
Find all catch blocks or instanceof checks for RateLimitException
IN
grep -rn "catch.*RateLimitException\|instanceof RateLimitException" /Users/lukas/jiminny/app/app --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:11: * Job middleware that catches RateLimitException from HubSpot API calls
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:24: } catch (RateLimitException $e) {
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:149: if (! $e instanceof RateLimitException) {
Bash
Find all test references to RateLimitException
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/tests --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:13:#[CoversClass(RateLimitException::class)]
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:14:class RateLimitExceptionTest extends TestCase
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:18: $exception = new RateLimitException();
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:28: $exception = new RateLimitException('Hubspot rate limit', 30, $previous);
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:52: $exception = new RateLimitException('test', $input);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:10:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:49: public function testPropagatesNonRateLimitExceptions(): void
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:103: throw new RateLimitException('rate limited', $retryAfter);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:150: throw new RateLimitException('rate limited', 1);
Bash
Check retry/failure handling in GenerateActionItemsJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -30
Copy code to clipboard
OUT
13:use Jiminny\Exceptions\RateLimitException;
51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
56: $this->release(30);
Bash
Check retry/failure handling in GenerateAiCallScoringJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php | head -30
Copy code to clipboard
OUT
17:use Jiminny\Exceptions\RateLimitException;
68: RateLimitException |
75: $this->release(30);
Bash...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
19525
|
835
|
6
|
2026-05-11T12:58:43.028436+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778504323028_m2.jpg...
|
Code
|
Review rate limit handli… — app
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 12 pending changes
12
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php
SaveTranscription.php
SetupLayout.php
SyncActivity.php
SyncFieldMetadata.php
SyncHubspotObjects.php
SyncLeads.php
SyncObjects.php
SyncOpportunitiesJob.php
SyncOpportunity.php
SyncProfileMetadata.php
SyncTeamFieldsJob.php
SyncTeamMetadata.php
UpdateOpportunitySpecifications.php
UpdateStage.php
DealRisks
Mailbox
MeetingBot
Middleware
HandleHubspotRateLimit.php
RateLimited.php
Streaming
Team
Telephony
User
BaseProcessingJob.php
DummyJob.php
ImportRecallAIRecordingsJob.php
ImportRemoteTrackJob.php
Job.php
JobDispatcher.php
JobDispatcherInterface.php
PurgeSoftDeletedOpportunityJob.php
SqsVisibilityControl.php
Listeners
Mail
Models
Activity
Ai
AskAnything
Calendar
Connection
Crm
Jobs
app
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
MySQL Section
MYSQL
MYSQL
MatchActivityCrmData.php, Editor Group 1
RateLimitException.php, Editor Group 1
HandleHubspotRateLimit.php, Editor Group 1
Client.php, Editor Group 1
HubspotPaginationService.php, Editor Group 1
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Middleware;
use Illuminate\Support\Facades\Log;
use Jiminny\Exceptions\RateLimitException;
/**
* Job middleware that catches RateLimitException from HubSpot API calls
* and releases the job back to the queue with the appropriate delay.
*/
class HandleHubspotRateLimit
{
private const int MAX_RETRY_DELAY = 600;
private const int MIN_RETRY_DELAY = 1;
private const int JITTER_SECONDS = 5;
public function handle(object $job, callable $next): void
{
try {
$next($job);
} catch (RateLimitException $e) {
$delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));
// Add jitter to prevent thundering herd problem by randomizing retry times
$delay += random_int(0, self::JITTER_SECONDS);
$attempts = $job->attempts();
if ($attempts <= 3 || $attempts % 10 === 0) {
Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [
'job_class' => $job::class,
'attempts' => $attempts,
'retry_after' => $e->getRetryAfter(),
'delay' => $delay,
]);
}
$job->release($delay);
}
}
}
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Middleware;
use Illuminate\Support\Facades\Log;
use Jiminny\Exceptions\RateLimitException;
/**
* Job middleware that catches RateLimitException from HubSpot API calls
* and releases the job back to the queue with the appropriate delay.
*/
class HandleHubspotRateLimit
{
private const int MAX_RETRY_DELAY = 600;
private const int MIN_RETRY_DELAY = 1;
private const int JITTER_SECONDS = 5;
public function handle(object $job, callable $next): void
{
try {
$next($job);
} catch (RateLimitException $e) {
$delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));
// Add jitter to prevent thundering herd problem by randomizing retry times
$delay += random_int(0, self::JITTER_SECONDS);
$attempts = $job->attempts();
if ($attempts <= 3 || $attempts % 10 === 0) {
Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [
'job_class' => $job::class,
'attempts' => $attempts,
'retry_after' => $e->getRetryAfter(),
'delay' => $delay,
]);
}
$job->release($delay);
}
}
}
Review rate limit handli…, Editor Group 2
remote
app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...
JY-20725-handle-HS-search-rate-limit*
app (Git) - Synchronize Changes
Errors: 6, Warnings: 9, Infos: 2
6
9
2
Notifications
key, PHP extension: Premium features not active.
Sign In
Sign In
Diff editor
Clear
Review rate limit handling for HubSpot job queue
Session history
New session
Message actions
RateLimitException.php#9-9
RateLimitException.php#9-9
Reveiw the diff. Mostly
@app/Jobs/Crm/MatchActivityCrmData.php
,
@app/Exceptions/RateLimitException.php
,
@app/Jobs/Middleware/HandleHubspotRateLimit.php
,
@app/Services/Crm/Hubspot/Client.php
and
@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php
. The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?
Thought for 5s
Thought for 5s
I'll review the implementation carefully. Let me first check how
RateLimitException
is used elsewhere and look at the test files and
PaginationState
.
Bash
Find all usages of RateLimitException outside the changed files
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/app --include="*.php" | grep -v "HandleHubspotRateLimit\|MatchActivityCrmData\|Client.php\|RateLimitException.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:17:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:68: RateLimitException |
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:15:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:58: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:19:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:76: RateLimitException |
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:50: * @throws RateLimitException When rate limit is hit
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:195: // RateLimitException and other exceptions are re-thrown as-is
Read
PaginationState.php
PaginationState.php
Read
HandleHubspotRateLimitTest.php
HandleHubspotRateLimitTest.php
Bash
Check how RateLimitException is used in GenerateActionItemsJob
IN
grep -rn "RateLimitException\|LogicException\|RuntimeException" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -20
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
Bash
Find all catch blocks or instanceof checks for RateLimitException
IN
grep -rn "catch.*RateLimitException\|instanceof RateLimitException" /Users/lukas/jiminny/app/app --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:11: * Job middleware that catches RateLimitException from HubSpot API calls
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:24: } catch (RateLimitException $e) {
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:149: if (! $e instanceof RateLimitException) {
Bash
Find all test references to RateLimitException
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/tests --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:13:#[CoversClass(RateLimitException::class)]
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:14:class RateLimitExceptionTest extends TestCase
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:18: $exception = new RateLimitException();
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:28: $exception = new RateLimitException('Hubspot rate limit', 30, $previous);
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:52: $exception = new RateLimitException('test', $input);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:10:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:49: public function testPropagatesNonRateLimitExceptions(): void
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:103: throw new RateLimitException('rate limited', $retryAfter);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:150: throw new RateLimitException('rate limited', 1);
Bash
Check retry/failure handling in GenerateActionItemsJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -30
Copy code to clipboard
OUT
13:use Jiminny\Exceptions\RateLimitException;
51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
56: $this->release(30);
Bash
Check retry/failure handling in GenerateAiCallScoringJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php | head -30
Copy code to clipboard
OUT
17:use Jiminny\Exceptions\RateLimitException;
68: RateLimitException |
75: $this->release(30);
Bash
Check retry config in MatchActivityCrmData
IN
grep -n "retryAfter\|RETRY_WINDOW\|retryUntil\|maxTries" /Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php
Copy code to clipboard
OUT
34: private const int RETRY_WINDOW_MINUTES = 30;
45: public function retryUntil(): \DateTimeInterface
47: return now()->addMinutes(self::RETRY_WINDOW_MINUTES);
77: return self::RETRY_WINDOW_MINUTES * 60 + 60;
Bash
Check the cache key format
IN
grep -n "getRateLimitCacheKey\|hubspot:ratelimit" /Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Client.php
Copy code to clipboard
OUT
78: $cacheKey = $this->getRateLimitCacheKey();
110: private function getRateLimitCacheKey(): string
112: return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());
Bash
Find other jobs that might use the rate limit middleware
IN
grep -rn "class.*Middleware\|HandleHubspotRateLimit" /Users/lukas/jiminny/app/app/Jobs --include="*.php" | grep -v "HandleHubspotRateLimit.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:18:use Jiminny\Jobs\Middleware\HandleHubspotRateLimit;
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:42: return [new HandleHubspotRateLimit()];
Read
HubspotClientInterface.php
HubspotClientInterface.php
Thought for 73s
Thought for 73s
Now I have a complete picture. Here's my full analysis:
Review Summary
Review Summary
RuntimeException vs LogicException — Safe ✓
RuntimeException
vs
LogicException
— Safe ✓
The change is semantically correct and won't break anything.
LogicException
is for programmer errors (invalid arguments, contract violations). A rate limit from an external API is a runtime condition —
RuntimeException
is the right parent. All callers catch
RateLimitException
by name explicitly (union catches in
GenerateActionItemsJob
,
GenerateAiCallScoringJob
,
SummarizeTranscriptionJob
,
GenerateAiActivityTypeJob
) or check
instanceof RateLimitException
— none relies on the parent class type, so nothing breaks.
Issue 1 — Circuit breaker stores stale delay (most important bug)
Issue 1 — Circuit breaker stores stale delay (most important bug)
Client.php:94
Client.php:94
Copy code to clipboard
Redis::setex($cacheKey, $retryAfter, (string) $retryAfter);
The TTL is
$retryAfter
seconds, but the
stored value
is also the original
$retryAfter
. If a second job reads this cache 20 seconds later, it throws
RateLimitException(retryAfter=30)
and gets delayed 30 more seconds — even though only 10 remain. In a spike of 100 jobs, each subsequent job inflates its wait.
Fix:
store the absolute expiry timestamp, reconstruct the remaining delay when reading:
Copy code to clipboard
// on 429:
Redis::setex($cacheKey, $retryAfter, (string) (time() + $retryAfter));
// in the cached-read branch:
$remaining = max(1, (int) $cachedRetryAfter - time());
throw new RateLimitException('Hubspot rate limit (cached circuit-breaker)', $remaining);
Issue 2 — retryUntil() window may expire under sustained rate limiting
Issue 2 —
retryUntil()
window may expire under sustained rate limiting
MatchActivityCrmData.php:45-47
MatchActivityCrmData.php:45-47
retryUntil()
is calculated as
now() + 30 min
at
dispatch time
and stored in the job payload. With
MAX_RETRY_DELAY = 600s
, you only get ~3 rate-limit-triggered releases before the 30-minute window closes and the job is permanently failed. For a heavy 429 spike (daily limit, parsed as 600s), this can easily happen.
Consider increasing
RETRY_WINDOW_MINUTES
to 60 or more, or making it configurable. The
uniqueFor()
value should be updated to match.
Issue 3 — Only search() uses the circuit breaker, but other methods can still hit 429
Issue 3 — Only
search()
uses the circuit breaker, but other methods can still hit 429
Client.php:76-108...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Explorer (⇧⌘E)","depth":19,"bounds":{"left":0.0,"top":0.047885075,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":true},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.057462092,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Search (⇧⌘F)","depth":19,"bounds":{"left":0.0,"top":0.08619314,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.09577015,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Source Control (⌃⇧G) - 12 pending changes","depth":19,"bounds":{"left":0.0,"top":0.1245012,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.13407822,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"12","depth":22,"bounds":{"left":0.00831117,"top":0.1452514,"width":0.003656915,"height":0.008778931},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.008643617,"top":0.14604948,"width":0.0016622341,"height":0.007980846}},{"char_start":1,"char_count":1,"bounds":{"left":0.009973404,"top":0.14604948,"width":0.0023271276,"height":0.007980846}}],"role_description":"text"},{"role":"AXRadioButton","text":"Run and Debug (⇧⌘D)","depth":19,"bounds":{"left":0.0,"top":0.16280925,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.17238627,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Remote Explorer","depth":19,"bounds":{"left":0.0,"top":0.20111732,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.21069433,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Extensions (⇧⌘X) - 2 require update","depth":19,"bounds":{"left":0.0,"top":0.23942538,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.2490024,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":22,"bounds":{"left":0.009640957,"top":0.2601756,"width":0.0019946808,"height":0.008778931},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Testing","depth":19,"bounds":{"left":0.0,"top":0.27773345,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.28731045,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Claude Code","depth":19,"bounds":{"left":0.0,"top":0.3160415,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"EXPLORER","depth":17,"bounds":{"left":0.022606382,"top":0.047885075,"width":0.018949468,"height":0.02793296},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"EXPLORER","depth":18,"bounds":{"left":0.022606382,"top":0.056664005,"width":0.018949468,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.022606382,"top":0.056664005,"width":0.0023271276,"height":0.0103751}},{"char_start":1,"char_count":7,"bounds":{"left":0.024933511,"top":0.056664005,"width":0.01662234,"height":0.0103751}}],"role_description":"text"},{"role":"AXButton","text":"Explorer Section: app","depth":21,"bounds":{"left":0.015957447,"top":0.07581804,"width":0.09940159,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.07821229,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"Explorer Section: app","depth":22,"bounds":{"left":0.022606382,"top":0.07581804,"width":0.0076462766,"height":0.017557861},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"APP","depth":23,"bounds":{"left":0.022606382,"top":0.079010375,"width":0.0076462766,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.0933759,"width":0.0063164895,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CheckAndRetryRemoteMatch.php","depth":27,"bounds":{"left":0.033909574,"top":0.0933759,"width":0.068484046,"height":0.011173184},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.0933759,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":27,"bounds":{"left":0.036901597,"top":0.0933759,"width":0.06549202,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.10853951,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateFollowupActivity.php","depth":27,"bounds":{"left":0.033909574,"top":0.110135674,"width":0.054853722,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.11093376,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":25,"bounds":{"left":0.036901597,"top":0.11093376,"width":0.051861703,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.12609737,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateNotes.php","depth":27,"bounds":{"left":0.033909574,"top":0.12769353,"width":0.034242023,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.12849163,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.036901597,"top":0.12849163,"width":0.03125,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.14365523,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivitiesToNewOpportunity.php","depth":27,"bounds":{"left":0.033909574,"top":0.1452514,"width":0.07712766,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.14604948,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":34,"bounds":{"left":0.037898935,"top":0.14604948,"width":0.07347074,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.16121309,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivityCrmData.php","depth":27,"bounds":{"left":0.033909574,"top":0.16280925,"width":0.054521278,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.16360734,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":23,"bounds":{"left":0.037898935,"top":0.16360734,"width":0.050531916,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.17877094,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"NoteObject.php","depth":27,"bounds":{"left":0.033909574,"top":0.18036711,"width":0.031914894,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.1811652,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":13,"bounds":{"left":0.03723404,"top":0.1811652,"width":0.028922873,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.1963288,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SaveActivity.php","depth":27,"bounds":{"left":0.033909574,"top":0.19792499,"width":0.03324468,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.19872306,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":15,"bounds":{"left":0.03656915,"top":0.19872306,"width":0.030585106,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.21388668,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SaveTranscription.php","depth":27,"bounds":{"left":0.033909574,"top":0.21548285,"width":0.04454787,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.21628092,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":20,"bounds":{"left":0.03656915,"top":0.21628092,"width":0.042220745,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.23144454,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SetupLayout.php","depth":27,"bounds":{"left":0.033909574,"top":0.2330407,"width":0.034242023,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.23383878,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.03656915,"top":0.23383878,"width":0.031914894,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.2490024,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncActivity.php","depth":27,"bounds":{"left":0.033909574,"top":0.25059855,"width":0.03357713,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.25139666,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":15,"bounds":{"left":0.03656915,"top":0.25139666,"width":0.030917553,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.26656026,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncFieldMetadata.php","depth":27,"bounds":{"left":0.033909574,"top":0.26815644,"width":0.047539894,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.26895452,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":20,"bounds":{"left":0.03656915,"top":0.26895452,"width":0.04488032,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.28411812,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncHubspotObjects.php","depth":27,"bounds":{"left":0.033909574,"top":0.2857143,"width":0.051861703,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.28651237,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":21,"bounds":{"left":0.03656915,"top":0.28651237,"width":0.04920213,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.30167598,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncLeads.php","depth":27,"bounds":{"left":0.033909574,"top":0.30327216,"width":0.030917553,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.30407023,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":12,"bounds":{"left":0.03656915,"top":0.30407023,"width":0.02825798,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.31923383,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncObjects.php","depth":27,"bounds":{"left":0.033909574,"top":0.32083002,"width":0.034574468,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.3216281,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.03656915,"top":0.3216281,"width":0.031914894,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.3367917,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncOpportunitiesJob.php","depth":27,"bounds":{"left":0.033909574,"top":0.33838788,"width":0.053856384,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.33918595,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":23,"bounds":{"left":0.03656915,"top":0.33918595,"width":0.05119681,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.35434955,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncOpportunity.php","depth":27,"bounds":{"left":0.033909574,"top":0.35594574,"width":0.04288564,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.3567438,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":18,"bounds":{"left":0.03656915,"top":0.3567438,"width":0.040226065,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.3719074,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncProfileMetadata.php","depth":27,"bounds":{"left":0.033909574,"top":0.3735036,"width":0.05086436,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.37430167,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":22,"bounds":{"left":0.03656915,"top":0.37430167,"width":0.048204787,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.38946527,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncTeamFieldsJob.php","depth":27,"bounds":{"left":0.033909574,"top":0.39106146,"width":0.04886968,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.39185953,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":20,"bounds":{"left":0.03656915,"top":0.39185953,"width":0.046210106,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.40702313,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncTeamMetadata.php","depth":27,"bounds":{"left":0.033909574,"top":0.4086193,"width":0.048537236,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.4094174,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":19,"bounds":{"left":0.03656915,"top":0.4094174,"width":0.045877658,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.424581,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"UpdateOpportunitySpecifications.php","depth":27,"bounds":{"left":0.033909574,"top":0.42617717,"width":0.076130316,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.42697525,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":34,"bounds":{"left":0.03723404,"top":0.42697525,"width":0.0731383,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.44213888,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"UpdateStage.php","depth":27,"bounds":{"left":0.033909574,"top":0.44373503,"width":0.03523936,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.4445331,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.03723404,"top":0.4445331,"width":0.032247342,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.4612929,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"DealRisks","depth":27,"bounds":{"left":0.03125,"top":0.4612929,"width":0.019614361,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.46209097,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":8,"bounds":{"left":0.034574468,"top":0.46209097,"width":0.016289894,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.47885075,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mailbox","depth":27,"bounds":{"left":0.03125,"top":0.47885075,"width":0.015625,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.47964883,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":6,"bounds":{"left":0.03523936,"top":0.47964883,"width":0.011635638,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.4964086,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MeetingBot","depth":27,"bounds":{"left":0.03125,"top":0.4964086,"width":0.023271276,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.49720672,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":9,"bounds":{"left":0.03523936,"top":0.49720672,"width":0.019281914,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.5139665,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Middleware","depth":27,"bounds":{"left":0.03125,"top":0.5139665,"width":0.023271276,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.51476455,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":9,"bounds":{"left":0.03523936,"top":0.51476455,"width":0.019281914,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.52992815,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"HandleHubspotRateLimit.php","depth":27,"bounds":{"left":0.033909574,"top":0.53152436,"width":0.059175532,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.5323224,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":25,"bounds":{"left":0.03723404,"top":0.5323224,"width":0.05618351,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.547486,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"RateLimited.php","depth":27,"bounds":{"left":0.033909574,"top":0.5490822,"width":0.032912236,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.54988027,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.036901597,"top":0.54988027,"width":0.029920213,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.5666401,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Streaming","depth":27,"bounds":{"left":0.03125,"top":0.5666401,"width":0.020611702,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.5674381,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":8,"bounds":{"left":0.033909574,"top":0.5674381,"width":0.017952127,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.58419794,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Team","depth":27,"bounds":{"left":0.03125,"top":0.58419794,"width":0.010970744,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.584996,"width":0.0023271276,"height":0.011971269}},{"char_start":1,"char_count":3,"bounds":{"left":0.03357713,"top":0.584996,"width":0.008643617,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.6017558,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Telephony","depth":27,"bounds":{"left":0.03125,"top":0.6017558,"width":0.020611702,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.60255384,"width":0.0023271276,"height":0.011971269}},{"char_start":1,"char_count":8,"bounds":{"left":0.03357713,"top":0.60255384,"width":0.018284574,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.61931366,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"User","depth":27,"bounds":{"left":0.03125,"top":0.61931366,"width":0.00930851,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.6201117,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":3,"bounds":{"left":0.034574468,"top":0.6201117,"width":0.0063164895,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.63527536,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"BaseProcessingJob.php","depth":27,"bounds":{"left":0.03125,"top":0.6368715,"width":0.048537236,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.63766956,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":20,"bounds":{"left":0.034242023,"top":0.63766956,"width":0.045545213,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.6528332,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"DummyJob.php","depth":27,"bounds":{"left":0.03125,"top":0.6544294,"width":0.03158245,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.6552275,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":11,"bounds":{"left":0.034574468,"top":0.6552275,"width":0.02825798,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.6703911,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"ImportRecallAIRecordingsJob.php","depth":27,"bounds":{"left":0.03125,"top":0.67198724,"width":0.068484046,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.67278534,"width":0.0013297872,"height":0.011971269}},{"char_start":1,"char_count":30,"bounds":{"left":0.032579787,"top":0.67278534,"width":0.06715426,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.68794894,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"ImportRemoteTrackJob.php","depth":27,"bounds":{"left":0.03125,"top":0.6895451,"width":0.055518616,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.6903432,"width":0.0013297872,"height":0.011971269}},{"char_start":1,"char_count":23,"bounds":{"left":0.032579787,"top":0.6903432,"width":0.054521278,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.7055068,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Job.php","depth":27,"bounds":{"left":0.03125,"top":0.70710295,"width":0.016289894,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.70790106,"width":0.0023271276,"height":0.011971269}},{"char_start":1,"char_count":6,"bounds":{"left":0.03357713,"top":0.70790106,"width":0.014295213,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.72306466,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JobDispatcher.php","depth":27,"bounds":{"left":0.03125,"top":0.7246608,"width":0.037898935,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.7254589,"width":0.0023271276,"height":0.011971269}},{"char_start":1,"char_count":16,"bounds":{"left":0.03357713,"top":0.7254589,"width":0.035904255,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.7406225,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JobDispatcherInterface.php","depth":27,"bounds":{"left":0.03125,"top":0.7422187,"width":0.05618351,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.7430168,"width":0.0023271276,"height":0.011971269}},{"char_start":1,"char_count":25,"bounds":{"left":0.03357713,"top":0.7430168,"width":0.05418883,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.7581804,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"PurgeSoftDeletedOpportunityJob.php","depth":27,"bounds":{"left":0.03125,"top":0.75977653,"width":0.076130316,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.77573824,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SqsVisibilityControl.php","depth":27,"bounds":{"left":0.03125,"top":0.7773344,"width":0.047872342,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.022273935,"top":0.79489225,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Listeners","depth":27,"bounds":{"left":0.028590426,"top":0.79489225,"width":0.018284574,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.022273935,"top":0.8124501,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mail","depth":27,"bounds":{"left":0.028590426,"top":0.8124501,"width":0.00831117,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.022273935,"top":0.830008,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Models","depth":27,"bounds":{"left":0.028590426,"top":0.830008,"width":0.01462766,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.8475658,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Activity","depth":27,"bounds":{"left":0.03125,"top":0.8475658,"width":0.014960106,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.8651237,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Ai","depth":27,"bounds":{"left":0.03125,"top":0.8651237,"width":0.0039893617,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.88268155,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"AskAnything","depth":27,"bounds":{"left":0.03125,"top":0.88268155,"width":0.025265958,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.9002394,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Calendar","depth":27,"bounds":{"left":0.03125,"top":0.9002394,"width":0.017952127,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.91779727,"width":0.005319149,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Connection","depth":27,"bounds":{"left":0.03125,"top":0.91779727,"width":0.022938829,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.13088587,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Crm","depth":27,"bounds":{"left":0.03125,"top":0.13088587,"width":0.00831117,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.022273935,"top":0.11332801,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Jobs","depth":27,"bounds":{"left":0.028590426,"top":0.11332801,"width":0.009640957,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.019614361,"top":0.09577015,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"app","depth":27,"bounds":{"left":0.025930852,"top":0.09577015,"width":0.0076462766,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.10605053,"top":0.096568234,"width":0.004654255,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Outline Section","depth":21,"bounds":{"left":0.015957447,"top":0.92976856,"width":0.09940159,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.9321628,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"OUTLINE","depth":22,"bounds":{"left":0.022606382,"top":0.92976856,"width":0.01662234,"height":0.017557861},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"OUTLINE","depth":23,"bounds":{"left":0.022606382,"top":0.933759,"width":0.01662234,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Timeline Section","depth":21,"bounds":{"left":0.015957447,"top":0.9473264,"width":0.09940159,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.9497207,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"TIMELINE","depth":22,"bounds":{"left":0.022606382,"top":0.9473264,"width":0.01761968,"height":0.017557861},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"TIMELINE","depth":23,"bounds":{"left":0.022606382,"top":0.95131683,"width":0.01761968,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"MySQL Section","depth":21,"bounds":{"left":0.015957447,"top":0.9648843,"width":0.09940159,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.96727854,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"MYSQL","depth":22,"bounds":{"left":0.022606382,"top":0.9648843,"width":0.013297873,"height":0.017557861},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"MYSQL","depth":23,"bounds":{"left":0.022606382,"top":0.9688747,"width":0.013297873,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"MatchActivityCrmData.php, Editor Group 1","depth":28,"bounds":{"left":0.11569149,"top":0.047885075,"width":0.07480053,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"RateLimitException.php, Editor Group 1","depth":28,"bounds":{"left":0.19015957,"top":0.047885075,"width":0.06815159,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"HandleHubspotRateLimit.php, Editor Group 1","depth":28,"bounds":{"left":0.25797874,"top":0.047885075,"width":0.080119684,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXRadioButton","text":"Client.php, Editor Group 1","depth":28,"bounds":{"left":0.33776596,"top":0.047885075,"width":0.045545213,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"HubspotPaginationService.php, Editor Group 1","depth":28,"bounds":{"left":0.38297874,"top":0.047885075,"width":0.08277926,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.12832446,"top":0.07821229,"width":0.0056515955,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.14328457,"top":0.07821229,"width":0.0056515955,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.171875,"top":0.07821229,"width":0.0056515955,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.24401596,"top":0.07821229,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.24933511,"top":0.07821229,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Middleware;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Exceptions\\RateLimitException;\n\n/**\n * Job middleware that catches RateLimitException from HubSpot API calls\n * and releases the job back to the queue with the appropriate delay.\n */\nclass HandleHubspotRateLimit\n{\n private const int MAX_RETRY_DELAY = 600;\n private const int MIN_RETRY_DELAY = 1;\n private const int JITTER_SECONDS = 5;\n\n public function handle(object $job, callable $next): void\n {\n try {\n $next($job);\n } catch (RateLimitException $e) {\n $delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));\n // Add jitter to prevent thundering herd problem by randomizing retry times\n $delay += random_int(0, self::JITTER_SECONDS);\n\n $attempts = $job->attempts();\n if ($attempts <= 3 || $attempts % 10 === 0) {\n Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [\n 'job_class' => $job::class,\n 'attempts' => $attempts,\n 'retry_after' => $e->getRetryAfter(),\n 'delay' => $delay,\n ]);\n }\n\n $job->release($delay);\n }\n }\n}","depth":28,"bounds":{"left":0.13763298,"top":0.27613726,"width":0.23803191,"height":0.014365523},"on_screen":true,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Middleware;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Exceptions\\RateLimitException;\n\n/**\n * Job middleware that catches RateLimitException from HubSpot API calls\n * and releases the job back to the queue with the appropriate delay.\n */\nclass HandleHubspotRateLimit\n{\n private const int MAX_RETRY_DELAY = 600;\n private const int MIN_RETRY_DELAY = 1;\n private const int JITTER_SECONDS = 5;\n\n public function handle(object $job, callable $next): void\n {\n try {\n $next($job);\n } catch (RateLimitException $e) {\n $delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));\n // Add jitter to prevent thundering herd problem by randomizing retry times\n $delay += random_int(0, self::JITTER_SECONDS);\n\n $attempts = $job->attempts();\n if ($attempts <= 3 || $attempts % 10 === 0) {\n Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [\n 'job_class' => $job::class,\n 'attempts' => $attempts,\n 'retry_after' => $e->getRetryAfter(),\n 'delay' => $delay,\n ]);\n }\n\n $job->release($delay);\n }\n }\n}","role_description":"editor","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Middleware;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Exceptions\\RateLimitException;\n\n/**\n * Job middleware that catches RateLimitException from HubSpot API calls\n * and releases the job back to the queue with the appropriate delay.\n */\nclass HandleHubspotRateLimit\n{\n private const int MAX_RETRY_DELAY = 600;\n private const int MIN_RETRY_DELAY = 1;\n private const int JITTER_SECONDS = 5;\n\n public function handle(object $job, callable $next): void\n {\n try {\n $next($job);\n } catch (RateLimitException $e) {\n $delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));\n // Add jitter to prevent thundering herd problem by randomizing retry times\n $delay += random_int(0, self::JITTER_SECONDS);\n\n $attempts = $job->attempts();\n if ($attempts <= 3 || $attempts % 10 === 0) {\n Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [\n 'job_class' => $job::class,\n 'attempts' => $attempts,\n 'retry_after' => $e->getRetryAfter(),\n 'delay' => $delay,\n ]);\n }\n\n $job->release($delay);\n }\n }\n}","depth":29,"bounds":{"left":0.13763298,"top":0.27613726,"width":0.23803191,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Review rate limit handli…, Editor Group 2","depth":28,"bounds":{"left":0.5578458,"top":0.047885075,"width":0.07014628,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXButton","text":"remote","depth":16,"bounds":{"left":0.0006648936,"top":0.98244214,"width":0.010638298,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...","depth":16,"bounds":{"left":0.012965426,"top":0.98244214,"width":0.084773935,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.013962766,"top":0.9848364,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JY-20725-handle-HS-search-rate-limit*","depth":17,"bounds":{"left":0.019281914,"top":0.9856345,"width":0.0774601,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"app (Git) - Synchronize Changes","depth":16,"bounds":{"left":0.09740692,"top":0.98244214,"width":0.0076462766,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Errors: 6, Warnings: 9, Infos: 2","depth":16,"bounds":{"left":0.107380316,"top":0.98244214,"width":0.032579787,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.109042555,"top":0.9848364,"width":0.0056515955,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"6","depth":17,"bounds":{"left":0.1143617,"top":0.9856345,"width":0.004986702,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.11934841,"top":0.9848364,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"9","depth":17,"bounds":{"left":0.124667555,"top":0.9856345,"width":0.004654255,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.12932181,"top":0.9848364,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":17,"bounds":{"left":0.13464096,"top":0.9856345,"width":0.003656915,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Notifications","depth":16,"bounds":{"left":0.9886968,"top":0.98244214,"width":0.010638298,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"key, PHP extension: Premium features not active.","depth":16,"bounds":{"left":0.9790558,"top":0.98244214,"width":0.008643617,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sign In","depth":16,"bounds":{"left":0.9544548,"top":0.98244214,"width":0.022606382,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.95611703,"top":0.9848364,"width":0.0056515955,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Sign In","depth":17,"bounds":{"left":0.96143615,"top":0.9856345,"width":0.013962766,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Diff editor","depth":12,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Clear","depth":12,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Review rate limit handling for HubSpot job queue","depth":19,"bounds":{"left":0.56017286,"top":0.08060654,"width":0.099734046,"height":0.022346368},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Session history","depth":19,"bounds":{"left":0.9780585,"top":0.08060654,"width":0.00930851,"height":0.022346368},"on_screen":true,"help_text":"Session history","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New session","depth":19,"bounds":{"left":0.9886968,"top":0.08060654,"width":0.00930851,"height":0.022346368},"on_screen":true,"help_text":"New session","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Message actions","depth":24,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"RateLimitException.php#9-9","depth":23,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"RateLimitException.php#9-9","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Reveiw the diff. Mostly","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Jobs/Crm/MatchActivityCrmData.php","depth":26,"on_screen":false,"help_text":"Open app/Jobs/Crm/MatchActivityCrmData.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Exceptions/RateLimitException.php","depth":26,"on_screen":false,"help_text":"Open app/Exceptions/RateLimitException.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Jobs/Middleware/HandleHubspotRateLimit.php","depth":26,"on_screen":false,"help_text":"Open app/Jobs/Middleware/HandleHubspotRateLimit.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Services/Crm/Hubspot/Client.php","depth":26,"on_screen":false,"help_text":"Open app/Services/Crm/Hubspot/Client.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"and","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php","depth":26,"on_screen":false,"help_text":"Open app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":". The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Thought for 5s","depth":23,"on_screen":false,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thought for 5s","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"I'll review the implementation carefully. Let me first check how","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is used elsewhere and look at the test files and","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"PaginationState","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":".","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find all usages of RateLimitException outside the changed files","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"RateLimitException\" /Users/lukas/jiminny/app/app --include=\"*.php\" | grep -v \"HandleHubspotRateLimit\\|MatchActivityCrmData\\|Client.php\\|RateLimitException.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception\n/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:17:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:68: RateLimitException |\n/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:15:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:58: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception\n/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:19:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:76: RateLimitException |\n/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:8:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:50: * @throws RateLimitException When rate limit is hit\n/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:195: // RateLimitException and other exceptions are re-thrown as-is","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"PaginationState.php","depth":24,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"PaginationState.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"HandleHubspotRateLimitTest.php","depth":24,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"HandleHubspotRateLimitTest.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check how RateLimitException is used in GenerateActionItemsJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"RateLimitException\\|LogicException\\|RuntimeException\" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -20","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find all catch blocks or instanceof checks for RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"catch.*RateLimitException\\|instanceof RateLimitException\" /Users/lukas/jiminny/app/app --include=\"*.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:11: * Job middleware that catches RateLimitException from HubSpot API calls\n/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:24: } catch (RateLimitException $e) {\n/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:149: if (! $e instanceof RateLimitException) {","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find all test references to RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"RateLimitException\" /Users/lukas/jiminny/app/tests --include=\"*.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:8:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:13:#[CoversClass(RateLimitException::class)]\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:14:class RateLimitExceptionTest extends TestCase\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:18: $exception = new RateLimitException();\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:28: $exception = new RateLimitException('Hubspot rate limit', 30, $previous);\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:52: $exception = new RateLimitException('test', $input);\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:10:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:49: public function testPropagatesNonRateLimitExceptions(): void\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:103: throw new RateLimitException('rate limited', $retryAfter);\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:150: throw new RateLimitException('rate limited', 1);","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check retry/failure handling in GenerateActionItemsJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"RateLimitException\\|retryUntil\\|backoff\\|maxExceptions\\|maxTries\\|release\\|failed\" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -30","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"13:use Jiminny\\Exceptions\\RateLimitException;\n51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception\n56: $this->release(30);","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check retry/failure handling in GenerateAiCallScoringJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"RateLimitException\\|retryUntil\\|backoff\\|maxExceptions\\|maxTries\\|release\\|failed\" /Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php | head -30","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"17:use Jiminny\\Exceptions\\RateLimitException;\n68: RateLimitException |\n75: $this->release(30);","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check retry config in MatchActivityCrmData","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"retryAfter\\|RETRY_WINDOW\\|retryUntil\\|maxTries\" /Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"34: private const int RETRY_WINDOW_MINUTES = 30;\n45: public function retryUntil(): \\DateTimeInterface\n47: return now()->addMinutes(self::RETRY_WINDOW_MINUTES);\n77: return self::RETRY_WINDOW_MINUTES * 60 + 60;","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check the cache key format","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"getRateLimitCacheKey\\|hubspot:ratelimit\" /Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Client.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"78: $cacheKey = $this->getRateLimitCacheKey();\n110: private function getRateLimitCacheKey(): string\n112: return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find other jobs that might use the rate limit middleware","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"class.*Middleware\\|HandleHubspotRateLimit\" /Users/lukas/jiminny/app/app/Jobs --include=\"*.php\" | grep -v \"HandleHubspotRateLimit.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:18:use Jiminny\\Jobs\\Middleware\\HandleHubspotRateLimit;\n/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:42: return [new HandleHubspotRateLimit()];","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"HubspotClientInterface.php","depth":24,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"HubspotClientInterface.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Thought for 73s","depth":23,"on_screen":false,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thought for 73s","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Now I have a complete picture. Here's my full analysis:","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"Review Summary","depth":22,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"Review Summary","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"RuntimeException vs LogicException — Safe ✓","depth":22,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"RuntimeException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"vs","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"LogicException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"— Safe ✓","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"The change is semantically correct and won't break anything.","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"LogicException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is for programmer errors (invalid arguments, contract violations). A rate limit from an external API is a runtime condition —","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RuntimeException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is the right parent. All callers catch","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"by name explicitly (union catches in","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"GenerateActionItemsJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"GenerateAiCallScoringJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"SummarizeTranscriptionJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"GenerateAiActivityTypeJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":") or check","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"instanceof RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"— none relies on the parent class type, so nothing breaks.","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"Issue 1 — Circuit breaker stores stale delay (most important bug)","depth":22,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"Issue 1 — Circuit breaker stores stale delay (most important bug)","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"Client.php:94","depth":23,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Client.php:94","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":23,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Redis::setex($cacheKey, $retryAfter, (string) $retryAfter);","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"The TTL is","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"$retryAfter","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"seconds, but the","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"stored value","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is also the original","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"$retryAfter","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":". If a second job reads this cache 20 seconds later, it throws","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RateLimitException(retryAfter=30)","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"and gets delayed 30 more seconds — even though only 10 remain. In a spike of 100 jobs, each subsequent job inflates its wait.","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Fix:","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"store the absolute expiry timestamp, reconstruct the remaining delay when reading:","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":23,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"// on 429:\nRedis::setex($cacheKey, $retryAfter, (string) (time() + $retryAfter));\n\n// in the cached-read branch:\n$remaining = max(1, (int) $cachedRetryAfter - time());\nthrow new RateLimitException('Hubspot rate limit (cached circuit-breaker)', $remaining);","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"Issue 2 — retryUntil() window may expire under sustained rate limiting","depth":22,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"Issue 2 —","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"retryUntil()","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"window may expire under sustained rate limiting","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"MatchActivityCrmData.php:45-47","depth":23,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"MatchActivityCrmData.php:45-47","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"retryUntil()","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is calculated as","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"now() + 30 min","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"at","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"dispatch time","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"and stored in the job payload. With","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"MAX_RETRY_DELAY = 600s","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":", you only get ~3 rate-limit-triggered releases before the 30-minute window closes and the job is permanently failed. For a heavy 429 spike (daily limit, parsed as 600s), this can easily happen.","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Consider increasing","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RETRY_WINDOW_MINUTES","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"to 60 or more, or making it configurable. The","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"uniqueFor()","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"value should be updated to match.","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"Issue 3 — Only search() uses the circuit breaker, but other methods can still hit 429","depth":22,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"Issue 3 — Only","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"search()","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"uses the circuit breaker, but other methods can still hit 429","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"Client.php:76-108","depth":23,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
6075468363860965882
|
-7858763462491720125
|
idle
|
accessibility
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 12 pending changes
12
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php
SaveTranscription.php
SetupLayout.php
SyncActivity.php
SyncFieldMetadata.php
SyncHubspotObjects.php
SyncLeads.php
SyncObjects.php
SyncOpportunitiesJob.php
SyncOpportunity.php
SyncProfileMetadata.php
SyncTeamFieldsJob.php
SyncTeamMetadata.php
UpdateOpportunitySpecifications.php
UpdateStage.php
DealRisks
Mailbox
MeetingBot
Middleware
HandleHubspotRateLimit.php
RateLimited.php
Streaming
Team
Telephony
User
BaseProcessingJob.php
DummyJob.php
ImportRecallAIRecordingsJob.php
ImportRemoteTrackJob.php
Job.php
JobDispatcher.php
JobDispatcherInterface.php
PurgeSoftDeletedOpportunityJob.php
SqsVisibilityControl.php
Listeners
Mail
Models
Activity
Ai
AskAnything
Calendar
Connection
Crm
Jobs
app
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
MySQL Section
MYSQL
MYSQL
MatchActivityCrmData.php, Editor Group 1
RateLimitException.php, Editor Group 1
HandleHubspotRateLimit.php, Editor Group 1
Client.php, Editor Group 1
HubspotPaginationService.php, Editor Group 1
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Middleware;
use Illuminate\Support\Facades\Log;
use Jiminny\Exceptions\RateLimitException;
/**
* Job middleware that catches RateLimitException from HubSpot API calls
* and releases the job back to the queue with the appropriate delay.
*/
class HandleHubspotRateLimit
{
private const int MAX_RETRY_DELAY = 600;
private const int MIN_RETRY_DELAY = 1;
private const int JITTER_SECONDS = 5;
public function handle(object $job, callable $next): void
{
try {
$next($job);
} catch (RateLimitException $e) {
$delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));
// Add jitter to prevent thundering herd problem by randomizing retry times
$delay += random_int(0, self::JITTER_SECONDS);
$attempts = $job->attempts();
if ($attempts <= 3 || $attempts % 10 === 0) {
Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [
'job_class' => $job::class,
'attempts' => $attempts,
'retry_after' => $e->getRetryAfter(),
'delay' => $delay,
]);
}
$job->release($delay);
}
}
}
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Middleware;
use Illuminate\Support\Facades\Log;
use Jiminny\Exceptions\RateLimitException;
/**
* Job middleware that catches RateLimitException from HubSpot API calls
* and releases the job back to the queue with the appropriate delay.
*/
class HandleHubspotRateLimit
{
private const int MAX_RETRY_DELAY = 600;
private const int MIN_RETRY_DELAY = 1;
private const int JITTER_SECONDS = 5;
public function handle(object $job, callable $next): void
{
try {
$next($job);
} catch (RateLimitException $e) {
$delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));
// Add jitter to prevent thundering herd problem by randomizing retry times
$delay += random_int(0, self::JITTER_SECONDS);
$attempts = $job->attempts();
if ($attempts <= 3 || $attempts % 10 === 0) {
Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [
'job_class' => $job::class,
'attempts' => $attempts,
'retry_after' => $e->getRetryAfter(),
'delay' => $delay,
]);
}
$job->release($delay);
}
}
}
Review rate limit handli…, Editor Group 2
remote
app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...
JY-20725-handle-HS-search-rate-limit*
app (Git) - Synchronize Changes
Errors: 6, Warnings: 9, Infos: 2
6
9
2
Notifications
key, PHP extension: Premium features not active.
Sign In
Sign In
Diff editor
Clear
Review rate limit handling for HubSpot job queue
Session history
New session
Message actions
RateLimitException.php#9-9
RateLimitException.php#9-9
Reveiw the diff. Mostly
@app/Jobs/Crm/MatchActivityCrmData.php
,
@app/Exceptions/RateLimitException.php
,
@app/Jobs/Middleware/HandleHubspotRateLimit.php
,
@app/Services/Crm/Hubspot/Client.php
and
@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php
. The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?
Thought for 5s
Thought for 5s
I'll review the implementation carefully. Let me first check how
RateLimitException
is used elsewhere and look at the test files and
PaginationState
.
Bash
Find all usages of RateLimitException outside the changed files
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/app --include="*.php" | grep -v "HandleHubspotRateLimit\|MatchActivityCrmData\|Client.php\|RateLimitException.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:17:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:68: RateLimitException |
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:15:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:58: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:19:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:76: RateLimitException |
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:50: * @throws RateLimitException When rate limit is hit
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:195: // RateLimitException and other exceptions are re-thrown as-is
Read
PaginationState.php
PaginationState.php
Read
HandleHubspotRateLimitTest.php
HandleHubspotRateLimitTest.php
Bash
Check how RateLimitException is used in GenerateActionItemsJob
IN
grep -rn "RateLimitException\|LogicException\|RuntimeException" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -20
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
Bash
Find all catch blocks or instanceof checks for RateLimitException
IN
grep -rn "catch.*RateLimitException\|instanceof RateLimitException" /Users/lukas/jiminny/app/app --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:11: * Job middleware that catches RateLimitException from HubSpot API calls
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:24: } catch (RateLimitException $e) {
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:149: if (! $e instanceof RateLimitException) {
Bash
Find all test references to RateLimitException
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/tests --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:13:#[CoversClass(RateLimitException::class)]
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:14:class RateLimitExceptionTest extends TestCase
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:18: $exception = new RateLimitException();
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:28: $exception = new RateLimitException('Hubspot rate limit', 30, $previous);
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:52: $exception = new RateLimitException('test', $input);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:10:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:49: public function testPropagatesNonRateLimitExceptions(): void
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:103: throw new RateLimitException('rate limited', $retryAfter);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:150: throw new RateLimitException('rate limited', 1);
Bash
Check retry/failure handling in GenerateActionItemsJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -30
Copy code to clipboard
OUT
13:use Jiminny\Exceptions\RateLimitException;
51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
56: $this->release(30);
Bash
Check retry/failure handling in GenerateAiCallScoringJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php | head -30
Copy code to clipboard
OUT
17:use Jiminny\Exceptions\RateLimitException;
68: RateLimitException |
75: $this->release(30);
Bash
Check retry config in MatchActivityCrmData
IN
grep -n "retryAfter\|RETRY_WINDOW\|retryUntil\|maxTries" /Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php
Copy code to clipboard
OUT
34: private const int RETRY_WINDOW_MINUTES = 30;
45: public function retryUntil(): \DateTimeInterface
47: return now()->addMinutes(self::RETRY_WINDOW_MINUTES);
77: return self::RETRY_WINDOW_MINUTES * 60 + 60;
Bash
Check the cache key format
IN
grep -n "getRateLimitCacheKey\|hubspot:ratelimit" /Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Client.php
Copy code to clipboard
OUT
78: $cacheKey = $this->getRateLimitCacheKey();
110: private function getRateLimitCacheKey(): string
112: return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());
Bash
Find other jobs that might use the rate limit middleware
IN
grep -rn "class.*Middleware\|HandleHubspotRateLimit" /Users/lukas/jiminny/app/app/Jobs --include="*.php" | grep -v "HandleHubspotRateLimit.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:18:use Jiminny\Jobs\Middleware\HandleHubspotRateLimit;
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:42: return [new HandleHubspotRateLimit()];
Read
HubspotClientInterface.php
HubspotClientInterface.php
Thought for 73s
Thought for 73s
Now I have a complete picture. Here's my full analysis:
Review Summary
Review Summary
RuntimeException vs LogicException — Safe ✓
RuntimeException
vs
LogicException
— Safe ✓
The change is semantically correct and won't break anything.
LogicException
is for programmer errors (invalid arguments, contract violations). A rate limit from an external API is a runtime condition —
RuntimeException
is the right parent. All callers catch
RateLimitException
by name explicitly (union catches in
GenerateActionItemsJob
,
GenerateAiCallScoringJob
,
SummarizeTranscriptionJob
,
GenerateAiActivityTypeJob
) or check
instanceof RateLimitException
— none relies on the parent class type, so nothing breaks.
Issue 1 — Circuit breaker stores stale delay (most important bug)
Issue 1 — Circuit breaker stores stale delay (most important bug)
Client.php:94
Client.php:94
Copy code to clipboard
Redis::setex($cacheKey, $retryAfter, (string) $retryAfter);
The TTL is
$retryAfter
seconds, but the
stored value
is also the original
$retryAfter
. If a second job reads this cache 20 seconds later, it throws
RateLimitException(retryAfter=30)
and gets delayed 30 more seconds — even though only 10 remain. In a spike of 100 jobs, each subsequent job inflates its wait.
Fix:
store the absolute expiry timestamp, reconstruct the remaining delay when reading:
Copy code to clipboard
// on 429:
Redis::setex($cacheKey, $retryAfter, (string) (time() + $retryAfter));
// in the cached-read branch:
$remaining = max(1, (int) $cachedRetryAfter - time());
throw new RateLimitException('Hubspot rate limit (cached circuit-breaker)', $remaining);
Issue 2 — retryUntil() window may expire under sustained rate limiting
Issue 2 —
retryUntil()
window may expire under sustained rate limiting
MatchActivityCrmData.php:45-47
MatchActivityCrmData.php:45-47
retryUntil()
is calculated as
now() + 30 min
at
dispatch time
and stored in the job payload. With
MAX_RETRY_DELAY = 600s
, you only get ~3 rate-limit-triggered releases before the 30-minute window closes and the job is permanently failed. For a heavy 429 spike (daily limit, parsed as 600s), this can easily happen.
Consider increasing
RETRY_WINDOW_MINUTES
to 60 or more, or making it configurable. The
uniqueFor()
value should be updated to match.
Issue 3 — Only search() uses the circuit breaker, but other methods can still hit 429
Issue 3 — Only
search()
uses the circuit breaker, but other methods can still hit 429
Client.php:76-108...
|
19523
|
NULL
|
NULL
|
NULL
|
|
19527
|
835
|
7
|
2026-05-11T12:59:13.472513+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778504353472_m2.jpg...
|
Code
|
Review rate limit handli… — app
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 12 pending changes
12
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Explorer (⇧⌘E)","depth":19,"bounds":{"left":0.0,"top":0.047885075,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":true},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.057462092,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Search (⇧⌘F)","depth":19,"bounds":{"left":0.0,"top":0.08619314,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.09577015,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Source Control (⌃⇧G) - 12 pending changes","depth":19,"bounds":{"left":0.0,"top":0.1245012,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.13407822,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"12","depth":22,"bounds":{"left":0.00831117,"top":0.1452514,"width":0.003656915,"height":0.008778931},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.008643617,"top":0.14604948,"width":0.0016622341,"height":0.007980846}},{"char_start":1,"char_count":1,"bounds":{"left":0.009973404,"top":0.14604948,"width":0.0023271276,"height":0.007980846}}],"role_description":"text"},{"role":"AXRadioButton","text":"Run and Debug (⇧⌘D)","depth":19,"bounds":{"left":0.0,"top":0.16280925,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.17238627,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Remote Explorer","depth":19,"bounds":{"left":0.0,"top":0.20111732,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.21069433,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Extensions (⇧⌘X) - 2 require update","depth":19,"bounds":{"left":0.0,"top":0.23942538,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.2490024,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":22,"bounds":{"left":0.009640957,"top":0.2601756,"width":0.0019946808,"height":0.008778931},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Testing","depth":19,"bounds":{"left":0.0,"top":0.27773345,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.28731045,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Claude Code","depth":19,"bounds":{"left":0.0,"top":0.3160415,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"EXPLORER","depth":17,"bounds":{"left":0.022606382,"top":0.047885075,"width":0.018949468,"height":0.02793296},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"EXPLORER","depth":18,"bounds":{"left":0.022606382,"top":0.056664005,"width":0.018949468,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.022606382,"top":0.056664005,"width":0.0023271276,"height":0.0103751}},{"char_start":1,"char_count":7,"bounds":{"left":0.024933511,"top":0.056664005,"width":0.01662234,"height":0.0103751}}],"role_description":"text"},{"role":"AXButton","text":"Explorer Section: app","depth":21,"bounds":{"left":0.015957447,"top":0.07581804,"width":0.09940159,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.07821229,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"Explorer Section: app","depth":22,"bounds":{"left":0.022606382,"top":0.07581804,"width":0.0076462766,"height":0.017557861},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"APP","depth":23,"bounds":{"left":0.022606382,"top":0.079010375,"width":0.0076462766,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.0933759,"width":0.0063164895,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CheckAndRetryRemoteMatch.php","depth":27,"bounds":{"left":0.033909574,"top":0.0933759,"width":0.068484046,"height":0.011173184},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.0933759,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":27,"bounds":{"left":0.036901597,"top":0.0933759,"width":0.06549202,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.10853951,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateFollowupActivity.php","depth":27,"bounds":{"left":0.033909574,"top":0.110135674,"width":0.054853722,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.11093376,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":25,"bounds":{"left":0.036901597,"top":0.11093376,"width":0.051861703,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.12609737,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateNotes.php","depth":27,"bounds":{"left":0.033909574,"top":0.12769353,"width":0.034242023,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.12849163,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.036901597,"top":0.12849163,"width":0.03125,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.14365523,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivitiesToNewOpportunity.php","depth":27,"bounds":{"left":0.033909574,"top":0.1452514,"width":0.07712766,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.14604948,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":34,"bounds":{"left":0.037898935,"top":0.14604948,"width":0.07347074,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.16121309,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivityCrmData.php","depth":27,"bounds":{"left":0.033909574,"top":0.16280925,"width":0.054521278,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.16360734,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":23,"bounds":{"left":0.037898935,"top":0.16360734,"width":0.050531916,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.17877094,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"NoteObject.php","depth":27,"bounds":{"left":0.033909574,"top":0.18036711,"width":0.031914894,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.1811652,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":13,"bounds":{"left":0.03723404,"top":0.1811652,"width":0.028922873,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.1963288,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SaveActivity.php","depth":27,"bounds":{"left":0.033909574,"top":0.19792499,"width":0.03324468,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.19872306,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":15,"bounds":{"left":0.03656915,"top":0.19872306,"width":0.030585106,"height":0.011971269}}],"role_description":"text"}]...
|
-8363908823500430529
|
8248367187593201064
|
idle
|
accessibility
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 12 pending changes
12
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
19529
|
835
|
8
|
2026-05-11T12:59:43.995696+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778504383995_m2.jpg...
|
Code
|
Review rate limit handli… — app
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 12 pending changes
12
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php
SaveTranscription.php
SetupLayout.php
SyncActivity.php
SyncFieldMetadata.php
SyncHubspotObjects.php
SyncLeads.php
SyncObjects.php
SyncOpportunitiesJob.php
SyncOpportunity.php
SyncProfileMetadata.php
SyncTeamFieldsJob.php
SyncTeamMetadata.php
UpdateOpportunitySpecifications.php
UpdateStage.php
DealRisks
Mailbox
MeetingBot
Middleware
HandleHubspotRateLimit.php
RateLimited.php
Streaming
Team
Telephony
User
BaseProcessingJob.php
DummyJob.php
ImportRecallAIRecordingsJob.php
ImportRemoteTrackJob.php
Job.php
JobDispatcher.php
JobDispatcherInterface.php
PurgeSoftDeletedOpportunityJob.php
SqsVisibilityControl.php
Listeners
Mail
Models
Activity
Ai
AskAnything
Calendar
Connection
Crm
Jobs
app
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
MySQL Section
MYSQL
MYSQL
MatchActivityCrmData.php, Editor Group 1
RateLimitException.php, Editor Group 1
HandleHubspotRateLimit.php, Editor Group 1
Client.php, Editor Group 1
HubspotPaginationService.php, Editor Group 1
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Middleware;
use Illuminate\Support\Facades\Log;
use Jiminny\Exceptions\RateLimitException;
/**
* Job middleware that catches RateLimitException from HubSpot API calls
* and releases the job back to the queue with the appropriate delay.
*/
class HandleHubspotRateLimit
{
private const int MAX_RETRY_DELAY = 600;
private const int MIN_RETRY_DELAY = 1;
private const int JITTER_SECONDS = 5;
public function handle(object $job, callable $next): void
{
try {
$next($job);
} catch (RateLimitException $e) {
$delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));
// Add jitter to prevent thundering herd problem by randomizing retry times
$delay += random_int(0, self::JITTER_SECONDS);
$attempts = $job->attempts();
if ($attempts <= 3 || $attempts % 10 === 0) {
Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [
'job_class' => $job::class,
'attempts' => $attempts,
'retry_after' => $e->getRetryAfter(),
'delay' => $delay,
]);
}
$job->release($delay);
}
}
}
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Middleware;
use Illuminate\Support\Facades\Log;
use Jiminny\Exceptions\RateLimitException;
/**
* Job middleware that catches RateLimitException from HubSpot API calls
* and releases the job back to the queue with the appropriate delay.
*/
class HandleHubspotRateLimit
{
private const int MAX_RETRY_DELAY = 600;
private const int MIN_RETRY_DELAY = 1;
private const int JITTER_SECONDS = 5;
public function handle(object $job, callable $next): void
{
try {
$next($job);
} catch (RateLimitException $e) {
$delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));
// Add jitter to prevent thundering herd problem by randomizing retry times
$delay += random_int(0, self::JITTER_SECONDS);
$attempts = $job->attempts();
if ($attempts <= 3 || $attempts % 10 === 0) {
Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [
'job_class' => $job::class,
'attempts' => $attempts,
'retry_after' => $e->getRetryAfter(),
'delay' => $delay,
]);
}
$job->release($delay);
}
}
}
Review rate limit handli…, Editor Group 2
remote
app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...
JY-20725-handle-HS-search-rate-limit*
app (Git) - Synchronize Changes
Errors: 6, Warnings: 9, Infos: 2
6
9
2
Notifications
key, PHP extension: Premium features not active.
Sign In
Sign In
Diff editor
Clear
Review rate limit handling for HubSpot job queue
Session history
New session
Message actions
RateLimitException.php#9-9
RateLimitException.php#9-9
Reveiw the diff. Mostly
@app/Jobs/Crm/MatchActivityCrmData.php
,
@app/Exceptions/RateLimitException.php
,
@app/Jobs/Middleware/HandleHubspotRateLimit.php
,
@app/Services/Crm/Hubspot/Client.php
and
@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php
. The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?
Thought for 5s
Thought for 5s
I'll review the implementation carefully. Let me first check how
RateLimitException
is used elsewhere and look at the test files and
PaginationState
.
Bash
Find all usages of RateLimitException outside the changed files
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/app --include="*.php" | grep -v "HandleHubspotRateLimit\|MatchActivityCrmData\|Client.php\|RateLimitException.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:17:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:68: RateLimitException |
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:15:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:58: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:19:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:76: RateLimitException |
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:50: * @throws RateLimitException When rate limit is hit
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:195: // RateLimitException and other exceptions are re-thrown as-is
Read
PaginationState.php
PaginationState.php
Read
HandleHubspotRateLimitTest.php
HandleHubspotRateLimitTest.php
Bash
Check how RateLimitException is used in GenerateActionItemsJob
IN
grep -rn "RateLimitException\|LogicException\|RuntimeException" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -20
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
Bash
Find all catch blocks or instanceof checks for RateLimitException
IN
grep -rn "catch.*RateLimitException\|instanceof RateLimitException" /Users/lukas/jiminny/app/app --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:11: * Job middleware that catches RateLimitException from HubSpot API calls
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:24: } catch (RateLimitException $e) {
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:149: if (! $e instanceof RateLimitException) {
Bash
Find all test references to RateLimitException
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/tests --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:13:#[CoversClass(RateLimitException::class)]
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:14:class RateLimitExceptionTest extends TestCase
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:18: $exception = new RateLimitException();
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:28: $exception = new RateLimitException('Hubspot rate limit', 30, $previous);
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:52: $exception = new RateLimitException('test', $input);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:10:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:49: public function testPropagatesNonRateLimitExceptions(): void
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:103: throw new RateLimitException('rate limited', $retryAfter);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:150: throw new RateLimitException('rate limited', 1);
Bash
Check retry/failure handling in GenerateActionItemsJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -30
Copy code to clipboard
OUT
13:use Jiminny\Exceptions\RateLimitException;
51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
56: $this->release(30);
Bash
Check retry/failure handling in GenerateAiCallScoringJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php | head -30
Copy code to clipboard
OUT
17:use Jiminny\Exceptions\RateLimitException;
68: RateLimitException |
75: $this->release(30);
Bash
Check retry config in MatchActivityCrmData
IN
grep -n "retryAfter\|RETRY_WINDOW\|retryUntil\|maxTries" /Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php
Copy code to clipboard
OUT
34: private const int RETRY_WINDOW_MINUTES = 30;
45: public function retryUntil(): \DateTimeInterface
47: return now()->addMinutes(self::RETRY_WINDOW_MINUTES);
77: return self::RETRY_WINDOW_MINUTES * 60 + 60;
Bash
Check the cache key format
IN
grep -n "getRateLimitCacheKey\|hubspot:ratelimit" /Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Client.php
Copy code to clipboard
OUT
78: $cacheKey = $this->getRateLimitCacheKey();
110: private function getRateLimitCacheKey(): string
112: return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());
Bash
Find other jobs that might use the rate limit middleware
IN
grep -rn "class.*Middleware\|HandleHubspotRateLimit" /Users/lukas/jiminny/app/app/Jobs --include="*.php" | grep -v "HandleHubspotRateLimit.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:18:use Jiminny\Jobs\Middleware\HandleHubspotRateLimit;
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:42: return [new HandleHubspotRateLimit()];
Read
HubspotClientInterface.php
HubspotClientInterface.php
Thought for 73s
Thought for 73s
Now I have a complete picture. Here's my full analysis:
Review Summary
Review Summary
RuntimeException vs LogicException — Safe ✓
RuntimeException
vs
LogicException
— Safe ✓
The change is semantically correct and won't break anything.
LogicException
is for programmer errors (invalid arguments, contract violations). A rate limit from an external API is a runtime condition —
RuntimeException
is the right parent. All callers catch
RateLimitException
by name explicitly (union catches in
GenerateActionItemsJob
,
GenerateAiCallScoringJob
,
SummarizeTranscriptionJob
,
GenerateAiActivityTypeJob
) or check
instanceof RateLimitException
— none relies on the parent class type, so nothing breaks.
Issue 1 — Circuit breaker stores stale delay (most important bug)
Issue 1 — Circuit breaker stores stale delay (most important bug)
Client.php:94
Client.php:94
Copy code to clipboard
Redis::setex($cacheKey, $retryAfter, (string) $retryAfter);
The TTL is
$retryAfter
seconds, but the
stored value
is also the original
$retryAfter
. If a second job reads this cache 20 seconds later, it throws
RateLimitException(retryAfter=30)
and gets delayed 30 more seconds — even though only 10 remain. In a spike of 100 jobs, each subsequent job inflates its wait.
Fix:
store the absolute expiry timestamp, reconstruct the remaining delay when reading:
Copy code to clipboard
// on 429:
Redis::setex($cacheKey, $retryAfter, (string) (time() + $retryAfter));
// in the cached-read branch:
$remaining = max(1, (int) $cachedRetryAfter - time());
throw new RateLimitException('Hubspot rate limit (cached circuit-breaker)', $remaining);
Issue 2 — retryUntil() window may expire under sustained rate limiting
Issue 2 —
retryUntil()
window may expire under sustained rate limiting
MatchActivityCrmData.php:45-47
MatchActivityCrmData.php:45-47
retryUntil()
is calculated as
now() + 30 min
at
dispatch time
and stored in the job payload. With
MAX_RETRY_DELAY = 600s
, you only get ~3 rate-limit-triggered releases before the 30-minute window closes and the job is permanently failed. For a heavy 429 spike (daily limit, parsed as 600s), this can easily happen.
Consider increasing
RETRY_WINDOW_MINUTES
to 60 or more, or making it configurable. The
uniqueFor()
value should be updated to match.
Issue 3 — Only search() uses the circuit breaker, but other methods can still hit 429
Issue 3 — Only
search()
uses the circuit breaker, but other methods can still hit 429
Client.php:76-108
Client.php:76-108
executeRequest()
is only called from
search()
. Methods like
getOpportunityById()...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Explorer (⇧⌘E)","depth":19,"bounds":{"left":0.0,"top":0.047885075,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":true},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.057462092,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Search (⇧⌘F)","depth":19,"bounds":{"left":0.0,"top":0.08619314,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.09577015,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Source Control (⌃⇧G) - 12 pending changes","depth":19,"bounds":{"left":0.0,"top":0.1245012,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.13407822,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"12","depth":22,"bounds":{"left":0.00831117,"top":0.1452514,"width":0.003656915,"height":0.008778931},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.008643617,"top":0.14604948,"width":0.0016622341,"height":0.007980846}},{"char_start":1,"char_count":1,"bounds":{"left":0.009973404,"top":0.14604948,"width":0.0023271276,"height":0.007980846}}],"role_description":"text"},{"role":"AXRadioButton","text":"Run and Debug (⇧⌘D)","depth":19,"bounds":{"left":0.0,"top":0.16280925,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.17238627,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Remote Explorer","depth":19,"bounds":{"left":0.0,"top":0.20111732,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.21069433,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Extensions (⇧⌘X) - 2 require update","depth":19,"bounds":{"left":0.0,"top":0.23942538,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.2490024,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":22,"bounds":{"left":0.009640957,"top":0.2601756,"width":0.0019946808,"height":0.008778931},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Testing","depth":19,"bounds":{"left":0.0,"top":0.27773345,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.28731045,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Claude Code","depth":19,"bounds":{"left":0.0,"top":0.3160415,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"EXPLORER","depth":17,"bounds":{"left":0.022606382,"top":0.047885075,"width":0.018949468,"height":0.02793296},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"EXPLORER","depth":18,"bounds":{"left":0.022606382,"top":0.056664005,"width":0.018949468,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.022606382,"top":0.056664005,"width":0.0023271276,"height":0.0103751}},{"char_start":1,"char_count":7,"bounds":{"left":0.024933511,"top":0.056664005,"width":0.01662234,"height":0.0103751}}],"role_description":"text"},{"role":"AXButton","text":"Explorer Section: app","depth":21,"bounds":{"left":0.015957447,"top":0.07581804,"width":0.09940159,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.07821229,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"Explorer Section: app","depth":22,"bounds":{"left":0.022606382,"top":0.07581804,"width":0.0076462766,"height":0.017557861},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"APP","depth":23,"bounds":{"left":0.022606382,"top":0.079010375,"width":0.0076462766,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.0933759,"width":0.0063164895,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CheckAndRetryRemoteMatch.php","depth":27,"bounds":{"left":0.033909574,"top":0.0933759,"width":0.068484046,"height":0.011173184},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.0933759,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":27,"bounds":{"left":0.036901597,"top":0.0933759,"width":0.06549202,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.10853951,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateFollowupActivity.php","depth":27,"bounds":{"left":0.033909574,"top":0.110135674,"width":0.054853722,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.11093376,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":25,"bounds":{"left":0.036901597,"top":0.11093376,"width":0.051861703,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.12609737,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateNotes.php","depth":27,"bounds":{"left":0.033909574,"top":0.12769353,"width":0.034242023,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.12849163,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.036901597,"top":0.12849163,"width":0.03125,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.14365523,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivitiesToNewOpportunity.php","depth":27,"bounds":{"left":0.033909574,"top":0.1452514,"width":0.07712766,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.14604948,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":34,"bounds":{"left":0.037898935,"top":0.14604948,"width":0.07347074,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.16121309,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivityCrmData.php","depth":27,"bounds":{"left":0.033909574,"top":0.16280925,"width":0.054521278,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.16360734,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":23,"bounds":{"left":0.037898935,"top":0.16360734,"width":0.050531916,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.17877094,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"NoteObject.php","depth":27,"bounds":{"left":0.033909574,"top":0.18036711,"width":0.031914894,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.1811652,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":13,"bounds":{"left":0.03723404,"top":0.1811652,"width":0.028922873,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.1963288,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SaveActivity.php","depth":27,"bounds":{"left":0.033909574,"top":0.19792499,"width":0.03324468,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.19872306,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":15,"bounds":{"left":0.03656915,"top":0.19872306,"width":0.030585106,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.21388668,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SaveTranscription.php","depth":27,"bounds":{"left":0.033909574,"top":0.21548285,"width":0.04454787,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.21628092,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":20,"bounds":{"left":0.03656915,"top":0.21628092,"width":0.042220745,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.23144454,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SetupLayout.php","depth":27,"bounds":{"left":0.033909574,"top":0.2330407,"width":0.034242023,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.23383878,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.03656915,"top":0.23383878,"width":0.031914894,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.2490024,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncActivity.php","depth":27,"bounds":{"left":0.033909574,"top":0.25059855,"width":0.03357713,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.25139666,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":15,"bounds":{"left":0.03656915,"top":0.25139666,"width":0.030917553,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.26656026,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncFieldMetadata.php","depth":27,"bounds":{"left":0.033909574,"top":0.26815644,"width":0.047539894,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.26895452,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":20,"bounds":{"left":0.03656915,"top":0.26895452,"width":0.04488032,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.28411812,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncHubspotObjects.php","depth":27,"bounds":{"left":0.033909574,"top":0.2857143,"width":0.051861703,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.28651237,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":21,"bounds":{"left":0.03656915,"top":0.28651237,"width":0.04920213,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.30167598,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncLeads.php","depth":27,"bounds":{"left":0.033909574,"top":0.30327216,"width":0.030917553,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.30407023,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":12,"bounds":{"left":0.03656915,"top":0.30407023,"width":0.02825798,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.31923383,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncObjects.php","depth":27,"bounds":{"left":0.033909574,"top":0.32083002,"width":0.034574468,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.3216281,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.03656915,"top":0.3216281,"width":0.031914894,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.3367917,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncOpportunitiesJob.php","depth":27,"bounds":{"left":0.033909574,"top":0.33838788,"width":0.053856384,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.33918595,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":23,"bounds":{"left":0.03656915,"top":0.33918595,"width":0.05119681,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.35434955,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncOpportunity.php","depth":27,"bounds":{"left":0.033909574,"top":0.35594574,"width":0.04288564,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.3567438,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":18,"bounds":{"left":0.03656915,"top":0.3567438,"width":0.040226065,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.3719074,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncProfileMetadata.php","depth":27,"bounds":{"left":0.033909574,"top":0.3735036,"width":0.05086436,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.37430167,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":22,"bounds":{"left":0.03656915,"top":0.37430167,"width":0.048204787,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.38946527,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncTeamFieldsJob.php","depth":27,"bounds":{"left":0.033909574,"top":0.39106146,"width":0.04886968,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.39185953,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":20,"bounds":{"left":0.03656915,"top":0.39185953,"width":0.046210106,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.40702313,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncTeamMetadata.php","depth":27,"bounds":{"left":0.033909574,"top":0.4086193,"width":0.048537236,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.4094174,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":19,"bounds":{"left":0.03656915,"top":0.4094174,"width":0.045877658,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.424581,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"UpdateOpportunitySpecifications.php","depth":27,"bounds":{"left":0.033909574,"top":0.42617717,"width":0.076130316,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.42697525,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":34,"bounds":{"left":0.03723404,"top":0.42697525,"width":0.0731383,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.44213888,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"UpdateStage.php","depth":27,"bounds":{"left":0.033909574,"top":0.44373503,"width":0.03523936,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.4445331,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.03723404,"top":0.4445331,"width":0.032247342,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.4612929,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"DealRisks","depth":27,"bounds":{"left":0.03125,"top":0.4612929,"width":0.019614361,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.46209097,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":8,"bounds":{"left":0.034574468,"top":0.46209097,"width":0.016289894,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.47885075,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mailbox","depth":27,"bounds":{"left":0.03125,"top":0.47885075,"width":0.015625,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.47964883,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":6,"bounds":{"left":0.03523936,"top":0.47964883,"width":0.011635638,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.4964086,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MeetingBot","depth":27,"bounds":{"left":0.03125,"top":0.4964086,"width":0.023271276,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.49720672,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":9,"bounds":{"left":0.03523936,"top":0.49720672,"width":0.019281914,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.5139665,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Middleware","depth":27,"bounds":{"left":0.03125,"top":0.5139665,"width":0.023271276,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.51476455,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":9,"bounds":{"left":0.03523936,"top":0.51476455,"width":0.019281914,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.52992815,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"HandleHubspotRateLimit.php","depth":27,"bounds":{"left":0.033909574,"top":0.53152436,"width":0.059175532,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.5323224,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":25,"bounds":{"left":0.03723404,"top":0.5323224,"width":0.05618351,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.547486,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"RateLimited.php","depth":27,"bounds":{"left":0.033909574,"top":0.5490822,"width":0.032912236,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.54988027,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.036901597,"top":0.54988027,"width":0.029920213,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.5666401,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Streaming","depth":27,"bounds":{"left":0.03125,"top":0.5666401,"width":0.020611702,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.5674381,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":8,"bounds":{"left":0.033909574,"top":0.5674381,"width":0.017952127,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.58419794,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Team","depth":27,"bounds":{"left":0.03125,"top":0.58419794,"width":0.010970744,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.584996,"width":0.0023271276,"height":0.011971269}},{"char_start":1,"char_count":3,"bounds":{"left":0.03357713,"top":0.584996,"width":0.008643617,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.6017558,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Telephony","depth":27,"bounds":{"left":0.03125,"top":0.6017558,"width":0.020611702,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.60255384,"width":0.0023271276,"height":0.011971269}},{"char_start":1,"char_count":8,"bounds":{"left":0.03357713,"top":0.60255384,"width":0.018284574,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.61931366,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"User","depth":27,"bounds":{"left":0.03125,"top":0.61931366,"width":0.00930851,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.6201117,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":3,"bounds":{"left":0.034574468,"top":0.6201117,"width":0.0063164895,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.63527536,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"BaseProcessingJob.php","depth":27,"bounds":{"left":0.03125,"top":0.6368715,"width":0.048537236,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.63766956,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":20,"bounds":{"left":0.034242023,"top":0.63766956,"width":0.045545213,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.6528332,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"DummyJob.php","depth":27,"bounds":{"left":0.03125,"top":0.6544294,"width":0.03158245,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.6552275,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":11,"bounds":{"left":0.034574468,"top":0.6552275,"width":0.02825798,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.6703911,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"ImportRecallAIRecordingsJob.php","depth":27,"bounds":{"left":0.03125,"top":0.67198724,"width":0.068484046,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.67278534,"width":0.0013297872,"height":0.011971269}},{"char_start":1,"char_count":30,"bounds":{"left":0.032579787,"top":0.67278534,"width":0.06715426,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.68794894,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"ImportRemoteTrackJob.php","depth":27,"bounds":{"left":0.03125,"top":0.6895451,"width":0.055518616,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.6903432,"width":0.0013297872,"height":0.011971269}},{"char_start":1,"char_count":23,"bounds":{"left":0.032579787,"top":0.6903432,"width":0.054521278,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.7055068,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Job.php","depth":27,"bounds":{"left":0.03125,"top":0.70710295,"width":0.016289894,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.70790106,"width":0.0023271276,"height":0.011971269}},{"char_start":1,"char_count":6,"bounds":{"left":0.03357713,"top":0.70790106,"width":0.014295213,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.72306466,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JobDispatcher.php","depth":27,"bounds":{"left":0.03125,"top":0.7246608,"width":0.037898935,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.7254589,"width":0.0023271276,"height":0.011971269}},{"char_start":1,"char_count":16,"bounds":{"left":0.03357713,"top":0.7254589,"width":0.035904255,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.7406225,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JobDispatcherInterface.php","depth":27,"bounds":{"left":0.03125,"top":0.7422187,"width":0.05618351,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.7430168,"width":0.0023271276,"height":0.011971269}},{"char_start":1,"char_count":25,"bounds":{"left":0.03357713,"top":0.7430168,"width":0.05418883,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.7581804,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"PurgeSoftDeletedOpportunityJob.php","depth":27,"bounds":{"left":0.03125,"top":0.75977653,"width":0.076130316,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.77573824,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SqsVisibilityControl.php","depth":27,"bounds":{"left":0.03125,"top":0.7773344,"width":0.047872342,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.022273935,"top":0.79489225,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Listeners","depth":27,"bounds":{"left":0.028590426,"top":0.79489225,"width":0.018284574,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.022273935,"top":0.8124501,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mail","depth":27,"bounds":{"left":0.028590426,"top":0.8124501,"width":0.00831117,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.022273935,"top":0.830008,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Models","depth":27,"bounds":{"left":0.028590426,"top":0.830008,"width":0.01462766,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.8475658,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Activity","depth":27,"bounds":{"left":0.03125,"top":0.8475658,"width":0.014960106,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.8651237,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Ai","depth":27,"bounds":{"left":0.03125,"top":0.8651237,"width":0.0039893617,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.88268155,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"AskAnything","depth":27,"bounds":{"left":0.03125,"top":0.88268155,"width":0.025265958,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.9002394,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Calendar","depth":27,"bounds":{"left":0.03125,"top":0.9002394,"width":0.017952127,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.91779727,"width":0.005319149,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Connection","depth":27,"bounds":{"left":0.03125,"top":0.91779727,"width":0.022938829,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.13088587,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Crm","depth":27,"bounds":{"left":0.03125,"top":0.13088587,"width":0.00831117,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.022273935,"top":0.11332801,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Jobs","depth":27,"bounds":{"left":0.028590426,"top":0.11332801,"width":0.009640957,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.019614361,"top":0.09577015,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"app","depth":27,"bounds":{"left":0.025930852,"top":0.09577015,"width":0.0076462766,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.10605053,"top":0.096568234,"width":0.004654255,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Outline Section","depth":21,"bounds":{"left":0.015957447,"top":0.92976856,"width":0.09940159,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.9321628,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"OUTLINE","depth":22,"bounds":{"left":0.022606382,"top":0.92976856,"width":0.01662234,"height":0.017557861},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"OUTLINE","depth":23,"bounds":{"left":0.022606382,"top":0.933759,"width":0.01662234,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Timeline Section","depth":21,"bounds":{"left":0.015957447,"top":0.9473264,"width":0.09940159,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.9497207,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"TIMELINE","depth":22,"bounds":{"left":0.022606382,"top":0.9473264,"width":0.01761968,"height":0.017557861},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"TIMELINE","depth":23,"bounds":{"left":0.022606382,"top":0.95131683,"width":0.01761968,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"MySQL Section","depth":21,"bounds":{"left":0.015957447,"top":0.9648843,"width":0.09940159,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.96727854,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"MYSQL","depth":22,"bounds":{"left":0.022606382,"top":0.9648843,"width":0.013297873,"height":0.017557861},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"MYSQL","depth":23,"bounds":{"left":0.022606382,"top":0.9688747,"width":0.013297873,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"MatchActivityCrmData.php, Editor Group 1","depth":28,"bounds":{"left":0.11569149,"top":0.047885075,"width":0.07480053,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"RateLimitException.php, Editor Group 1","depth":28,"bounds":{"left":0.19015957,"top":0.047885075,"width":0.06815159,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"HandleHubspotRateLimit.php, Editor Group 1","depth":28,"bounds":{"left":0.25797874,"top":0.047885075,"width":0.080119684,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXRadioButton","text":"Client.php, Editor Group 1","depth":28,"bounds":{"left":0.33776596,"top":0.047885075,"width":0.045545213,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"HubspotPaginationService.php, Editor Group 1","depth":28,"bounds":{"left":0.38297874,"top":0.047885075,"width":0.08277926,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.12832446,"top":0.07821229,"width":0.0056515955,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.14328457,"top":0.07821229,"width":0.0056515955,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.171875,"top":0.07821229,"width":0.0056515955,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.24401596,"top":0.07821229,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.24933511,"top":0.07821229,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Middleware;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Exceptions\\RateLimitException;\n\n/**\n * Job middleware that catches RateLimitException from HubSpot API calls\n * and releases the job back to the queue with the appropriate delay.\n */\nclass HandleHubspotRateLimit\n{\n private const int MAX_RETRY_DELAY = 600;\n private const int MIN_RETRY_DELAY = 1;\n private const int JITTER_SECONDS = 5;\n\n public function handle(object $job, callable $next): void\n {\n try {\n $next($job);\n } catch (RateLimitException $e) {\n $delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));\n // Add jitter to prevent thundering herd problem by randomizing retry times\n $delay += random_int(0, self::JITTER_SECONDS);\n\n $attempts = $job->attempts();\n if ($attempts <= 3 || $attempts % 10 === 0) {\n Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [\n 'job_class' => $job::class,\n 'attempts' => $attempts,\n 'retry_after' => $e->getRetryAfter(),\n 'delay' => $delay,\n ]);\n }\n\n $job->release($delay);\n }\n }\n}","depth":28,"bounds":{"left":0.13763298,"top":0.27613726,"width":0.23803191,"height":0.014365523},"on_screen":true,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Middleware;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Exceptions\\RateLimitException;\n\n/**\n * Job middleware that catches RateLimitException from HubSpot API calls\n * and releases the job back to the queue with the appropriate delay.\n */\nclass HandleHubspotRateLimit\n{\n private const int MAX_RETRY_DELAY = 600;\n private const int MIN_RETRY_DELAY = 1;\n private const int JITTER_SECONDS = 5;\n\n public function handle(object $job, callable $next): void\n {\n try {\n $next($job);\n } catch (RateLimitException $e) {\n $delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));\n // Add jitter to prevent thundering herd problem by randomizing retry times\n $delay += random_int(0, self::JITTER_SECONDS);\n\n $attempts = $job->attempts();\n if ($attempts <= 3 || $attempts % 10 === 0) {\n Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [\n 'job_class' => $job::class,\n 'attempts' => $attempts,\n 'retry_after' => $e->getRetryAfter(),\n 'delay' => $delay,\n ]);\n }\n\n $job->release($delay);\n }\n }\n}","role_description":"editor","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Middleware;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Exceptions\\RateLimitException;\n\n/**\n * Job middleware that catches RateLimitException from HubSpot API calls\n * and releases the job back to the queue with the appropriate delay.\n */\nclass HandleHubspotRateLimit\n{\n private const int MAX_RETRY_DELAY = 600;\n private const int MIN_RETRY_DELAY = 1;\n private const int JITTER_SECONDS = 5;\n\n public function handle(object $job, callable $next): void\n {\n try {\n $next($job);\n } catch (RateLimitException $e) {\n $delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));\n // Add jitter to prevent thundering herd problem by randomizing retry times\n $delay += random_int(0, self::JITTER_SECONDS);\n\n $attempts = $job->attempts();\n if ($attempts <= 3 || $attempts % 10 === 0) {\n Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [\n 'job_class' => $job::class,\n 'attempts' => $attempts,\n 'retry_after' => $e->getRetryAfter(),\n 'delay' => $delay,\n ]);\n }\n\n $job->release($delay);\n }\n }\n}","depth":29,"bounds":{"left":0.13763298,"top":0.27613726,"width":0.23803191,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Review rate limit handli…, Editor Group 2","depth":28,"bounds":{"left":0.5578458,"top":0.047885075,"width":0.07014628,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXButton","text":"remote","depth":16,"bounds":{"left":0.0006648936,"top":0.98244214,"width":0.010638298,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...","depth":16,"bounds":{"left":0.012965426,"top":0.98244214,"width":0.084773935,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.013962766,"top":0.9848364,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JY-20725-handle-HS-search-rate-limit*","depth":17,"bounds":{"left":0.019281914,"top":0.9856345,"width":0.0774601,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"app (Git) - Synchronize Changes","depth":16,"bounds":{"left":0.09740692,"top":0.98244214,"width":0.0076462766,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Errors: 6, Warnings: 9, Infos: 2","depth":16,"bounds":{"left":0.107380316,"top":0.98244214,"width":0.032579787,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.109042555,"top":0.9848364,"width":0.0056515955,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"6","depth":17,"bounds":{"left":0.1143617,"top":0.9856345,"width":0.004986702,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.11934841,"top":0.9848364,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"9","depth":17,"bounds":{"left":0.124667555,"top":0.9856345,"width":0.004654255,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.12932181,"top":0.9848364,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":17,"bounds":{"left":0.13464096,"top":0.9856345,"width":0.003656915,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Notifications","depth":16,"bounds":{"left":0.9886968,"top":0.98244214,"width":0.010638298,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"key, PHP extension: Premium features not active.","depth":16,"bounds":{"left":0.9790558,"top":0.98244214,"width":0.008643617,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sign In","depth":16,"bounds":{"left":0.9544548,"top":0.98244214,"width":0.022606382,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.95611703,"top":0.9848364,"width":0.0056515955,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Sign In","depth":17,"bounds":{"left":0.96143615,"top":0.9856345,"width":0.013962766,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Diff editor","depth":12,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Clear","depth":12,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Review rate limit handling for HubSpot job queue","depth":19,"bounds":{"left":0.56017286,"top":0.08060654,"width":0.099734046,"height":0.022346368},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Session history","depth":19,"bounds":{"left":0.9780585,"top":0.08060654,"width":0.00930851,"height":0.022346368},"on_screen":true,"help_text":"Session history","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New session","depth":19,"bounds":{"left":0.9886968,"top":0.08060654,"width":0.00930851,"height":0.022346368},"on_screen":true,"help_text":"New session","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Message actions","depth":24,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"RateLimitException.php#9-9","depth":23,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"RateLimitException.php#9-9","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Reveiw the diff. Mostly","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Jobs/Crm/MatchActivityCrmData.php","depth":26,"on_screen":false,"help_text":"Open app/Jobs/Crm/MatchActivityCrmData.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Exceptions/RateLimitException.php","depth":26,"on_screen":false,"help_text":"Open app/Exceptions/RateLimitException.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Jobs/Middleware/HandleHubspotRateLimit.php","depth":26,"on_screen":false,"help_text":"Open app/Jobs/Middleware/HandleHubspotRateLimit.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Services/Crm/Hubspot/Client.php","depth":26,"on_screen":false,"help_text":"Open app/Services/Crm/Hubspot/Client.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"and","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php","depth":26,"on_screen":false,"help_text":"Open app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":". The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Thought for 5s","depth":23,"on_screen":false,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thought for 5s","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"I'll review the implementation carefully. Let me first check how","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is used elsewhere and look at the test files and","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"PaginationState","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":".","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find all usages of RateLimitException outside the changed files","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"RateLimitException\" /Users/lukas/jiminny/app/app --include=\"*.php\" | grep -v \"HandleHubspotRateLimit\\|MatchActivityCrmData\\|Client.php\\|RateLimitException.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception\n/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:17:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:68: RateLimitException |\n/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:15:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:58: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception\n/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:19:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:76: RateLimitException |\n/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:8:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:50: * @throws RateLimitException When rate limit is hit\n/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:195: // RateLimitException and other exceptions are re-thrown as-is","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"PaginationState.php","depth":24,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"PaginationState.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"HandleHubspotRateLimitTest.php","depth":24,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"HandleHubspotRateLimitTest.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check how RateLimitException is used in GenerateActionItemsJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"RateLimitException\\|LogicException\\|RuntimeException\" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -20","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find all catch blocks or instanceof checks for RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"catch.*RateLimitException\\|instanceof RateLimitException\" /Users/lukas/jiminny/app/app --include=\"*.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:11: * Job middleware that catches RateLimitException from HubSpot API calls\n/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:24: } catch (RateLimitException $e) {\n/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:149: if (! $e instanceof RateLimitException) {","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find all test references to RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"RateLimitException\" /Users/lukas/jiminny/app/tests --include=\"*.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:8:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:13:#[CoversClass(RateLimitException::class)]\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:14:class RateLimitExceptionTest extends TestCase\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:18: $exception = new RateLimitException();\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:28: $exception = new RateLimitException('Hubspot rate limit', 30, $previous);\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:52: $exception = new RateLimitException('test', $input);\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:10:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:49: public function testPropagatesNonRateLimitExceptions(): void\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:103: throw new RateLimitException('rate limited', $retryAfter);\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:150: throw new RateLimitException('rate limited', 1);","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check retry/failure handling in GenerateActionItemsJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"RateLimitException\\|retryUntil\\|backoff\\|maxExceptions\\|maxTries\\|release\\|failed\" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -30","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"13:use Jiminny\\Exceptions\\RateLimitException;\n51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception\n56: $this->release(30);","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check retry/failure handling in GenerateAiCallScoringJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"RateLimitException\\|retryUntil\\|backoff\\|maxExceptions\\|maxTries\\|release\\|failed\" /Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php | head -30","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"17:use Jiminny\\Exceptions\\RateLimitException;\n68: RateLimitException |\n75: $this->release(30);","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check retry config in MatchActivityCrmData","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"retryAfter\\|RETRY_WINDOW\\|retryUntil\\|maxTries\" /Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"34: private const int RETRY_WINDOW_MINUTES = 30;\n45: public function retryUntil(): \\DateTimeInterface\n47: return now()->addMinutes(self::RETRY_WINDOW_MINUTES);\n77: return self::RETRY_WINDOW_MINUTES * 60 + 60;","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check the cache key format","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"getRateLimitCacheKey\\|hubspot:ratelimit\" /Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Client.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"78: $cacheKey = $this->getRateLimitCacheKey();\n110: private function getRateLimitCacheKey(): string\n112: return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find other jobs that might use the rate limit middleware","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"class.*Middleware\\|HandleHubspotRateLimit\" /Users/lukas/jiminny/app/app/Jobs --include=\"*.php\" | grep -v \"HandleHubspotRateLimit.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:18:use Jiminny\\Jobs\\Middleware\\HandleHubspotRateLimit;\n/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:42: return [new HandleHubspotRateLimit()];","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"HubspotClientInterface.php","depth":24,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"HubspotClientInterface.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Thought for 73s","depth":23,"on_screen":false,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thought for 73s","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Now I have a complete picture. Here's my full analysis:","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"Review Summary","depth":22,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"Review Summary","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"RuntimeException vs LogicException — Safe ✓","depth":22,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"RuntimeException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"vs","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"LogicException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"— Safe ✓","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"The change is semantically correct and won't break anything.","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"LogicException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is for programmer errors (invalid arguments, contract violations). A rate limit from an external API is a runtime condition —","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RuntimeException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is the right parent. All callers catch","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"by name explicitly (union catches in","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"GenerateActionItemsJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"GenerateAiCallScoringJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"SummarizeTranscriptionJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"GenerateAiActivityTypeJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":") or check","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"instanceof RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"— none relies on the parent class type, so nothing breaks.","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"Issue 1 — Circuit breaker stores stale delay (most important bug)","depth":22,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"Issue 1 — Circuit breaker stores stale delay (most important bug)","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"Client.php:94","depth":23,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Client.php:94","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":23,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Redis::setex($cacheKey, $retryAfter, (string) $retryAfter);","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"The TTL is","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"$retryAfter","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"seconds, but the","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"stored value","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is also the original","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"$retryAfter","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":". If a second job reads this cache 20 seconds later, it throws","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RateLimitException(retryAfter=30)","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"and gets delayed 30 more seconds — even though only 10 remain. In a spike of 100 jobs, each subsequent job inflates its wait.","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Fix:","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"store the absolute expiry timestamp, reconstruct the remaining delay when reading:","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":23,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"// on 429:\nRedis::setex($cacheKey, $retryAfter, (string) (time() + $retryAfter));\n\n// in the cached-read branch:\n$remaining = max(1, (int) $cachedRetryAfter - time());\nthrow new RateLimitException('Hubspot rate limit (cached circuit-breaker)', $remaining);","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"Issue 2 — retryUntil() window may expire under sustained rate limiting","depth":22,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"Issue 2 —","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"retryUntil()","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"window may expire under sustained rate limiting","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"MatchActivityCrmData.php:45-47","depth":23,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"MatchActivityCrmData.php:45-47","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"retryUntil()","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is calculated as","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"now() + 30 min","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"at","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"dispatch time","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"and stored in the job payload. With","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"MAX_RETRY_DELAY = 600s","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":", you only get ~3 rate-limit-triggered releases before the 30-minute window closes and the job is permanently failed. For a heavy 429 spike (daily limit, parsed as 600s), this can easily happen.","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Consider increasing","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RETRY_WINDOW_MINUTES","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"to 60 or more, or making it configurable. The","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"uniqueFor()","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"value should be updated to match.","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"Issue 3 — Only search() uses the circuit breaker, but other methods can still hit 429","depth":22,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"Issue 3 — Only","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"search()","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"uses the circuit breaker, but other methods can still hit 429","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"Client.php:76-108","depth":23,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Client.php:76-108","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"executeRequest()","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is only called from","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"search()","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":". Methods like","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"getOpportunityById()","depth":24,"on_screen":false,"role_description":"text"}]...
|
7358630257726997762
|
-7282232337153345981
|
idle
|
accessibility
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 12 pending changes
12
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php
SaveTranscription.php
SetupLayout.php
SyncActivity.php
SyncFieldMetadata.php
SyncHubspotObjects.php
SyncLeads.php
SyncObjects.php
SyncOpportunitiesJob.php
SyncOpportunity.php
SyncProfileMetadata.php
SyncTeamFieldsJob.php
SyncTeamMetadata.php
UpdateOpportunitySpecifications.php
UpdateStage.php
DealRisks
Mailbox
MeetingBot
Middleware
HandleHubspotRateLimit.php
RateLimited.php
Streaming
Team
Telephony
User
BaseProcessingJob.php
DummyJob.php
ImportRecallAIRecordingsJob.php
ImportRemoteTrackJob.php
Job.php
JobDispatcher.php
JobDispatcherInterface.php
PurgeSoftDeletedOpportunityJob.php
SqsVisibilityControl.php
Listeners
Mail
Models
Activity
Ai
AskAnything
Calendar
Connection
Crm
Jobs
app
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
MySQL Section
MYSQL
MYSQL
MatchActivityCrmData.php, Editor Group 1
RateLimitException.php, Editor Group 1
HandleHubspotRateLimit.php, Editor Group 1
Client.php, Editor Group 1
HubspotPaginationService.php, Editor Group 1
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Middleware;
use Illuminate\Support\Facades\Log;
use Jiminny\Exceptions\RateLimitException;
/**
* Job middleware that catches RateLimitException from HubSpot API calls
* and releases the job back to the queue with the appropriate delay.
*/
class HandleHubspotRateLimit
{
private const int MAX_RETRY_DELAY = 600;
private const int MIN_RETRY_DELAY = 1;
private const int JITTER_SECONDS = 5;
public function handle(object $job, callable $next): void
{
try {
$next($job);
} catch (RateLimitException $e) {
$delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));
// Add jitter to prevent thundering herd problem by randomizing retry times
$delay += random_int(0, self::JITTER_SECONDS);
$attempts = $job->attempts();
if ($attempts <= 3 || $attempts % 10 === 0) {
Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [
'job_class' => $job::class,
'attempts' => $attempts,
'retry_after' => $e->getRetryAfter(),
'delay' => $delay,
]);
}
$job->release($delay);
}
}
}
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Middleware;
use Illuminate\Support\Facades\Log;
use Jiminny\Exceptions\RateLimitException;
/**
* Job middleware that catches RateLimitException from HubSpot API calls
* and releases the job back to the queue with the appropriate delay.
*/
class HandleHubspotRateLimit
{
private const int MAX_RETRY_DELAY = 600;
private const int MIN_RETRY_DELAY = 1;
private const int JITTER_SECONDS = 5;
public function handle(object $job, callable $next): void
{
try {
$next($job);
} catch (RateLimitException $e) {
$delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));
// Add jitter to prevent thundering herd problem by randomizing retry times
$delay += random_int(0, self::JITTER_SECONDS);
$attempts = $job->attempts();
if ($attempts <= 3 || $attempts % 10 === 0) {
Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [
'job_class' => $job::class,
'attempts' => $attempts,
'retry_after' => $e->getRetryAfter(),
'delay' => $delay,
]);
}
$job->release($delay);
}
}
}
Review rate limit handli…, Editor Group 2
remote
app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...
JY-20725-handle-HS-search-rate-limit*
app (Git) - Synchronize Changes
Errors: 6, Warnings: 9, Infos: 2
6
9
2
Notifications
key, PHP extension: Premium features not active.
Sign In
Sign In
Diff editor
Clear
Review rate limit handling for HubSpot job queue
Session history
New session
Message actions
RateLimitException.php#9-9
RateLimitException.php#9-9
Reveiw the diff. Mostly
@app/Jobs/Crm/MatchActivityCrmData.php
,
@app/Exceptions/RateLimitException.php
,
@app/Jobs/Middleware/HandleHubspotRateLimit.php
,
@app/Services/Crm/Hubspot/Client.php
and
@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php
. The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?
Thought for 5s
Thought for 5s
I'll review the implementation carefully. Let me first check how
RateLimitException
is used elsewhere and look at the test files and
PaginationState
.
Bash
Find all usages of RateLimitException outside the changed files
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/app --include="*.php" | grep -v "HandleHubspotRateLimit\|MatchActivityCrmData\|Client.php\|RateLimitException.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:17:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:68: RateLimitException |
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:15:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:58: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:19:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:76: RateLimitException |
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:50: * @throws RateLimitException When rate limit is hit
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:195: // RateLimitException and other exceptions are re-thrown as-is
Read
PaginationState.php
PaginationState.php
Read
HandleHubspotRateLimitTest.php
HandleHubspotRateLimitTest.php
Bash
Check how RateLimitException is used in GenerateActionItemsJob
IN
grep -rn "RateLimitException\|LogicException\|RuntimeException" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -20
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
Bash
Find all catch blocks or instanceof checks for RateLimitException
IN
grep -rn "catch.*RateLimitException\|instanceof RateLimitException" /Users/lukas/jiminny/app/app --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:11: * Job middleware that catches RateLimitException from HubSpot API calls
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:24: } catch (RateLimitException $e) {
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:149: if (! $e instanceof RateLimitException) {
Bash
Find all test references to RateLimitException
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/tests --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:13:#[CoversClass(RateLimitException::class)]
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:14:class RateLimitExceptionTest extends TestCase
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:18: $exception = new RateLimitException();
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:28: $exception = new RateLimitException('Hubspot rate limit', 30, $previous);
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:52: $exception = new RateLimitException('test', $input);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:10:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:49: public function testPropagatesNonRateLimitExceptions(): void
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:103: throw new RateLimitException('rate limited', $retryAfter);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:150: throw new RateLimitException('rate limited', 1);
Bash
Check retry/failure handling in GenerateActionItemsJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -30
Copy code to clipboard
OUT
13:use Jiminny\Exceptions\RateLimitException;
51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
56: $this->release(30);
Bash
Check retry/failure handling in GenerateAiCallScoringJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php | head -30
Copy code to clipboard
OUT
17:use Jiminny\Exceptions\RateLimitException;
68: RateLimitException |
75: $this->release(30);
Bash
Check retry config in MatchActivityCrmData
IN
grep -n "retryAfter\|RETRY_WINDOW\|retryUntil\|maxTries" /Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php
Copy code to clipboard
OUT
34: private const int RETRY_WINDOW_MINUTES = 30;
45: public function retryUntil(): \DateTimeInterface
47: return now()->addMinutes(self::RETRY_WINDOW_MINUTES);
77: return self::RETRY_WINDOW_MINUTES * 60 + 60;
Bash
Check the cache key format
IN
grep -n "getRateLimitCacheKey\|hubspot:ratelimit" /Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Client.php
Copy code to clipboard
OUT
78: $cacheKey = $this->getRateLimitCacheKey();
110: private function getRateLimitCacheKey(): string
112: return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());
Bash
Find other jobs that might use the rate limit middleware
IN
grep -rn "class.*Middleware\|HandleHubspotRateLimit" /Users/lukas/jiminny/app/app/Jobs --include="*.php" | grep -v "HandleHubspotRateLimit.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:18:use Jiminny\Jobs\Middleware\HandleHubspotRateLimit;
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:42: return [new HandleHubspotRateLimit()];
Read
HubspotClientInterface.php
HubspotClientInterface.php
Thought for 73s
Thought for 73s
Now I have a complete picture. Here's my full analysis:
Review Summary
Review Summary
RuntimeException vs LogicException — Safe ✓
RuntimeException
vs
LogicException
— Safe ✓
The change is semantically correct and won't break anything.
LogicException
is for programmer errors (invalid arguments, contract violations). A rate limit from an external API is a runtime condition —
RuntimeException
is the right parent. All callers catch
RateLimitException
by name explicitly (union catches in
GenerateActionItemsJob
,
GenerateAiCallScoringJob
,
SummarizeTranscriptionJob
,
GenerateAiActivityTypeJob
) or check
instanceof RateLimitException
— none relies on the parent class type, so nothing breaks.
Issue 1 — Circuit breaker stores stale delay (most important bug)
Issue 1 — Circuit breaker stores stale delay (most important bug)
Client.php:94
Client.php:94
Copy code to clipboard
Redis::setex($cacheKey, $retryAfter, (string) $retryAfter);
The TTL is
$retryAfter
seconds, but the
stored value
is also the original
$retryAfter
. If a second job reads this cache 20 seconds later, it throws
RateLimitException(retryAfter=30)
and gets delayed 30 more seconds — even though only 10 remain. In a spike of 100 jobs, each subsequent job inflates its wait.
Fix:
store the absolute expiry timestamp, reconstruct the remaining delay when reading:
Copy code to clipboard
// on 429:
Redis::setex($cacheKey, $retryAfter, (string) (time() + $retryAfter));
// in the cached-read branch:
$remaining = max(1, (int) $cachedRetryAfter - time());
throw new RateLimitException('Hubspot rate limit (cached circuit-breaker)', $remaining);
Issue 2 — retryUntil() window may expire under sustained rate limiting
Issue 2 —
retryUntil()
window may expire under sustained rate limiting
MatchActivityCrmData.php:45-47
MatchActivityCrmData.php:45-47
retryUntil()
is calculated as
now() + 30 min
at
dispatch time
and stored in the job payload. With
MAX_RETRY_DELAY = 600s
, you only get ~3 rate-limit-triggered releases before the 30-minute window closes and the job is permanently failed. For a heavy 429 spike (daily limit, parsed as 600s), this can easily happen.
Consider increasing
RETRY_WINDOW_MINUTES
to 60 or more, or making it configurable. The
uniqueFor()
value should be updated to match.
Issue 3 — Only search() uses the circuit breaker, but other methods can still hit 429
Issue 3 — Only
search()
uses the circuit breaker, but other methods can still hit 429
Client.php:76-108
Client.php:76-108
executeRequest()
is only called from
search()
. Methods like
getOpportunityById()...
|
19527
|
NULL
|
NULL
|
NULL
|
|
19531
|
835
|
9
|
2026-05-11T13:00:14.440338+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778504414440_m2.jpg...
|
Code
|
Review rate limit handli… — app
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G)
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php
SaveTranscription.php
SetupLayout.php
SyncActivity.php
SyncFieldMetadata.php
SyncHubspotObjects.php
SyncLeads.php
SyncObjects.php
SyncOpportunitiesJob.php
SyncOpportunity.php
SyncProfileMetadata.php
SyncTeamFieldsJob.php
SyncTeamMetadata.php
UpdateOpportunitySpecifications.php
UpdateStage.php
DealRisks
Mailbox
MeetingBot
Middleware
HandleHubspotRateLimit.php
RateLimited.php
Streaming
Team
Telephony
User
BaseProcessingJob.php
DummyJob.php
...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Explorer (⇧⌘E)","depth":19,"bounds":{"left":0.0,"top":0.047885075,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":true},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.057462092,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Search (⇧⌘F)","depth":19,"bounds":{"left":0.0,"top":0.08619314,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.09577015,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Source Control (⌃⇧G)","depth":19,"bounds":{"left":0.0,"top":0.1245012,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.13407822,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Run and Debug (⇧⌘D)","depth":19,"bounds":{"left":0.0,"top":0.16280925,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.17238627,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Remote Explorer","depth":19,"bounds":{"left":0.0,"top":0.20111732,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.21069433,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Extensions (⇧⌘X) - 2 require update","depth":19,"bounds":{"left":0.0,"top":0.23942538,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.2490024,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":22,"bounds":{"left":0.009640957,"top":0.2601756,"width":0.0019946808,"height":0.008778931},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Testing","depth":19,"bounds":{"left":0.0,"top":0.27773345,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.28731045,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Claude Code","depth":19,"bounds":{"left":0.0,"top":0.3160415,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"EXPLORER","depth":17,"bounds":{"left":0.022606382,"top":0.047885075,"width":0.018949468,"height":0.02793296},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"EXPLORER","depth":18,"bounds":{"left":0.022606382,"top":0.056664005,"width":0.018949468,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.022606382,"top":0.056664005,"width":0.0023271276,"height":0.0103751}},{"char_start":1,"char_count":7,"bounds":{"left":0.024933511,"top":0.056664005,"width":0.01662234,"height":0.0103751}}],"role_description":"text"},{"role":"AXButton","text":"Explorer Section: app","depth":21,"bounds":{"left":0.015957447,"top":0.07581804,"width":0.09940159,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.07821229,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"Explorer Section: app","depth":22,"bounds":{"left":0.022606382,"top":0.07581804,"width":0.0076462766,"height":0.017557861},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"APP","depth":23,"bounds":{"left":0.022606382,"top":0.079010375,"width":0.0076462766,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.0933759,"width":0.0063164895,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CheckAndRetryRemoteMatch.php","depth":27,"bounds":{"left":0.033909574,"top":0.0933759,"width":0.068484046,"height":0.011173184},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.0933759,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":27,"bounds":{"left":0.036901597,"top":0.0933759,"width":0.06549202,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.10853951,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateFollowupActivity.php","depth":27,"bounds":{"left":0.033909574,"top":0.110135674,"width":0.054853722,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.11093376,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":25,"bounds":{"left":0.036901597,"top":0.11093376,"width":0.051861703,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.12609737,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateNotes.php","depth":27,"bounds":{"left":0.033909574,"top":0.12769353,"width":0.034242023,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.12849163,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.036901597,"top":0.12849163,"width":0.03125,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.14365523,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivitiesToNewOpportunity.php","depth":27,"bounds":{"left":0.033909574,"top":0.1452514,"width":0.07712766,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.14604948,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":34,"bounds":{"left":0.037898935,"top":0.14604948,"width":0.07347074,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.16121309,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivityCrmData.php","depth":27,"bounds":{"left":0.033909574,"top":0.16280925,"width":0.054521278,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.16360734,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":23,"bounds":{"left":0.037898935,"top":0.16360734,"width":0.050531916,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.17877094,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"NoteObject.php","depth":27,"bounds":{"left":0.033909574,"top":0.18036711,"width":0.031914894,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.1811652,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":13,"bounds":{"left":0.03723404,"top":0.1811652,"width":0.028922873,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.1963288,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SaveActivity.php","depth":27,"bounds":{"left":0.033909574,"top":0.19792499,"width":0.03324468,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.19872306,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":15,"bounds":{"left":0.03656915,"top":0.19872306,"width":0.030585106,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.21388668,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SaveTranscription.php","depth":27,"bounds":{"left":0.033909574,"top":0.21548285,"width":0.04454787,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.21628092,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":20,"bounds":{"left":0.03656915,"top":0.21628092,"width":0.042220745,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.23144454,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SetupLayout.php","depth":27,"bounds":{"left":0.033909574,"top":0.2330407,"width":0.034242023,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.23383878,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.03656915,"top":0.23383878,"width":0.031914894,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.2490024,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncActivity.php","depth":27,"bounds":{"left":0.033909574,"top":0.25059855,"width":0.03357713,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.25139666,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":15,"bounds":{"left":0.03656915,"top":0.25139666,"width":0.030917553,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.26656026,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncFieldMetadata.php","depth":27,"bounds":{"left":0.033909574,"top":0.26815644,"width":0.047539894,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.26895452,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":20,"bounds":{"left":0.03656915,"top":0.26895452,"width":0.04488032,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.28411812,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncHubspotObjects.php","depth":27,"bounds":{"left":0.033909574,"top":0.2857143,"width":0.051861703,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.28651237,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":21,"bounds":{"left":0.03656915,"top":0.28651237,"width":0.04920213,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.30167598,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncLeads.php","depth":27,"bounds":{"left":0.033909574,"top":0.30327216,"width":0.030917553,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.30407023,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":12,"bounds":{"left":0.03656915,"top":0.30407023,"width":0.02825798,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.31923383,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncObjects.php","depth":27,"bounds":{"left":0.033909574,"top":0.32083002,"width":0.034574468,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.3216281,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.03656915,"top":0.3216281,"width":0.031914894,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.3367917,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncOpportunitiesJob.php","depth":27,"bounds":{"left":0.033909574,"top":0.33838788,"width":0.053856384,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.33918595,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":23,"bounds":{"left":0.03656915,"top":0.33918595,"width":0.05119681,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.35434955,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncOpportunity.php","depth":27,"bounds":{"left":0.033909574,"top":0.35594574,"width":0.04288564,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.3567438,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":18,"bounds":{"left":0.03656915,"top":0.3567438,"width":0.040226065,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.3719074,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncProfileMetadata.php","depth":27,"bounds":{"left":0.033909574,"top":0.3735036,"width":0.05086436,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.37430167,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":22,"bounds":{"left":0.03656915,"top":0.37430167,"width":0.048204787,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.38946527,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncTeamFieldsJob.php","depth":27,"bounds":{"left":0.033909574,"top":0.39106146,"width":0.04886968,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.39185953,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":20,"bounds":{"left":0.03656915,"top":0.39185953,"width":0.046210106,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.40702313,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncTeamMetadata.php","depth":27,"bounds":{"left":0.033909574,"top":0.4086193,"width":0.048537236,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.4094174,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":19,"bounds":{"left":0.03656915,"top":0.4094174,"width":0.045877658,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.424581,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"UpdateOpportunitySpecifications.php","depth":27,"bounds":{"left":0.033909574,"top":0.42617717,"width":0.076130316,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.42697525,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":34,"bounds":{"left":0.03723404,"top":0.42697525,"width":0.0731383,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.44213888,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"UpdateStage.php","depth":27,"bounds":{"left":0.033909574,"top":0.44373503,"width":0.03523936,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.4445331,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.03723404,"top":0.4445331,"width":0.032247342,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.4612929,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"DealRisks","depth":27,"bounds":{"left":0.03125,"top":0.4612929,"width":0.019614361,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.46209097,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":8,"bounds":{"left":0.034574468,"top":0.46209097,"width":0.016289894,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.47885075,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mailbox","depth":27,"bounds":{"left":0.03125,"top":0.47885075,"width":0.015625,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.47964883,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":6,"bounds":{"left":0.03523936,"top":0.47964883,"width":0.011635638,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.4964086,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MeetingBot","depth":27,"bounds":{"left":0.03125,"top":0.4964086,"width":0.023271276,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.49720672,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":9,"bounds":{"left":0.03523936,"top":0.49720672,"width":0.019281914,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.5139665,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Middleware","depth":27,"bounds":{"left":0.03125,"top":0.5139665,"width":0.023271276,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.51476455,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":9,"bounds":{"left":0.03523936,"top":0.51476455,"width":0.019281914,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.52992815,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"HandleHubspotRateLimit.php","depth":27,"bounds":{"left":0.033909574,"top":0.53152436,"width":0.059175532,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.5323224,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":25,"bounds":{"left":0.03723404,"top":0.5323224,"width":0.05618351,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.547486,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"RateLimited.php","depth":27,"bounds":{"left":0.033909574,"top":0.5490822,"width":0.032912236,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.54988027,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.036901597,"top":0.54988027,"width":0.029920213,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.5666401,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Streaming","depth":27,"bounds":{"left":0.03125,"top":0.5666401,"width":0.020611702,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.5674381,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":8,"bounds":{"left":0.033909574,"top":0.5674381,"width":0.017952127,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.58419794,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Team","depth":27,"bounds":{"left":0.03125,"top":0.58419794,"width":0.010970744,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.584996,"width":0.0023271276,"height":0.011971269}},{"char_start":1,"char_count":3,"bounds":{"left":0.03357713,"top":0.584996,"width":0.008643617,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.6017558,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Telephony","depth":27,"bounds":{"left":0.03125,"top":0.6017558,"width":0.020611702,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.60255384,"width":0.0023271276,"height":0.011971269}},{"char_start":1,"char_count":8,"bounds":{"left":0.03357713,"top":0.60255384,"width":0.018284574,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.61931366,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"User","depth":27,"bounds":{"left":0.03125,"top":0.61931366,"width":0.00930851,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.6201117,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":3,"bounds":{"left":0.034574468,"top":0.6201117,"width":0.0063164895,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.63527536,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"BaseProcessingJob.php","depth":27,"bounds":{"left":0.03125,"top":0.6368715,"width":0.048537236,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.63766956,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":20,"bounds":{"left":0.034242023,"top":0.63766956,"width":0.045545213,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.6528332,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"DummyJob.php","depth":27,"bounds":{"left":0.03125,"top":0.6544294,"width":0.03158245,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.6552275,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":11,"bounds":{"left":0.034574468,"top":0.6552275,"width":0.02825798,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.6703911,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"}]...
|
5677612886256766047
|
8861136582149505815
|
idle
|
accessibility
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G)
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php
SaveTranscription.php
SetupLayout.php
SyncActivity.php
SyncFieldMetadata.php
SyncHubspotObjects.php
SyncLeads.php
SyncObjects.php
SyncOpportunitiesJob.php
SyncOpportunity.php
SyncProfileMetadata.php
SyncTeamFieldsJob.php
SyncTeamMetadata.php
UpdateOpportunitySpecifications.php
UpdateStage.php
DealRisks
Mailbox
MeetingBot
Middleware
HandleHubspotRateLimit.php
RateLimited.php
Streaming
Team
Telephony
User
BaseProcessingJob.php
DummyJob.php
...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
19533
|
835
|
10
|
2026-05-11T13:00:44.943382+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778504444943_m2.jpg...
|
Code
|
Review rate limit handli… — app
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 12 pending changes
12
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php
SaveTranscription.php
SetupLayout.php
SyncActivity.php
SyncFieldMetadata.php
SyncHubspotObjects.php
SyncLeads.php
SyncObjects.php
SyncOpportunitiesJob.php
SyncOpportunity.php
SyncProfileMetadata.php
SyncTeamFieldsJob.php
SyncTeamMetadata.php
UpdateOpportunitySpecifications.php
UpdateStage.php
DealRisks
Mailbox
MeetingBot
Middleware
HandleHubspotRateLimit.php
RateLimited.php
Streaming
Team
Telephony
User
BaseProcessingJob.php
DummyJob.php
ImportRecallAIRecordingsJob.php
ImportRemoteTrackJob.php
Job.php
JobDispatcher.php
JobDispatcherInterface.php
PurgeSoftDeletedOpportunityJob.php
SqsVisibilityControl.php
Listeners
Mail
Models
Activity
Ai
AskAnything
Calendar
Connection
Crm
Jobs
app
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
MySQL Section
MYSQL
MYSQL
MatchActivityCrmData.php, Editor Group 1
RateLimitException.php, Editor Group 1
HandleHubspotRateLimit.php, Editor Group 1
Client.php, Editor Group 1
HubspotPaginationService.php, Editor Group 1
...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Explorer (⇧⌘E)","depth":19,"bounds":{"left":0.0,"top":0.047885075,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":true},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.057462092,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Search (⇧⌘F)","depth":19,"bounds":{"left":0.0,"top":0.08619314,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.09577015,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Source Control (⌃⇧G) - 12 pending changes","depth":19,"bounds":{"left":0.0,"top":0.1245012,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.13407822,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"12","depth":22,"bounds":{"left":0.00831117,"top":0.1452514,"width":0.003656915,"height":0.008778931},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.008643617,"top":0.14604948,"width":0.0016622341,"height":0.007980846}},{"char_start":1,"char_count":1,"bounds":{"left":0.009973404,"top":0.14604948,"width":0.0023271276,"height":0.007980846}}],"role_description":"text"},{"role":"AXRadioButton","text":"Run and Debug (⇧⌘D)","depth":19,"bounds":{"left":0.0,"top":0.16280925,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.17238627,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Remote Explorer","depth":19,"bounds":{"left":0.0,"top":0.20111732,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.21069433,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Extensions (⇧⌘X) - 2 require update","depth":19,"bounds":{"left":0.0,"top":0.23942538,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.2490024,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":22,"bounds":{"left":0.009640957,"top":0.2601756,"width":0.0019946808,"height":0.008778931},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Testing","depth":19,"bounds":{"left":0.0,"top":0.27773345,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.28731045,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Claude Code","depth":19,"bounds":{"left":0.0,"top":0.3160415,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"EXPLORER","depth":17,"bounds":{"left":0.022606382,"top":0.047885075,"width":0.018949468,"height":0.02793296},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"EXPLORER","depth":18,"bounds":{"left":0.022606382,"top":0.056664005,"width":0.018949468,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.022606382,"top":0.056664005,"width":0.0023271276,"height":0.0103751}},{"char_start":1,"char_count":7,"bounds":{"left":0.024933511,"top":0.056664005,"width":0.01662234,"height":0.0103751}}],"role_description":"text"},{"role":"AXButton","text":"Explorer Section: app","depth":21,"bounds":{"left":0.015957447,"top":0.07581804,"width":0.09940159,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.07821229,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"Explorer Section: app","depth":22,"bounds":{"left":0.022606382,"top":0.07581804,"width":0.0076462766,"height":0.017557861},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"APP","depth":23,"bounds":{"left":0.022606382,"top":0.079010375,"width":0.0076462766,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.0933759,"width":0.0063164895,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CheckAndRetryRemoteMatch.php","depth":27,"bounds":{"left":0.033909574,"top":0.0933759,"width":0.068484046,"height":0.011173184},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.0933759,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":27,"bounds":{"left":0.036901597,"top":0.0933759,"width":0.06549202,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.10853951,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateFollowupActivity.php","depth":27,"bounds":{"left":0.033909574,"top":0.110135674,"width":0.054853722,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.11093376,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":25,"bounds":{"left":0.036901597,"top":0.11093376,"width":0.051861703,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.12609737,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateNotes.php","depth":27,"bounds":{"left":0.033909574,"top":0.12769353,"width":0.034242023,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.12849163,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.036901597,"top":0.12849163,"width":0.03125,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.14365523,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivitiesToNewOpportunity.php","depth":27,"bounds":{"left":0.033909574,"top":0.1452514,"width":0.07712766,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.14604948,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":34,"bounds":{"left":0.037898935,"top":0.14604948,"width":0.07347074,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.16121309,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivityCrmData.php","depth":27,"bounds":{"left":0.033909574,"top":0.16280925,"width":0.054521278,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.16360734,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":23,"bounds":{"left":0.037898935,"top":0.16360734,"width":0.050531916,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.17877094,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"NoteObject.php","depth":27,"bounds":{"left":0.033909574,"top":0.18036711,"width":0.031914894,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.1811652,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":13,"bounds":{"left":0.03723404,"top":0.1811652,"width":0.028922873,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.1963288,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SaveActivity.php","depth":27,"bounds":{"left":0.033909574,"top":0.19792499,"width":0.03324468,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.19872306,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":15,"bounds":{"left":0.03656915,"top":0.19872306,"width":0.030585106,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.21388668,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SaveTranscription.php","depth":27,"bounds":{"left":0.033909574,"top":0.21548285,"width":0.04454787,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.21628092,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":20,"bounds":{"left":0.03656915,"top":0.21628092,"width":0.042220745,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.23144454,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SetupLayout.php","depth":27,"bounds":{"left":0.033909574,"top":0.2330407,"width":0.034242023,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.23383878,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.03656915,"top":0.23383878,"width":0.031914894,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.2490024,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncActivity.php","depth":27,"bounds":{"left":0.033909574,"top":0.25059855,"width":0.03357713,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.25139666,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":15,"bounds":{"left":0.03656915,"top":0.25139666,"width":0.030917553,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.26656026,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncFieldMetadata.php","depth":27,"bounds":{"left":0.033909574,"top":0.26815644,"width":0.047539894,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.26895452,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":20,"bounds":{"left":0.03656915,"top":0.26895452,"width":0.04488032,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.28411812,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncHubspotObjects.php","depth":27,"bounds":{"left":0.033909574,"top":0.2857143,"width":0.051861703,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.28651237,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":21,"bounds":{"left":0.03656915,"top":0.28651237,"width":0.04920213,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.30167598,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncLeads.php","depth":27,"bounds":{"left":0.033909574,"top":0.30327216,"width":0.030917553,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.30407023,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":12,"bounds":{"left":0.03656915,"top":0.30407023,"width":0.02825798,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.31923383,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncObjects.php","depth":27,"bounds":{"left":0.033909574,"top":0.32083002,"width":0.034574468,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.3216281,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.03656915,"top":0.3216281,"width":0.031914894,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.3367917,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncOpportunitiesJob.php","depth":27,"bounds":{"left":0.033909574,"top":0.33838788,"width":0.053856384,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.33918595,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":23,"bounds":{"left":0.03656915,"top":0.33918595,"width":0.05119681,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.35434955,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncOpportunity.php","depth":27,"bounds":{"left":0.033909574,"top":0.35594574,"width":0.04288564,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.3567438,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":18,"bounds":{"left":0.03656915,"top":0.3567438,"width":0.040226065,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.3719074,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncProfileMetadata.php","depth":27,"bounds":{"left":0.033909574,"top":0.3735036,"width":0.05086436,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.37430167,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":22,"bounds":{"left":0.03656915,"top":0.37430167,"width":0.048204787,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.38946527,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncTeamFieldsJob.php","depth":27,"bounds":{"left":0.033909574,"top":0.39106146,"width":0.04886968,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.39185953,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":20,"bounds":{"left":0.03656915,"top":0.39185953,"width":0.046210106,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.40702313,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncTeamMetadata.php","depth":27,"bounds":{"left":0.033909574,"top":0.4086193,"width":0.048537236,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.4094174,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":19,"bounds":{"left":0.03656915,"top":0.4094174,"width":0.045877658,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.424581,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"UpdateOpportunitySpecifications.php","depth":27,"bounds":{"left":0.033909574,"top":0.42617717,"width":0.076130316,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.42697525,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":34,"bounds":{"left":0.03723404,"top":0.42697525,"width":0.0731383,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.44213888,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"UpdateStage.php","depth":27,"bounds":{"left":0.033909574,"top":0.44373503,"width":0.03523936,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.4445331,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.03723404,"top":0.4445331,"width":0.032247342,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.4612929,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"DealRisks","depth":27,"bounds":{"left":0.03125,"top":0.4612929,"width":0.019614361,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.46209097,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":8,"bounds":{"left":0.034574468,"top":0.46209097,"width":0.016289894,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.47885075,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mailbox","depth":27,"bounds":{"left":0.03125,"top":0.47885075,"width":0.015625,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.47964883,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":6,"bounds":{"left":0.03523936,"top":0.47964883,"width":0.011635638,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.4964086,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MeetingBot","depth":27,"bounds":{"left":0.03125,"top":0.4964086,"width":0.023271276,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.49720672,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":9,"bounds":{"left":0.03523936,"top":0.49720672,"width":0.019281914,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.5139665,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Middleware","depth":27,"bounds":{"left":0.03125,"top":0.5139665,"width":0.023271276,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.51476455,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":9,"bounds":{"left":0.03523936,"top":0.51476455,"width":0.019281914,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.52992815,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"HandleHubspotRateLimit.php","depth":27,"bounds":{"left":0.033909574,"top":0.53152436,"width":0.059175532,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.5323224,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":25,"bounds":{"left":0.03723404,"top":0.5323224,"width":0.05618351,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.547486,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"RateLimited.php","depth":27,"bounds":{"left":0.033909574,"top":0.5490822,"width":0.032912236,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.54988027,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.036901597,"top":0.54988027,"width":0.029920213,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.5666401,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Streaming","depth":27,"bounds":{"left":0.03125,"top":0.5666401,"width":0.020611702,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.5674381,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":8,"bounds":{"left":0.033909574,"top":0.5674381,"width":0.017952127,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.58419794,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Team","depth":27,"bounds":{"left":0.03125,"top":0.58419794,"width":0.010970744,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.584996,"width":0.0023271276,"height":0.011971269}},{"char_start":1,"char_count":3,"bounds":{"left":0.03357713,"top":0.584996,"width":0.008643617,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.6017558,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Telephony","depth":27,"bounds":{"left":0.03125,"top":0.6017558,"width":0.020611702,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.60255384,"width":0.0023271276,"height":0.011971269}},{"char_start":1,"char_count":8,"bounds":{"left":0.03357713,"top":0.60255384,"width":0.018284574,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.61931366,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"User","depth":27,"bounds":{"left":0.03125,"top":0.61931366,"width":0.00930851,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.6201117,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":3,"bounds":{"left":0.034574468,"top":0.6201117,"width":0.0063164895,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.63527536,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"BaseProcessingJob.php","depth":27,"bounds":{"left":0.03125,"top":0.6368715,"width":0.048537236,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.63766956,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":20,"bounds":{"left":0.034242023,"top":0.63766956,"width":0.045545213,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.6528332,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"DummyJob.php","depth":27,"bounds":{"left":0.03125,"top":0.6544294,"width":0.03158245,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.6552275,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":11,"bounds":{"left":0.034574468,"top":0.6552275,"width":0.02825798,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.6703911,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"ImportRecallAIRecordingsJob.php","depth":27,"bounds":{"left":0.03125,"top":0.67198724,"width":0.068484046,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.67278534,"width":0.0013297872,"height":0.011971269}},{"char_start":1,"char_count":30,"bounds":{"left":0.032579787,"top":0.67278534,"width":0.06715426,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.68794894,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"ImportRemoteTrackJob.php","depth":27,"bounds":{"left":0.03125,"top":0.6895451,"width":0.055518616,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.6903432,"width":0.0013297872,"height":0.011971269}},{"char_start":1,"char_count":23,"bounds":{"left":0.032579787,"top":0.6903432,"width":0.054521278,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.7055068,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Job.php","depth":27,"bounds":{"left":0.03125,"top":0.70710295,"width":0.016289894,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.70790106,"width":0.0023271276,"height":0.011971269}},{"char_start":1,"char_count":6,"bounds":{"left":0.03357713,"top":0.70790106,"width":0.014295213,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.72306466,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JobDispatcher.php","depth":27,"bounds":{"left":0.03125,"top":0.7246608,"width":0.037898935,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.7254589,"width":0.0023271276,"height":0.011971269}},{"char_start":1,"char_count":16,"bounds":{"left":0.03357713,"top":0.7254589,"width":0.035904255,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.7406225,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JobDispatcherInterface.php","depth":27,"bounds":{"left":0.03125,"top":0.7422187,"width":0.05618351,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.7430168,"width":0.0023271276,"height":0.011971269}},{"char_start":1,"char_count":25,"bounds":{"left":0.03357713,"top":0.7430168,"width":0.05418883,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.7581804,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"PurgeSoftDeletedOpportunityJob.php","depth":27,"bounds":{"left":0.03125,"top":0.75977653,"width":0.076130316,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.77573824,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SqsVisibilityControl.php","depth":27,"bounds":{"left":0.03125,"top":0.7773344,"width":0.047872342,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.022273935,"top":0.79489225,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Listeners","depth":27,"bounds":{"left":0.028590426,"top":0.79489225,"width":0.018284574,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.022273935,"top":0.8124501,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mail","depth":27,"bounds":{"left":0.028590426,"top":0.8124501,"width":0.00831117,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.022273935,"top":0.830008,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Models","depth":27,"bounds":{"left":0.028590426,"top":0.830008,"width":0.01462766,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.8475658,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Activity","depth":27,"bounds":{"left":0.03125,"top":0.8475658,"width":0.014960106,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.8651237,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Ai","depth":27,"bounds":{"left":0.03125,"top":0.8651237,"width":0.0039893617,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.88268155,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"AskAnything","depth":27,"bounds":{"left":0.03125,"top":0.88268155,"width":0.025265958,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.9002394,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Calendar","depth":27,"bounds":{"left":0.03125,"top":0.9002394,"width":0.017952127,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.91779727,"width":0.005319149,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Connection","depth":27,"bounds":{"left":0.03125,"top":0.91779727,"width":0.022938829,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.13088587,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Crm","depth":27,"bounds":{"left":0.03125,"top":0.13088587,"width":0.00831117,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.022273935,"top":0.11332801,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Jobs","depth":27,"bounds":{"left":0.028590426,"top":0.11332801,"width":0.009640957,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.019614361,"top":0.09577015,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"app","depth":27,"bounds":{"left":0.025930852,"top":0.09577015,"width":0.0076462766,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.10605053,"top":0.096568234,"width":0.004654255,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Outline Section","depth":21,"bounds":{"left":0.015957447,"top":0.92976856,"width":0.09940159,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.9321628,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"OUTLINE","depth":22,"bounds":{"left":0.022606382,"top":0.92976856,"width":0.01662234,"height":0.017557861},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"OUTLINE","depth":23,"bounds":{"left":0.022606382,"top":0.933759,"width":0.01662234,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Timeline Section","depth":21,"bounds":{"left":0.015957447,"top":0.9473264,"width":0.09940159,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.9497207,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"TIMELINE","depth":22,"bounds":{"left":0.022606382,"top":0.9473264,"width":0.01761968,"height":0.017557861},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"TIMELINE","depth":23,"bounds":{"left":0.022606382,"top":0.95131683,"width":0.01761968,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"MySQL Section","depth":21,"bounds":{"left":0.015957447,"top":0.9648843,"width":0.09940159,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.96727854,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"MYSQL","depth":22,"bounds":{"left":0.022606382,"top":0.9648843,"width":0.013297873,"height":0.017557861},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"MYSQL","depth":23,"bounds":{"left":0.022606382,"top":0.9688747,"width":0.013297873,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"MatchActivityCrmData.php, Editor Group 1","depth":28,"bounds":{"left":0.11569149,"top":0.047885075,"width":0.07480053,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"RateLimitException.php, Editor Group 1","depth":28,"bounds":{"left":0.19015957,"top":0.047885075,"width":0.06815159,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"HandleHubspotRateLimit.php, Editor Group 1","depth":28,"bounds":{"left":0.25797874,"top":0.047885075,"width":0.080119684,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXRadioButton","text":"Client.php, Editor Group 1","depth":28,"bounds":{"left":0.33776596,"top":0.047885075,"width":0.045545213,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"HubspotPaginationService.php, Editor Group 1","depth":28,"bounds":{"left":0.38297874,"top":0.047885075,"width":0.08277926,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.12832446,"top":0.07821229,"width":0.0056515955,"height":0.012769354},"on_screen":true,"role_description":"text"}]...
|
-5716082277667273277
|
-8477724012632436945
|
idle
|
accessibility
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 12 pending changes
12
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php
SaveTranscription.php
SetupLayout.php
SyncActivity.php
SyncFieldMetadata.php
SyncHubspotObjects.php
SyncLeads.php
SyncObjects.php
SyncOpportunitiesJob.php
SyncOpportunity.php
SyncProfileMetadata.php
SyncTeamFieldsJob.php
SyncTeamMetadata.php
UpdateOpportunitySpecifications.php
UpdateStage.php
DealRisks
Mailbox
MeetingBot
Middleware
HandleHubspotRateLimit.php
RateLimited.php
Streaming
Team
Telephony
User
BaseProcessingJob.php
DummyJob.php
ImportRecallAIRecordingsJob.php
ImportRemoteTrackJob.php
Job.php
JobDispatcher.php
JobDispatcherInterface.php
PurgeSoftDeletedOpportunityJob.php
SqsVisibilityControl.php
Listeners
Mail
Models
Activity
Ai
AskAnything
Calendar
Connection
Crm
Jobs
app
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
MySQL Section
MYSQL
MYSQL
MatchActivityCrmData.php, Editor Group 1
RateLimitException.php, Editor Group 1
HandleHubspotRateLimit.php, Editor Group 1
Client.php, Editor Group 1
HubspotPaginationService.php, Editor Group 1
...
|
19531
|
NULL
|
NULL
|
NULL
|
|
19535
|
835
|
11
|
2026-05-11T13:01:01.990092+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778504461990_m2.jpg...
|
Code
|
Review rate limit handli… — app
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 12 pending changes
12
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php
SaveTranscription.php
SetupLayout.php
SyncActivity.php
SyncFieldMetadata.php
SyncHubspotObjects.php
SyncLeads.php
SyncObjects.php
SyncOpportunitiesJob.php
SyncOpportunity.php
SyncProfileMetadata.php
SyncTeamFieldsJob.php
SyncTeamMetadata.php
UpdateOpportunitySpecifications.php
UpdateStage.php
DealRisks
Mailbox
MeetingBot
Middleware
HandleHubspotRateLimit.php
RateLimited.php
Streaming
Team
Telephony
User
BaseProcessingJob.php
DummyJob.php
ImportRecallAIRecordingsJob.php
ImportRemoteTrackJob.php
Job.php
JobDispatcher.php
JobDispatcherInterface.php
PurgeSoftDeletedOpportunityJob.php
SqsVisibilityControl.php
Listeners
Mail
Models
Activity
Ai
AskAnything
Calendar
Connection
Crm
Jobs
app
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
MySQL Section
MYSQL
MYSQL
MatchActivityCrmData.php, Editor Group 1
RateLimitException.php, Editor Group 1
HandleHubspotRateLimit.php, Editor Group 1
Client.php, Editor Group 1
HubspotPaginationService.php, Editor Group 1
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Middleware;
use Illuminate\Support\Facades\Log;
use Jiminny\Exceptions\RateLimitException;
/**
* Job middleware that catches RateLimitException from HubSpot API calls
* and releases the job back to the queue with the appropriate delay.
*/
class HandleHubspotRateLimit
{
private const int MAX_RETRY_DELAY = 600;
private const int MIN_RETRY_DELAY = 1;
private const int JITTER_SECONDS = 5;
public function handle(object $job, callable $next): void
{
try {
$next($job);
} catch (RateLimitException $e) {
$delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));
// Add jitter to prevent thundering herd problem by randomizing retry times
$delay += random_int(0, self::JITTER_SECONDS);
$attempts = $job->attempts();
if ($attempts <= 3 || $attempts % 10 === 0) {
Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [
'job_class' => $job::class,
'attempts' => $attempts,
'retry_after' => $e->getRetryAfter(),
'delay' => $delay,
]);
}
$job->release($delay);
}
}
}
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Middleware;
use Illuminate\Support\Facades\Log;
use Jiminny\Exceptions\RateLimitException;
/**
* Job middleware that catches RateLimitException from HubSpot API calls
* and releases the job back to the queue with the appropriate delay.
*/
class HandleHubspotRateLimit
{
private const int MAX_RETRY_DELAY = 600;
private const int MIN_RETRY_DELAY = 1;
private const int JITTER_SECONDS = 5;
public function handle(object $job, callable $next): void
{
try {
$next($job);
} catch (RateLimitException $e) {
$delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));
// Add jitter to prevent thundering herd problem by randomizing retry times
$delay += random_int(0, self::JITTER_SECONDS);
$attempts = $job->attempts();
if ($attempts <= 3 || $attempts % 10 === 0) {
Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [
'job_class' => $job::class,
'attempts' => $attempts,
'retry_after' => $e->getRetryAfter(),
'delay' => $delay,
]);
}
$job->release($delay);
}
}
}
Review rate limit handli…, Editor Group 2
remote
app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...
JY-20725-handle-HS-search-rate-limit*
app (Git) - Synchronize Changes
Errors: 6, Warnings: 9, Infos: 2
6
9
2
Notifications
key, PHP extension: Premium features not active.
Sign In
Sign In
Diff editor
Clear
Review rate limit handling for HubSpot job queue
Session history
New session
Message actions
RateLimitException.php#9-9
RateLimitException.php#9-9
Reveiw the diff. Mostly
@app/Jobs/Crm/MatchActivityCrmData.php
,
@app/Exceptions/RateLimitException.php
,
@app/Jobs/Middleware/HandleHubspotRateLimit.php
,
@app/Services/Crm/Hubspot/Client.php
and
@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php
. The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?
Thought for 5s
Thought for 5s
I'll review the implementation carefully. Let me first check how
RateLimitException
is used elsewhere and look at the test files and
PaginationState
.
Bash
Find all usages of RateLimitException outside the changed files
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/app --include="*.php" | grep -v "HandleHubspotRateLimit\|MatchActivityCrmData\|Client.php\|RateLimitException.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:17:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:68: RateLimitException |
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:15:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:58: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:19:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:76: RateLimitException |
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:50: * @throws RateLimitException When rate limit is hit
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:195: // RateLimitException and other exceptions are re-thrown as-is
Read
PaginationState.php
PaginationState.php
Read
HandleHubspotRateLimitTest.php
HandleHubspotRateLimitTest.php
Bash
Check how RateLimitException is used in GenerateActionItemsJob
IN
grep -rn "RateLimitException\|LogicException\|RuntimeException" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -20
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
Bash
Find all catch blocks or instanceof checks for RateLimitException
IN
grep -rn "catch.*RateLimitException\|instanceof RateLimitException" /Users/lukas/jiminny/app/app --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:11: * Job middleware that catches RateLimitException from HubSpot API calls
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:24: } catch (RateLimitException $e) {
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:149: if (! $e instanceof RateLimitException) {
Bash
Find all test references to RateLimitException
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/tests --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:13:#[CoversClass(RateLimitException::class)]
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:14:class RateLimitExceptionTest extends TestCase
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:18: $exception = new RateLimitException();
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:28: $exception = new RateLimitException('Hubspot rate limit', 30, $previous);
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:52: $exception = new RateLimitException('test', $input);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:10:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:49: public function testPropagatesNonRateLimitExceptions(): void
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:103: throw new RateLimitException('rate limited', $retryAfter);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:150: throw new RateLimitException('rate limited', 1);
Bash
Check retry/failure handling in GenerateActionItemsJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -30
Copy code to clipboard
OUT
13:use Jiminny\Exceptions\RateLimitException;
51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
56: $this->release(30);
Bash
Check retry/failure handling in GenerateAiCallScoringJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php | head -30
Copy code to clipboard
OUT
17:use Jiminny\Exceptions\RateLimitException;
68: RateLimitException |
75: $this->release(30);
Bash
Check retry config in MatchActivityCrmData
IN
grep -n "retryAfter\|RETRY_WINDOW\|retryUntil\|maxTries" /Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php
Copy code to clipboard
OUT
34: private const int RETRY_WINDOW_MINUTES = 30;
45: public function retryUntil(): \DateTimeInterface
47: return now()->addMinutes(self::RETRY_WINDOW_MINUTES);
77: return self::RETRY_WINDOW_MINUTES * 60 + 60;
Bash
Check the cache key format
IN
grep -n "getRateLimitCacheKey\|hubspot:ratelimit" /Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Client.php
Copy code to clipboard
OUT
78: $cacheKey = $this->getRateLimitCacheKey();
110: private function getRateLimitCacheKey(): string
112: return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());
Bash
Find other jobs that might use the rate limit middleware
IN
grep -rn "class.*Middleware\|HandleHubspotRateLimit" /Users/lukas/jiminny/app/app/Jobs --include="*.php" | grep -v "HandleHubspotRateLimit.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:18:use Jiminny\Jobs\Middleware\HandleHubspotRateLimit;
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:42: return [new HandleHubspotRateLimit()];
Read
HubspotClientInterface.php
HubspotClientInterface.php
Thought for 73s
Thought for 73s
Now I have a complete picture. Here's my full analysis:
Review Summary
Review Summary
RuntimeException vs LogicException — Safe ✓...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Explorer (⇧⌘E)","depth":19,"bounds":{"left":0.0,"top":0.047885075,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":true},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.057462092,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Search (⇧⌘F)","depth":19,"bounds":{"left":0.0,"top":0.08619314,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.09577015,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Source Control (⌃⇧G) - 12 pending changes","depth":19,"bounds":{"left":0.0,"top":0.1245012,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.13407822,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"12","depth":22,"bounds":{"left":0.00831117,"top":0.1452514,"width":0.003656915,"height":0.008778931},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.008643617,"top":0.14604948,"width":0.0016622341,"height":0.007980846}},{"char_start":1,"char_count":1,"bounds":{"left":0.009973404,"top":0.14604948,"width":0.0023271276,"height":0.007980846}}],"role_description":"text"},{"role":"AXRadioButton","text":"Run and Debug (⇧⌘D)","depth":19,"bounds":{"left":0.0,"top":0.16280925,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.17238627,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Remote Explorer","depth":19,"bounds":{"left":0.0,"top":0.20111732,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.21069433,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Extensions (⇧⌘X) - 2 require update","depth":19,"bounds":{"left":0.0,"top":0.23942538,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.2490024,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":22,"bounds":{"left":0.009640957,"top":0.2601756,"width":0.0019946808,"height":0.008778931},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Testing","depth":19,"bounds":{"left":0.0,"top":0.27773345,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.28731045,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Claude Code","depth":19,"bounds":{"left":0.0,"top":0.3160415,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"EXPLORER","depth":17,"bounds":{"left":0.022606382,"top":0.047885075,"width":0.018949468,"height":0.02793296},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"EXPLORER","depth":18,"bounds":{"left":0.022606382,"top":0.056664005,"width":0.018949468,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.022606382,"top":0.056664005,"width":0.0023271276,"height":0.0103751}},{"char_start":1,"char_count":7,"bounds":{"left":0.024933511,"top":0.056664005,"width":0.01662234,"height":0.0103751}}],"role_description":"text"},{"role":"AXButton","text":"Explorer Section: app","depth":21,"bounds":{"left":0.015957447,"top":0.07581804,"width":0.09940159,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.07821229,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"Explorer Section: app","depth":22,"bounds":{"left":0.022606382,"top":0.07581804,"width":0.0076462766,"height":0.017557861},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"APP","depth":23,"bounds":{"left":0.022606382,"top":0.079010375,"width":0.0076462766,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.0933759,"width":0.0063164895,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CheckAndRetryRemoteMatch.php","depth":27,"bounds":{"left":0.033909574,"top":0.0933759,"width":0.068484046,"height":0.011173184},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.0933759,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":27,"bounds":{"left":0.036901597,"top":0.0933759,"width":0.06549202,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.10853951,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateFollowupActivity.php","depth":27,"bounds":{"left":0.033909574,"top":0.110135674,"width":0.054853722,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.11093376,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":25,"bounds":{"left":0.036901597,"top":0.11093376,"width":0.051861703,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.12609737,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateNotes.php","depth":27,"bounds":{"left":0.033909574,"top":0.12769353,"width":0.034242023,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.12849163,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.036901597,"top":0.12849163,"width":0.03125,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.14365523,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivitiesToNewOpportunity.php","depth":27,"bounds":{"left":0.033909574,"top":0.1452514,"width":0.07712766,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.14604948,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":34,"bounds":{"left":0.037898935,"top":0.14604948,"width":0.07347074,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.16121309,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivityCrmData.php","depth":27,"bounds":{"left":0.033909574,"top":0.16280925,"width":0.054521278,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.16360734,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":23,"bounds":{"left":0.037898935,"top":0.16360734,"width":0.050531916,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.17877094,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"NoteObject.php","depth":27,"bounds":{"left":0.033909574,"top":0.18036711,"width":0.031914894,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.1811652,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":13,"bounds":{"left":0.03723404,"top":0.1811652,"width":0.028922873,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.1963288,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SaveActivity.php","depth":27,"bounds":{"left":0.033909574,"top":0.19792499,"width":0.03324468,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.19872306,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":15,"bounds":{"left":0.03656915,"top":0.19872306,"width":0.030585106,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.21388668,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SaveTranscription.php","depth":27,"bounds":{"left":0.033909574,"top":0.21548285,"width":0.04454787,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.21628092,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":20,"bounds":{"left":0.03656915,"top":0.21628092,"width":0.042220745,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.23144454,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SetupLayout.php","depth":27,"bounds":{"left":0.033909574,"top":0.2330407,"width":0.034242023,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.23383878,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.03656915,"top":0.23383878,"width":0.031914894,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.2490024,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncActivity.php","depth":27,"bounds":{"left":0.033909574,"top":0.25059855,"width":0.03357713,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.25139666,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":15,"bounds":{"left":0.03656915,"top":0.25139666,"width":0.030917553,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.26656026,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncFieldMetadata.php","depth":27,"bounds":{"left":0.033909574,"top":0.26815644,"width":0.047539894,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.26895452,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":20,"bounds":{"left":0.03656915,"top":0.26895452,"width":0.04488032,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.28411812,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncHubspotObjects.php","depth":27,"bounds":{"left":0.033909574,"top":0.2857143,"width":0.051861703,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.28651237,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":21,"bounds":{"left":0.03656915,"top":0.28651237,"width":0.04920213,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.30167598,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncLeads.php","depth":27,"bounds":{"left":0.033909574,"top":0.30327216,"width":0.030917553,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.30407023,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":12,"bounds":{"left":0.03656915,"top":0.30407023,"width":0.02825798,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.31923383,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncObjects.php","depth":27,"bounds":{"left":0.033909574,"top":0.32083002,"width":0.034574468,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.3216281,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.03656915,"top":0.3216281,"width":0.031914894,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.3367917,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncOpportunitiesJob.php","depth":27,"bounds":{"left":0.033909574,"top":0.33838788,"width":0.053856384,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.33918595,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":23,"bounds":{"left":0.03656915,"top":0.33918595,"width":0.05119681,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.35434955,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncOpportunity.php","depth":27,"bounds":{"left":0.033909574,"top":0.35594574,"width":0.04288564,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.3567438,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":18,"bounds":{"left":0.03656915,"top":0.3567438,"width":0.040226065,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.3719074,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncProfileMetadata.php","depth":27,"bounds":{"left":0.033909574,"top":0.3735036,"width":0.05086436,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.37430167,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":22,"bounds":{"left":0.03656915,"top":0.37430167,"width":0.048204787,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.38946527,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncTeamFieldsJob.php","depth":27,"bounds":{"left":0.033909574,"top":0.39106146,"width":0.04886968,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.39185953,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":20,"bounds":{"left":0.03656915,"top":0.39185953,"width":0.046210106,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.40702313,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncTeamMetadata.php","depth":27,"bounds":{"left":0.033909574,"top":0.4086193,"width":0.048537236,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.4094174,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":19,"bounds":{"left":0.03656915,"top":0.4094174,"width":0.045877658,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.424581,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"UpdateOpportunitySpecifications.php","depth":27,"bounds":{"left":0.033909574,"top":0.42617717,"width":0.076130316,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.42697525,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":34,"bounds":{"left":0.03723404,"top":0.42697525,"width":0.0731383,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.44213888,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"UpdateStage.php","depth":27,"bounds":{"left":0.033909574,"top":0.44373503,"width":0.03523936,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.4445331,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.03723404,"top":0.4445331,"width":0.032247342,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.4612929,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"DealRisks","depth":27,"bounds":{"left":0.03125,"top":0.4612929,"width":0.019614361,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.46209097,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":8,"bounds":{"left":0.034574468,"top":0.46209097,"width":0.016289894,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.47885075,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mailbox","depth":27,"bounds":{"left":0.03125,"top":0.47885075,"width":0.015625,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.47964883,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":6,"bounds":{"left":0.03523936,"top":0.47964883,"width":0.011635638,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.4964086,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MeetingBot","depth":27,"bounds":{"left":0.03125,"top":0.4964086,"width":0.023271276,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.49720672,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":9,"bounds":{"left":0.03523936,"top":0.49720672,"width":0.019281914,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.5139665,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Middleware","depth":27,"bounds":{"left":0.03125,"top":0.5139665,"width":0.023271276,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.51476455,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":9,"bounds":{"left":0.03523936,"top":0.51476455,"width":0.019281914,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.52992815,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"HandleHubspotRateLimit.php","depth":27,"bounds":{"left":0.033909574,"top":0.53152436,"width":0.059175532,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.5323224,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":25,"bounds":{"left":0.03723404,"top":0.5323224,"width":0.05618351,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.547486,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"RateLimited.php","depth":27,"bounds":{"left":0.033909574,"top":0.5490822,"width":0.032912236,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.54988027,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.036901597,"top":0.54988027,"width":0.029920213,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.5666401,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Streaming","depth":27,"bounds":{"left":0.03125,"top":0.5666401,"width":0.020611702,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.5674381,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":8,"bounds":{"left":0.033909574,"top":0.5674381,"width":0.017952127,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.58419794,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Team","depth":27,"bounds":{"left":0.03125,"top":0.58419794,"width":0.010970744,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.584996,"width":0.0023271276,"height":0.011971269}},{"char_start":1,"char_count":3,"bounds":{"left":0.03357713,"top":0.584996,"width":0.008643617,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.6017558,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Telephony","depth":27,"bounds":{"left":0.03125,"top":0.6017558,"width":0.020611702,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.60255384,"width":0.0023271276,"height":0.011971269}},{"char_start":1,"char_count":8,"bounds":{"left":0.03357713,"top":0.60255384,"width":0.018284574,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.61931366,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"User","depth":27,"bounds":{"left":0.03125,"top":0.61931366,"width":0.00930851,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.6201117,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":3,"bounds":{"left":0.034574468,"top":0.6201117,"width":0.0063164895,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.63527536,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"BaseProcessingJob.php","depth":27,"bounds":{"left":0.03125,"top":0.6368715,"width":0.048537236,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.63766956,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":20,"bounds":{"left":0.034242023,"top":0.63766956,"width":0.045545213,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.6528332,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"DummyJob.php","depth":27,"bounds":{"left":0.03125,"top":0.6544294,"width":0.03158245,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.6552275,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":11,"bounds":{"left":0.034574468,"top":0.6552275,"width":0.02825798,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.6703911,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"ImportRecallAIRecordingsJob.php","depth":27,"bounds":{"left":0.03125,"top":0.67198724,"width":0.068484046,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.67278534,"width":0.0013297872,"height":0.011971269}},{"char_start":1,"char_count":30,"bounds":{"left":0.032579787,"top":0.67278534,"width":0.06715426,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.68794894,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"ImportRemoteTrackJob.php","depth":27,"bounds":{"left":0.03125,"top":0.6895451,"width":0.055518616,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.6903432,"width":0.0013297872,"height":0.011971269}},{"char_start":1,"char_count":23,"bounds":{"left":0.032579787,"top":0.6903432,"width":0.054521278,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.7055068,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Job.php","depth":27,"bounds":{"left":0.03125,"top":0.70710295,"width":0.016289894,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.70790106,"width":0.0023271276,"height":0.011971269}},{"char_start":1,"char_count":6,"bounds":{"left":0.03357713,"top":0.70790106,"width":0.014295213,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.72306466,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JobDispatcher.php","depth":27,"bounds":{"left":0.03125,"top":0.7246608,"width":0.037898935,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.7254589,"width":0.0023271276,"height":0.011971269}},{"char_start":1,"char_count":16,"bounds":{"left":0.03357713,"top":0.7254589,"width":0.035904255,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.7406225,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JobDispatcherInterface.php","depth":27,"bounds":{"left":0.03125,"top":0.7422187,"width":0.05618351,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.7430168,"width":0.0023271276,"height":0.011971269}},{"char_start":1,"char_count":25,"bounds":{"left":0.03357713,"top":0.7430168,"width":0.05418883,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.7581804,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"PurgeSoftDeletedOpportunityJob.php","depth":27,"bounds":{"left":0.03125,"top":0.75977653,"width":0.076130316,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.77573824,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SqsVisibilityControl.php","depth":27,"bounds":{"left":0.03125,"top":0.7773344,"width":0.047872342,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.022273935,"top":0.79489225,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Listeners","depth":27,"bounds":{"left":0.028590426,"top":0.79489225,"width":0.018284574,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.022273935,"top":0.8124501,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mail","depth":27,"bounds":{"left":0.028590426,"top":0.8124501,"width":0.00831117,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.022273935,"top":0.830008,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Models","depth":27,"bounds":{"left":0.028590426,"top":0.830008,"width":0.01462766,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.8475658,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Activity","depth":27,"bounds":{"left":0.03125,"top":0.8475658,"width":0.014960106,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.8651237,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Ai","depth":27,"bounds":{"left":0.03125,"top":0.8651237,"width":0.0039893617,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.88268155,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"AskAnything","depth":27,"bounds":{"left":0.03125,"top":0.88268155,"width":0.025265958,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.9002394,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Calendar","depth":27,"bounds":{"left":0.03125,"top":0.9002394,"width":0.017952127,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.91779727,"width":0.005319149,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Connection","depth":27,"bounds":{"left":0.03125,"top":0.91779727,"width":0.022938829,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.13088587,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Crm","depth":27,"bounds":{"left":0.03125,"top":0.13088587,"width":0.00831117,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.022273935,"top":0.11332801,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Jobs","depth":27,"bounds":{"left":0.028590426,"top":0.11332801,"width":0.009640957,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.019614361,"top":0.09577015,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"app","depth":27,"bounds":{"left":0.025930852,"top":0.09577015,"width":0.0076462766,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.10605053,"top":0.096568234,"width":0.004654255,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Outline Section","depth":21,"bounds":{"left":0.015957447,"top":0.92976856,"width":0.09940159,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.9321628,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"OUTLINE","depth":22,"bounds":{"left":0.022606382,"top":0.92976856,"width":0.01662234,"height":0.017557861},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"OUTLINE","depth":23,"bounds":{"left":0.022606382,"top":0.933759,"width":0.01662234,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Timeline Section","depth":21,"bounds":{"left":0.015957447,"top":0.9473264,"width":0.09940159,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.9497207,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"TIMELINE","depth":22,"bounds":{"left":0.022606382,"top":0.9473264,"width":0.01761968,"height":0.017557861},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"TIMELINE","depth":23,"bounds":{"left":0.022606382,"top":0.95131683,"width":0.01761968,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"MySQL Section","depth":21,"bounds":{"left":0.015957447,"top":0.9648843,"width":0.09940159,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.96727854,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"MYSQL","depth":22,"bounds":{"left":0.022606382,"top":0.9648843,"width":0.013297873,"height":0.017557861},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"MYSQL","depth":23,"bounds":{"left":0.022606382,"top":0.9688747,"width":0.013297873,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"MatchActivityCrmData.php, Editor Group 1","depth":28,"bounds":{"left":0.11569149,"top":0.047885075,"width":0.07480053,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"RateLimitException.php, Editor Group 1","depth":28,"bounds":{"left":0.19015957,"top":0.047885075,"width":0.06815159,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"HandleHubspotRateLimit.php, Editor Group 1","depth":28,"bounds":{"left":0.25797874,"top":0.047885075,"width":0.080119684,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXRadioButton","text":"Client.php, Editor Group 1","depth":28,"bounds":{"left":0.33776596,"top":0.047885075,"width":0.045545213,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"HubspotPaginationService.php, Editor Group 1","depth":28,"bounds":{"left":0.38297874,"top":0.047885075,"width":0.08277926,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.12832446,"top":0.07821229,"width":0.0056515955,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.14328457,"top":0.07821229,"width":0.0056515955,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.171875,"top":0.07821229,"width":0.0056515955,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.24401596,"top":0.07821229,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.24933511,"top":0.07821229,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Middleware;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Exceptions\\RateLimitException;\n\n/**\n * Job middleware that catches RateLimitException from HubSpot API calls\n * and releases the job back to the queue with the appropriate delay.\n */\nclass HandleHubspotRateLimit\n{\n private const int MAX_RETRY_DELAY = 600;\n private const int MIN_RETRY_DELAY = 1;\n private const int JITTER_SECONDS = 5;\n\n public function handle(object $job, callable $next): void\n {\n try {\n $next($job);\n } catch (RateLimitException $e) {\n $delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));\n // Add jitter to prevent thundering herd problem by randomizing retry times\n $delay += random_int(0, self::JITTER_SECONDS);\n\n $attempts = $job->attempts();\n if ($attempts <= 3 || $attempts % 10 === 0) {\n Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [\n 'job_class' => $job::class,\n 'attempts' => $attempts,\n 'retry_after' => $e->getRetryAfter(),\n 'delay' => $delay,\n ]);\n }\n\n $job->release($delay);\n }\n }\n}","depth":28,"bounds":{"left":0.13763298,"top":0.27613726,"width":0.23803191,"height":0.014365523},"on_screen":true,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Middleware;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Exceptions\\RateLimitException;\n\n/**\n * Job middleware that catches RateLimitException from HubSpot API calls\n * and releases the job back to the queue with the appropriate delay.\n */\nclass HandleHubspotRateLimit\n{\n private const int MAX_RETRY_DELAY = 600;\n private const int MIN_RETRY_DELAY = 1;\n private const int JITTER_SECONDS = 5;\n\n public function handle(object $job, callable $next): void\n {\n try {\n $next($job);\n } catch (RateLimitException $e) {\n $delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));\n // Add jitter to prevent thundering herd problem by randomizing retry times\n $delay += random_int(0, self::JITTER_SECONDS);\n\n $attempts = $job->attempts();\n if ($attempts <= 3 || $attempts % 10 === 0) {\n Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [\n 'job_class' => $job::class,\n 'attempts' => $attempts,\n 'retry_after' => $e->getRetryAfter(),\n 'delay' => $delay,\n ]);\n }\n\n $job->release($delay);\n }\n }\n}","role_description":"editor","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Middleware;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Exceptions\\RateLimitException;\n\n/**\n * Job middleware that catches RateLimitException from HubSpot API calls\n * and releases the job back to the queue with the appropriate delay.\n */\nclass HandleHubspotRateLimit\n{\n private const int MAX_RETRY_DELAY = 600;\n private const int MIN_RETRY_DELAY = 1;\n private const int JITTER_SECONDS = 5;\n\n public function handle(object $job, callable $next): void\n {\n try {\n $next($job);\n } catch (RateLimitException $e) {\n $delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));\n // Add jitter to prevent thundering herd problem by randomizing retry times\n $delay += random_int(0, self::JITTER_SECONDS);\n\n $attempts = $job->attempts();\n if ($attempts <= 3 || $attempts % 10 === 0) {\n Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [\n 'job_class' => $job::class,\n 'attempts' => $attempts,\n 'retry_after' => $e->getRetryAfter(),\n 'delay' => $delay,\n ]);\n }\n\n $job->release($delay);\n }\n }\n}","depth":29,"bounds":{"left":0.13763298,"top":0.27613726,"width":0.23803191,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Review rate limit handli…, Editor Group 2","depth":28,"bounds":{"left":0.5578458,"top":0.047885075,"width":0.07014628,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXButton","text":"remote","depth":16,"bounds":{"left":0.0006648936,"top":0.98244214,"width":0.010638298,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...","depth":16,"bounds":{"left":0.012965426,"top":0.98244214,"width":0.084773935,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.013962766,"top":0.9848364,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JY-20725-handle-HS-search-rate-limit*","depth":17,"bounds":{"left":0.019281914,"top":0.9856345,"width":0.0774601,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"app (Git) - Synchronize Changes","depth":16,"bounds":{"left":0.09740692,"top":0.98244214,"width":0.0076462766,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Errors: 6, Warnings: 9, Infos: 2","depth":16,"bounds":{"left":0.107380316,"top":0.98244214,"width":0.032579787,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.109042555,"top":0.9848364,"width":0.0056515955,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"6","depth":17,"bounds":{"left":0.1143617,"top":0.9856345,"width":0.004986702,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.11934841,"top":0.9848364,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"9","depth":17,"bounds":{"left":0.124667555,"top":0.9856345,"width":0.004654255,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.12932181,"top":0.9848364,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":17,"bounds":{"left":0.13464096,"top":0.9856345,"width":0.003656915,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Notifications","depth":16,"bounds":{"left":0.9886968,"top":0.98244214,"width":0.010638298,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"key, PHP extension: Premium features not active.","depth":16,"bounds":{"left":0.9790558,"top":0.98244214,"width":0.008643617,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sign In","depth":16,"bounds":{"left":0.9544548,"top":0.98244214,"width":0.022606382,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.95611703,"top":0.9848364,"width":0.0056515955,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Sign In","depth":17,"bounds":{"left":0.96143615,"top":0.9856345,"width":0.013962766,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Diff editor","depth":12,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Clear","depth":12,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Review rate limit handling for HubSpot job queue","depth":19,"bounds":{"left":0.56017286,"top":0.08060654,"width":0.099734046,"height":0.022346368},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Session history","depth":19,"bounds":{"left":0.9780585,"top":0.08060654,"width":0.00930851,"height":0.022346368},"on_screen":true,"help_text":"Session history","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New session","depth":19,"bounds":{"left":0.9886968,"top":0.08060654,"width":0.00930851,"height":0.022346368},"on_screen":true,"help_text":"New session","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Message actions","depth":24,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"RateLimitException.php#9-9","depth":23,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"RateLimitException.php#9-9","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Reveiw the diff. Mostly","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Jobs/Crm/MatchActivityCrmData.php","depth":26,"on_screen":false,"help_text":"Open app/Jobs/Crm/MatchActivityCrmData.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Exceptions/RateLimitException.php","depth":26,"on_screen":false,"help_text":"Open app/Exceptions/RateLimitException.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Jobs/Middleware/HandleHubspotRateLimit.php","depth":26,"on_screen":false,"help_text":"Open app/Jobs/Middleware/HandleHubspotRateLimit.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Services/Crm/Hubspot/Client.php","depth":26,"on_screen":false,"help_text":"Open app/Services/Crm/Hubspot/Client.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"and","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php","depth":26,"on_screen":false,"help_text":"Open app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":". The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Thought for 5s","depth":23,"on_screen":false,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thought for 5s","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"I'll review the implementation carefully. Let me first check how","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is used elsewhere and look at the test files and","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"PaginationState","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":".","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find all usages of RateLimitException outside the changed files","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"RateLimitException\" /Users/lukas/jiminny/app/app --include=\"*.php\" | grep -v \"HandleHubspotRateLimit\\|MatchActivityCrmData\\|Client.php\\|RateLimitException.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception\n/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:17:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:68: RateLimitException |\n/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:15:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:58: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception\n/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:19:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:76: RateLimitException |\n/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:8:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:50: * @throws RateLimitException When rate limit is hit\n/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:195: // RateLimitException and other exceptions are re-thrown as-is","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"PaginationState.php","depth":24,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"PaginationState.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"HandleHubspotRateLimitTest.php","depth":24,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"HandleHubspotRateLimitTest.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check how RateLimitException is used in GenerateActionItemsJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"RateLimitException\\|LogicException\\|RuntimeException\" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -20","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find all catch blocks or instanceof checks for RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"catch.*RateLimitException\\|instanceof RateLimitException\" /Users/lukas/jiminny/app/app --include=\"*.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:11: * Job middleware that catches RateLimitException from HubSpot API calls\n/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:24: } catch (RateLimitException $e) {\n/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:149: if (! $e instanceof RateLimitException) {","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find all test references to RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"RateLimitException\" /Users/lukas/jiminny/app/tests --include=\"*.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:8:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:13:#[CoversClass(RateLimitException::class)]\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:14:class RateLimitExceptionTest extends TestCase\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:18: $exception = new RateLimitException();\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:28: $exception = new RateLimitException('Hubspot rate limit', 30, $previous);\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:52: $exception = new RateLimitException('test', $input);\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:10:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:49: public function testPropagatesNonRateLimitExceptions(): void\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:103: throw new RateLimitException('rate limited', $retryAfter);\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:150: throw new RateLimitException('rate limited', 1);","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check retry/failure handling in GenerateActionItemsJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"RateLimitException\\|retryUntil\\|backoff\\|maxExceptions\\|maxTries\\|release\\|failed\" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -30","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"13:use Jiminny\\Exceptions\\RateLimitException;\n51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception\n56: $this->release(30);","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check retry/failure handling in GenerateAiCallScoringJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"RateLimitException\\|retryUntil\\|backoff\\|maxExceptions\\|maxTries\\|release\\|failed\" /Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php | head -30","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"17:use Jiminny\\Exceptions\\RateLimitException;\n68: RateLimitException |\n75: $this->release(30);","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check retry config in MatchActivityCrmData","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"retryAfter\\|RETRY_WINDOW\\|retryUntil\\|maxTries\" /Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"34: private const int RETRY_WINDOW_MINUTES = 30;\n45: public function retryUntil(): \\DateTimeInterface\n47: return now()->addMinutes(self::RETRY_WINDOW_MINUTES);\n77: return self::RETRY_WINDOW_MINUTES * 60 + 60;","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check the cache key format","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"getRateLimitCacheKey\\|hubspot:ratelimit\" /Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Client.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"78: $cacheKey = $this->getRateLimitCacheKey();\n110: private function getRateLimitCacheKey(): string\n112: return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find other jobs that might use the rate limit middleware","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"class.*Middleware\\|HandleHubspotRateLimit\" /Users/lukas/jiminny/app/app/Jobs --include=\"*.php\" | grep -v \"HandleHubspotRateLimit.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:18:use Jiminny\\Jobs\\Middleware\\HandleHubspotRateLimit;\n/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:42: return [new HandleHubspotRateLimit()];","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"HubspotClientInterface.php","depth":24,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"HubspotClientInterface.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Thought for 73s","depth":23,"on_screen":false,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thought for 73s","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Now I have a complete picture. Here's my full analysis:","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"Review Summary","depth":22,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"Review Summary","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"RuntimeException vs LogicException — Safe ✓","depth":22,"on_screen":false,"role_description":"heading"}]...
|
1673583348330122228
|
-7290746921426832189
|
visual_change
|
accessibility
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 12 pending changes
12
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php
SaveTranscription.php
SetupLayout.php
SyncActivity.php
SyncFieldMetadata.php
SyncHubspotObjects.php
SyncLeads.php
SyncObjects.php
SyncOpportunitiesJob.php
SyncOpportunity.php
SyncProfileMetadata.php
SyncTeamFieldsJob.php
SyncTeamMetadata.php
UpdateOpportunitySpecifications.php
UpdateStage.php
DealRisks
Mailbox
MeetingBot
Middleware
HandleHubspotRateLimit.php
RateLimited.php
Streaming
Team
Telephony
User
BaseProcessingJob.php
DummyJob.php
ImportRecallAIRecordingsJob.php
ImportRemoteTrackJob.php
Job.php
JobDispatcher.php
JobDispatcherInterface.php
PurgeSoftDeletedOpportunityJob.php
SqsVisibilityControl.php
Listeners
Mail
Models
Activity
Ai
AskAnything
Calendar
Connection
Crm
Jobs
app
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
MySQL Section
MYSQL
MYSQL
MatchActivityCrmData.php, Editor Group 1
RateLimitException.php, Editor Group 1
HandleHubspotRateLimit.php, Editor Group 1
Client.php, Editor Group 1
HubspotPaginationService.php, Editor Group 1
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Middleware;
use Illuminate\Support\Facades\Log;
use Jiminny\Exceptions\RateLimitException;
/**
* Job middleware that catches RateLimitException from HubSpot API calls
* and releases the job back to the queue with the appropriate delay.
*/
class HandleHubspotRateLimit
{
private const int MAX_RETRY_DELAY = 600;
private const int MIN_RETRY_DELAY = 1;
private const int JITTER_SECONDS = 5;
public function handle(object $job, callable $next): void
{
try {
$next($job);
} catch (RateLimitException $e) {
$delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));
// Add jitter to prevent thundering herd problem by randomizing retry times
$delay += random_int(0, self::JITTER_SECONDS);
$attempts = $job->attempts();
if ($attempts <= 3 || $attempts % 10 === 0) {
Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [
'job_class' => $job::class,
'attempts' => $attempts,
'retry_after' => $e->getRetryAfter(),
'delay' => $delay,
]);
}
$job->release($delay);
}
}
}
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Middleware;
use Illuminate\Support\Facades\Log;
use Jiminny\Exceptions\RateLimitException;
/**
* Job middleware that catches RateLimitException from HubSpot API calls
* and releases the job back to the queue with the appropriate delay.
*/
class HandleHubspotRateLimit
{
private const int MAX_RETRY_DELAY = 600;
private const int MIN_RETRY_DELAY = 1;
private const int JITTER_SECONDS = 5;
public function handle(object $job, callable $next): void
{
try {
$next($job);
} catch (RateLimitException $e) {
$delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));
// Add jitter to prevent thundering herd problem by randomizing retry times
$delay += random_int(0, self::JITTER_SECONDS);
$attempts = $job->attempts();
if ($attempts <= 3 || $attempts % 10 === 0) {
Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [
'job_class' => $job::class,
'attempts' => $attempts,
'retry_after' => $e->getRetryAfter(),
'delay' => $delay,
]);
}
$job->release($delay);
}
}
}
Review rate limit handli…, Editor Group 2
remote
app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...
JY-20725-handle-HS-search-rate-limit*
app (Git) - Synchronize Changes
Errors: 6, Warnings: 9, Infos: 2
6
9
2
Notifications
key, PHP extension: Premium features not active.
Sign In
Sign In
Diff editor
Clear
Review rate limit handling for HubSpot job queue
Session history
New session
Message actions
RateLimitException.php#9-9
RateLimitException.php#9-9
Reveiw the diff. Mostly
@app/Jobs/Crm/MatchActivityCrmData.php
,
@app/Exceptions/RateLimitException.php
,
@app/Jobs/Middleware/HandleHubspotRateLimit.php
,
@app/Services/Crm/Hubspot/Client.php
and
@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php
. The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?
Thought for 5s
Thought for 5s
I'll review the implementation carefully. Let me first check how
RateLimitException
is used elsewhere and look at the test files and
PaginationState
.
Bash
Find all usages of RateLimitException outside the changed files
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/app --include="*.php" | grep -v "HandleHubspotRateLimit\|MatchActivityCrmData\|Client.php\|RateLimitException.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:17:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:68: RateLimitException |
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:15:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:58: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:19:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:76: RateLimitException |
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:50: * @throws RateLimitException When rate limit is hit
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:195: // RateLimitException and other exceptions are re-thrown as-is
Read
PaginationState.php
PaginationState.php
Read
HandleHubspotRateLimitTest.php
HandleHubspotRateLimitTest.php
Bash
Check how RateLimitException is used in GenerateActionItemsJob
IN
grep -rn "RateLimitException\|LogicException\|RuntimeException" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -20
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
Bash
Find all catch blocks or instanceof checks for RateLimitException
IN
grep -rn "catch.*RateLimitException\|instanceof RateLimitException" /Users/lukas/jiminny/app/app --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:11: * Job middleware that catches RateLimitException from HubSpot API calls
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:24: } catch (RateLimitException $e) {
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:149: if (! $e instanceof RateLimitException) {
Bash
Find all test references to RateLimitException
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/tests --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:13:#[CoversClass(RateLimitException::class)]
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:14:class RateLimitExceptionTest extends TestCase
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:18: $exception = new RateLimitException();
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:28: $exception = new RateLimitException('Hubspot rate limit', 30, $previous);
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:52: $exception = new RateLimitException('test', $input);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:10:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:49: public function testPropagatesNonRateLimitExceptions(): void
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:103: throw new RateLimitException('rate limited', $retryAfter);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:150: throw new RateLimitException('rate limited', 1);
Bash
Check retry/failure handling in GenerateActionItemsJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -30
Copy code to clipboard
OUT
13:use Jiminny\Exceptions\RateLimitException;
51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
56: $this->release(30);
Bash
Check retry/failure handling in GenerateAiCallScoringJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php | head -30
Copy code to clipboard
OUT
17:use Jiminny\Exceptions\RateLimitException;
68: RateLimitException |
75: $this->release(30);
Bash
Check retry config in MatchActivityCrmData
IN
grep -n "retryAfter\|RETRY_WINDOW\|retryUntil\|maxTries" /Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php
Copy code to clipboard
OUT
34: private const int RETRY_WINDOW_MINUTES = 30;
45: public function retryUntil(): \DateTimeInterface
47: return now()->addMinutes(self::RETRY_WINDOW_MINUTES);
77: return self::RETRY_WINDOW_MINUTES * 60 + 60;
Bash
Check the cache key format
IN
grep -n "getRateLimitCacheKey\|hubspot:ratelimit" /Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Client.php
Copy code to clipboard
OUT
78: $cacheKey = $this->getRateLimitCacheKey();
110: private function getRateLimitCacheKey(): string
112: return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());
Bash
Find other jobs that might use the rate limit middleware
IN
grep -rn "class.*Middleware\|HandleHubspotRateLimit" /Users/lukas/jiminny/app/app/Jobs --include="*.php" | grep -v "HandleHubspotRateLimit.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:18:use Jiminny\Jobs\Middleware\HandleHubspotRateLimit;
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:42: return [new HandleHubspotRateLimit()];
Read
HubspotClientInterface.php
HubspotClientInterface.php
Thought for 73s
Thought for 73s
Now I have a complete picture. Here's my full analysis:
Review Summary
Review Summary
RuntimeException vs LogicException — Safe ✓...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
19537
|
835
|
12
|
2026-05-11T13:01:03.536408+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778504463536_m2.jpg...
|
Code
|
Review rate limit handli… — app
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 12 pending changes
12
Run and Debug (⇧⌘D)
Remote Explorer...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Explorer (⇧⌘E)","depth":19,"bounds":{"left":0.0,"top":0.047885075,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":true},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.057462092,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Search (⇧⌘F)","depth":19,"bounds":{"left":0.0,"top":0.08619314,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.09577015,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Source Control (⌃⇧G) - 12 pending changes","depth":19,"bounds":{"left":0.0,"top":0.1245012,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.13407822,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"12","depth":22,"bounds":{"left":0.00831117,"top":0.1452514,"width":0.003656915,"height":0.008778931},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.008643617,"top":0.14604948,"width":0.0016622341,"height":0.007980846}},{"char_start":1,"char_count":1,"bounds":{"left":0.009973404,"top":0.14604948,"width":0.0023271276,"height":0.007980846}}],"role_description":"text"},{"role":"AXRadioButton","text":"Run and Debug (⇧⌘D)","depth":19,"bounds":{"left":0.0,"top":0.16280925,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.17238627,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Remote Explorer","depth":19,"bounds":{"left":0.0,"top":0.20111732,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
2749283380865374970
|
-7894227743222381432
|
click
|
hybrid
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 12 pending changes
12
Run and Debug (⇧⌘D)
Remote Explorer
selectionViewWindov• HandleHubspotRateLimit.php XwClient.php 9V APP" JoosVCrm# MatchActivitiesToNewOpportunity.phpw MatchacuivilvcrmData.onp## NoteObiect.phpw SaveActivity.phpwSavelranscription.phpw [EMAIL]#SvncObiects.oho#SvncOpportunities.lob.ohv# SvncOpportunitv.ohol# SyncProfileMetadata.php#SvncTeamFieldc.loh.nhn#. SvncTeamMetadata.nhnl# UpdateOpportunitySpecifications.php##UodateStage.pnpDealkisks> MeetingBotV Middlowarol#* HandleHubspotRateLimit.phpRA RateLimited.php> Streamine> TeamTelephony> UserR# BaseProcessingJob.phpDummyJob.phpmoortRecallA Recordinas.oo.onv#ImoortRemotetrack.Job.onv# Job.oho# JobDisoatcher.oho# JobDispatcherinterface.ohv# [EMAIL]#SasVisibilitvControl.ohnV ModelsiActivitvi>A.Calondarapp > Jobs › Middleware > «* HandleHubspotRateLimit.php › * HandleHubspotRateLimidectaretstriet_types-,namespace Jiminny Jobs Midd Leware;use Tluminate Suoport Facades Loo:useJiminnvExcent.ions RateLimitExceot.ion:: Job middleware that catches RateLimitException from HubSpot API callsclacs HandieHubsnotRatelimitprivate const int MaX RETRY DELAY = 600:private const int MIN RETRY DELAY = 1;orivate const int JIHER SECONDS =5NOAAWANNpublic function handte(object sjob, callable snext): voidtry} catchmax(self::MIN RETRY DELAY, min($e->getRetryAfter(), self::MAX RETRY DELAY)):Add ]lcter to prevent chundering nerd problem by randomizing recry cimesSoelay += random 1nc6, selt::sulitk sccunds"sattemots = s1ob->attemots:if Sattemots <= 3 Sattemots & 10 === 0 4Log:: info('[HandleHubspotRateLimit) Rate limit caught, releasing job with delay', ['job_class' = $job::class,Iattemntcl = Cattemntc.'retry after' = Se->getRetryAfter(),'delay' = $delay.Sioh-sre lease Sde llav).i8 JY-20725-handle-HS-search-rate-limit* ©₫6A90г"Platrorm Kerlnemen…. now100% 5Mon 11 May 10.01:03• 2 C→= Review rate limit handli..Review rate limit handling for HubSpot jo.Isentry. Is there scenario where the tlow would be silentlv falled. Do I havea, way of knowina is some of the loos are lostwhatever was actually thrown. It's worth logging and tagging these differently so in Sentry you can tell "this portal was hammered for 2 hours" from "there's an actual bug"• EditMatchact.vitvcrmbata.onupubuic tunction talled uhrowable sexcention: vo1dLog::error('(MatchActivityCrmData) Job permanently failed after allpublic tunctzon tazleatihrowable sexceptzon): vo2dScontext =configuration' = $this->fromConfiguration?->getId(),08 0 0 0* M&|$this->fromConfiguration?->getId(),• Now for the 100k spike concern specifically — 64,000 Sentry events would be a lot of noise. Worth knowing that Sentry has rate limiting on its own side, and you can also add \Sentry:: configureScope() togroup them, but that's probably overkill here. The failed_jobs table already gives you the full count; Sentry gives you the signal that it happened at all.To directly answer your question: yes, there was a silent failure scenario. Jobs hitting retryUntil() after being rate-limited were written to failed_jobs and logged at error level, but nothing reachedSenuva une vaxau cenouse xceeded excep on pau vate-uni exhaus ion neverropava eu nroueh he excep ton nanuer ony ea exceр lons Dв eros eс da, Now aшea cadures Dou andLiEloa level distinauishes them so vou can filter in Sentry by excention tvoe: MaxAttemotsExceededExcention = rate-limit death. anvthina else = real bua<> HandleHubspotRateLimit…fix @tests/Unit/Services/Crm/Hubsoot/Pacination/HubsootPacinationServiceTest.ohnand@tests/Unit/.lobs/Crm/MatchActivitvCrmDataTest.ohv• Thought for 299s >• Let me check what's actually broken before writina fixes.• Bash Run the affected tests to see what's failingIN php vendor/bin/phpunit tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPagAllow this bash command?ono vendorbin/ onounit rests/unluJoos/crm/Marchacuiv1cvcrmbaralesc.onotests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.phptests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php -=no-coverage 2>81tail -40Run the affected tests to see what's failing7 Yes, alllow oho vendorlbin/oh.... for alll proiects3 NoTell Claude what to do insteadEse to cance8 SignIn...
|
19535
|
NULL
|
NULL
|
NULL
|
|
19538
|
835
|
13
|
2026-05-11T13:01:07.156590+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778504467156_m2.jpg...
|
Code
|
Review rate limit handli… — app
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 12 pending changes
12
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php
SaveTranscription.php
SetupLayout.php
SyncActivity.php...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Explorer (⇧⌘E)","depth":19,"bounds":{"left":0.0,"top":0.047885075,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":true},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.057462092,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Search (⇧⌘F)","depth":19,"bounds":{"left":0.0,"top":0.08619314,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.09577015,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Source Control (⌃⇧G) - 12 pending changes","depth":19,"bounds":{"left":0.0,"top":0.1245012,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.13407822,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"12","depth":22,"bounds":{"left":0.00831117,"top":0.1452514,"width":0.003656915,"height":0.008778931},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.008643617,"top":0.14604948,"width":0.0016622341,"height":0.007980846}},{"char_start":1,"char_count":1,"bounds":{"left":0.009973404,"top":0.14604948,"width":0.0023271276,"height":0.007980846}}],"role_description":"text"},{"role":"AXRadioButton","text":"Run and Debug (⇧⌘D)","depth":19,"bounds":{"left":0.0,"top":0.16280925,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.17238627,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Remote Explorer","depth":19,"bounds":{"left":0.0,"top":0.20111732,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.21069433,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Extensions (⇧⌘X) - 2 require update","depth":19,"bounds":{"left":0.0,"top":0.23942538,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.2490024,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":22,"bounds":{"left":0.009640957,"top":0.2601756,"width":0.0019946808,"height":0.008778931},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Testing","depth":19,"bounds":{"left":0.0,"top":0.27773345,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.28731045,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Claude Code","depth":19,"bounds":{"left":0.0,"top":0.3160415,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"EXPLORER","depth":17,"bounds":{"left":0.022606382,"top":0.047885075,"width":0.018949468,"height":0.02793296},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"EXPLORER","depth":18,"bounds":{"left":0.022606382,"top":0.056664005,"width":0.018949468,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.022606382,"top":0.056664005,"width":0.0023271276,"height":0.0103751}},{"char_start":1,"char_count":7,"bounds":{"left":0.024933511,"top":0.056664005,"width":0.01662234,"height":0.0103751}}],"role_description":"text"},{"role":"AXButton","text":"Explorer Section: app","depth":21,"bounds":{"left":0.015957447,"top":0.07581804,"width":0.09940159,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.07821229,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"Explorer Section: app","depth":22,"bounds":{"left":0.022606382,"top":0.07581804,"width":0.0076462766,"height":0.017557861},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"APP","depth":23,"bounds":{"left":0.022606382,"top":0.079010375,"width":0.0076462766,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.0933759,"width":0.0063164895,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CheckAndRetryRemoteMatch.php","depth":27,"bounds":{"left":0.033909574,"top":0.0933759,"width":0.068484046,"height":0.011173184},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.0933759,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":27,"bounds":{"left":0.036901597,"top":0.0933759,"width":0.06549202,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.10853951,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateFollowupActivity.php","depth":27,"bounds":{"left":0.033909574,"top":0.110135674,"width":0.054853722,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.11093376,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":25,"bounds":{"left":0.036901597,"top":0.11093376,"width":0.051861703,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.12609737,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateNotes.php","depth":27,"bounds":{"left":0.033909574,"top":0.12769353,"width":0.034242023,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.12849163,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.036901597,"top":0.12849163,"width":0.03125,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.14365523,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivitiesToNewOpportunity.php","depth":27,"bounds":{"left":0.033909574,"top":0.1452514,"width":0.07712766,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.14604948,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":34,"bounds":{"left":0.037898935,"top":0.14604948,"width":0.07347074,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.16121309,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivityCrmData.php","depth":27,"bounds":{"left":0.033909574,"top":0.16280925,"width":0.054521278,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.16360734,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":23,"bounds":{"left":0.037898935,"top":0.16360734,"width":0.050531916,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.17877094,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"NoteObject.php","depth":27,"bounds":{"left":0.033909574,"top":0.18036711,"width":0.031914894,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.1811652,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":13,"bounds":{"left":0.03723404,"top":0.1811652,"width":0.028922873,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.1963288,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SaveActivity.php","depth":27,"bounds":{"left":0.033909574,"top":0.19792499,"width":0.03324468,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.19872306,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":15,"bounds":{"left":0.03656915,"top":0.19872306,"width":0.030585106,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.21388668,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SaveTranscription.php","depth":27,"bounds":{"left":0.033909574,"top":0.21548285,"width":0.04454787,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.21628092,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":20,"bounds":{"left":0.03656915,"top":0.21628092,"width":0.042220745,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.23144454,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SetupLayout.php","depth":27,"bounds":{"left":0.033909574,"top":0.2330407,"width":0.034242023,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.23383878,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.03656915,"top":0.23383878,"width":0.031914894,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.2490024,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncActivity.php","depth":27,"bounds":{"left":0.033909574,"top":0.25059855,"width":0.03357713,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.25139666,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":15,"bounds":{"left":0.03656915,"top":0.25139666,"width":0.030917553,"height":0.011971269}}],"role_description":"text"}]...
|
-1690404856947041122
|
8824825740873369002
|
visual_change
|
accessibility
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 12 pending changes
12
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php
SaveTranscription.php
SetupLayout.php
SyncActivity.php...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
19539
|
835
|
14
|
2026-05-11T13:01:10.196275+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778504470196_m2.jpg...
|
Code
|
Review rate limit handli… — app
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G)
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php
SaveTranscription.php
SetupLayout.php
SyncActivity.php
SyncFieldMetadata.php
SyncHubspotObjects.php
SyncLeads.php
SyncObjects.php
SyncOpportunitiesJob.php
SyncOpportunity.php
SyncProfileMetadata.php
SyncTeamFieldsJob.php
SyncTeamMetadata.php
UpdateOpportunitySpecifications.php
UpdateStage.php
DealRisks
Mailbox
MeetingBot
Middleware
HandleHubspotRateLimit.php
RateLimited.php
Streaming
Team
Telephony
User
BaseProcessingJob.php
DummyJob.php
ImportRecallAIRecordingsJob.php
ImportRemoteTrackJob.php
Job.php
JobDispatcher.php
JobDispatcherInterface.php
PurgeSoftDeletedOpportunityJob.php
SqsVisibilityControl.php
Listeners
Mail
Models
Activity
Ai
AskAnything
Calendar
Connection
Crm
Jobs
app
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
MySQL Section
MYSQL
MYSQL
MatchActivityCrmData.php, Editor Group 1
RateLimitException.php, Editor Group 1
HandleHubspotRateLimit.php, Editor Group 1
Client.php, Editor Group 1
HubspotPaginationService.php, Editor Group 1
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Middleware;
use Illuminate\Support\Facades\Log;
use Jiminny\Exceptions\RateLimitException;
/**
* Job middleware that catches RateLimitException from HubSpot API calls
* and releases the job back to the queue with the appropriate delay.
*/
class HandleHubspotRateLimit
{
private const int MAX_RETRY_DELAY = 600;
private const int MIN_RETRY_DELAY = 1;
private const int JITTER_SECONDS = 5;
public function handle(object $job, callable $next): void
{
try {
$next($job);
} catch (RateLimitException $e) {
$delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));
// Add jitter to prevent thundering herd problem by randomizing retry times
$delay += random_int(0, self::JITTER_SECONDS);
$attempts = $job->attempts();
if ($attempts <= 3 || $attempts % 10 === 0) {
Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [
'job_class' => $job::class,
'attempts' => $attempts,
'retry_after' => $e->getRetryAfter(),
'delay' => $delay,
]);
}
$job->release($delay);
}
}
}
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Middleware;
use Illuminate\Support\Facades\Log;
use Jiminny\Exceptions\RateLimitException;
/**
* Job middleware that catches RateLimitException from HubSpot API calls
* and releases the job back to the queue with the appropriate delay.
*/
class HandleHubspotRateLimit
{
private const int MAX_RETRY_DELAY = 600;
private const int MIN_RETRY_DELAY = 1;
private const int JITTER_SECONDS = 5;
public function handle(object $job, callable $next): void
{
try {
$next($job);
} catch (RateLimitException $e) {
$delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));
// Add jitter to prevent thundering herd problem by randomizing retry times
$delay += random_int(0, self::JITTER_SECONDS);
$attempts = $job->attempts();
if ($attempts <= 3 || $attempts % 10 === 0) {
Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [
'job_class' => $job::class,
'attempts' => $attempts,
'retry_after' => $e->getRetryAfter(),
'delay' => $delay,
]);
}
$job->release($delay);
}
}
}
Review rate limit handli…, Editor Group 2
remote
app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...
JY-20725-handle-HS-search-rate-limit*
app (Git) - Synchronize Changes
Errors: 6, Warnings: 9, Infos: 2
6
9
2
Notifications
key, PHP extension: Premium features not active.
Sign In
Sign In
Diff editor
Clear
Review rate limit handling for HubSpot job queue
Session history
New session
Message actions
RateLimitException.php#9-9
RateLimitException.php#9-9
Reveiw the diff. Mostly
@app/Jobs/Crm/MatchActivityCrmData.php
,
@app/Exceptions/RateLimitException.php
,
@app/Jobs/Middleware/HandleHubspotRateLimit.php
,
@app/Services/Crm/Hubspot/Client.php
and
@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php
. The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?
Thought for 5s
Thought for 5s
I'll review the implementation carefully. Let me first check how
RateLimitException
is used elsewhere and look at the test files and
PaginationState
.
Bash
Find all usages of RateLimitException outside the changed files
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/app --include="*.php" | grep -v "HandleHubspotRateLimit\|MatchActivityCrmData\|Client.php\|RateLimitException.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:17:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:68: RateLimitException |
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:15:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:58: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:19:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:76: RateLimitException |
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:50: * @throws RateLimitException When rate limit is hit
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:195: // RateLimitException and other exceptions are re-thrown as-is
Read
PaginationState.php
PaginationState.php
Read
HandleHubspotRateLimitTest.php
HandleHubspotRateLimitTest.php
Bash
Check how RateLimitException is used in GenerateActionItemsJob
IN
grep -rn "RateLimitException\|LogicException\|RuntimeException" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -20
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
Bash
Find all catch blocks or instanceof checks for RateLimitException
IN
grep -rn "catch.*RateLimitException\|instanceof RateLimitException" /Users/lukas/jiminny/app/app --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:11: * Job middleware that catches RateLimitException from HubSpot API calls
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:24: } catch (RateLimitException $e) {
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:149: if (! $e instanceof RateLimitException) {
Bash
Find all test references to RateLimitException
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/tests --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:13:#[CoversClass(RateLimitException::class)]
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:14:class RateLimitExceptionTest extends TestCase
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:18: $exception = new RateLimitException();
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:28: $exception = new RateLimitException('Hubspot rate limit', 30, $previous);
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:52: $exception = new RateLimitException('test', $input);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:10:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:49: public function testPropagatesNonRateLimitExceptions(): void
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:103: throw new RateLimitException('rate limited', $retryAfter);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:150: throw new RateLimitException('rate limited', 1);
Bash
Check retry/failure handling in GenerateActionItemsJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -30
Copy code to clipboard
OUT
13:use Jiminny\Exceptions\RateLimitException;
51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
56: $this->release(30);
Bash
Check retry/failure handling in GenerateAiCallScoringJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php | head -30
Copy code to clipboard
OUT
17:use Jiminny\Exceptions\RateLimitException;
68: RateLimitException |
75: $this->release(30);
Bash
Check retry config in MatchActivityCrmData
IN
grep -n "retryAfter\|RETRY_WINDOW\|retryUntil\|maxTries" /Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php
Copy code to clipboard
OUT
34: private const int RETRY_WINDOW_MINUTES = 30;
45: public function retryUntil(): \DateTimeInterface
47: return now()->addMinutes(self::RETRY_WINDOW_MINUTES);
77: return self::RETRY_WINDOW_MINUTES * 60 + 60;
Bash
Check the cache key format
IN
grep -n "getRateLimitCacheKey\|hubspot:ratelimit" /Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Client.php
Copy code to clipboard
OUT
78: $cacheKey = $this->getRateLimitCacheKey();
110: private function getRateLimitCacheKey(): string
112: return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());
Bash
Find other jobs that might use the rate limit middleware
IN
grep -rn "class.*Middleware\|HandleHubspotRateLimit" /Users/lukas/jiminny/app/app/Jobs --include="*.php" | grep -v "HandleHubspotRateLimit.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:18:use Jiminny\Jobs\Middleware\HandleHubspotRateLimit;
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:42: return [new HandleHubspotRateLimit()];
Read
HubspotClientInterface.php...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Explorer (⇧⌘E)","depth":19,"bounds":{"left":0.0,"top":0.047885075,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":true},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.057462092,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Search (⇧⌘F)","depth":19,"bounds":{"left":0.0,"top":0.08619314,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.09577015,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Source Control (⌃⇧G)","depth":19,"bounds":{"left":0.0,"top":0.1245012,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.13407822,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Run and Debug (⇧⌘D)","depth":19,"bounds":{"left":0.0,"top":0.16280925,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.17238627,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Remote Explorer","depth":19,"bounds":{"left":0.0,"top":0.20111732,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.21069433,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Extensions (⇧⌘X) - 2 require update","depth":19,"bounds":{"left":0.0,"top":0.23942538,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.2490024,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":22,"bounds":{"left":0.009640957,"top":0.2601756,"width":0.0019946808,"height":0.008778931},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Testing","depth":19,"bounds":{"left":0.0,"top":0.27773345,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.28731045,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Claude Code","depth":19,"bounds":{"left":0.0,"top":0.3160415,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"EXPLORER","depth":17,"bounds":{"left":0.022606382,"top":0.047885075,"width":0.018949468,"height":0.02793296},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"EXPLORER","depth":18,"bounds":{"left":0.022606382,"top":0.056664005,"width":0.018949468,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.022606382,"top":0.056664005,"width":0.0023271276,"height":0.0103751}},{"char_start":1,"char_count":7,"bounds":{"left":0.024933511,"top":0.056664005,"width":0.01662234,"height":0.0103751}}],"role_description":"text"},{"role":"AXButton","text":"Explorer Section: app","depth":21,"bounds":{"left":0.015957447,"top":0.07581804,"width":0.09940159,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.07821229,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"Explorer Section: app","depth":22,"bounds":{"left":0.022606382,"top":0.07581804,"width":0.0076462766,"height":0.017557861},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"APP","depth":23,"bounds":{"left":0.022606382,"top":0.079010375,"width":0.0076462766,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.0933759,"width":0.0063164895,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CheckAndRetryRemoteMatch.php","depth":27,"bounds":{"left":0.033909574,"top":0.0933759,"width":0.068484046,"height":0.011173184},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.0933759,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":27,"bounds":{"left":0.036901597,"top":0.0933759,"width":0.06549202,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.10853951,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateFollowupActivity.php","depth":27,"bounds":{"left":0.033909574,"top":0.110135674,"width":0.054853722,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.11093376,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":25,"bounds":{"left":0.036901597,"top":0.11093376,"width":0.051861703,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.12609737,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateNotes.php","depth":27,"bounds":{"left":0.033909574,"top":0.12769353,"width":0.034242023,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.12849163,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.036901597,"top":0.12849163,"width":0.03125,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.14365523,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivitiesToNewOpportunity.php","depth":27,"bounds":{"left":0.033909574,"top":0.1452514,"width":0.07712766,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.14604948,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":34,"bounds":{"left":0.037898935,"top":0.14604948,"width":0.07347074,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.16121309,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivityCrmData.php","depth":27,"bounds":{"left":0.033909574,"top":0.16280925,"width":0.054521278,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.16360734,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":23,"bounds":{"left":0.037898935,"top":0.16360734,"width":0.050531916,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.17877094,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"NoteObject.php","depth":27,"bounds":{"left":0.033909574,"top":0.18036711,"width":0.031914894,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.1811652,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":13,"bounds":{"left":0.03723404,"top":0.1811652,"width":0.028922873,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.1963288,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SaveActivity.php","depth":27,"bounds":{"left":0.033909574,"top":0.19792499,"width":0.03324468,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.19872306,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":15,"bounds":{"left":0.03656915,"top":0.19872306,"width":0.030585106,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.21388668,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SaveTranscription.php","depth":27,"bounds":{"left":0.033909574,"top":0.21548285,"width":0.04454787,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.21628092,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":20,"bounds":{"left":0.03656915,"top":0.21628092,"width":0.042220745,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.23144454,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SetupLayout.php","depth":27,"bounds":{"left":0.033909574,"top":0.2330407,"width":0.034242023,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.23383878,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.03656915,"top":0.23383878,"width":0.031914894,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.2490024,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncActivity.php","depth":27,"bounds":{"left":0.033909574,"top":0.25059855,"width":0.03357713,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.25139666,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":15,"bounds":{"left":0.03656915,"top":0.25139666,"width":0.030917553,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.26656026,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncFieldMetadata.php","depth":27,"bounds":{"left":0.033909574,"top":0.26815644,"width":0.047539894,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.26895452,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":20,"bounds":{"left":0.03656915,"top":0.26895452,"width":0.04488032,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.28411812,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncHubspotObjects.php","depth":27,"bounds":{"left":0.033909574,"top":0.2857143,"width":0.051861703,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.28651237,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":21,"bounds":{"left":0.03656915,"top":0.28651237,"width":0.04920213,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.30167598,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncLeads.php","depth":27,"bounds":{"left":0.033909574,"top":0.30327216,"width":0.030917553,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.30407023,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":12,"bounds":{"left":0.03656915,"top":0.30407023,"width":0.02825798,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.31923383,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncObjects.php","depth":27,"bounds":{"left":0.033909574,"top":0.32083002,"width":0.034574468,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.3216281,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.03656915,"top":0.3216281,"width":0.031914894,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.3367917,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncOpportunitiesJob.php","depth":27,"bounds":{"left":0.033909574,"top":0.33838788,"width":0.053856384,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.33918595,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":23,"bounds":{"left":0.03656915,"top":0.33918595,"width":0.05119681,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.35434955,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncOpportunity.php","depth":27,"bounds":{"left":0.033909574,"top":0.35594574,"width":0.04288564,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.3567438,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":18,"bounds":{"left":0.03656915,"top":0.3567438,"width":0.040226065,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.3719074,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncProfileMetadata.php","depth":27,"bounds":{"left":0.033909574,"top":0.3735036,"width":0.05086436,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.37430167,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":22,"bounds":{"left":0.03656915,"top":0.37430167,"width":0.048204787,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.38946527,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncTeamFieldsJob.php","depth":27,"bounds":{"left":0.033909574,"top":0.39106146,"width":0.04886968,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.39185953,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":20,"bounds":{"left":0.03656915,"top":0.39185953,"width":0.046210106,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.40702313,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncTeamMetadata.php","depth":27,"bounds":{"left":0.033909574,"top":0.4086193,"width":0.048537236,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.4094174,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":19,"bounds":{"left":0.03656915,"top":0.4094174,"width":0.045877658,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.424581,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"UpdateOpportunitySpecifications.php","depth":27,"bounds":{"left":0.033909574,"top":0.42617717,"width":0.076130316,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.42697525,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":34,"bounds":{"left":0.03723404,"top":0.42697525,"width":0.0731383,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.44213888,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"UpdateStage.php","depth":27,"bounds":{"left":0.033909574,"top":0.44373503,"width":0.03523936,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.4445331,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.03723404,"top":0.4445331,"width":0.032247342,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.4612929,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"DealRisks","depth":27,"bounds":{"left":0.03125,"top":0.4612929,"width":0.019614361,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.46209097,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":8,"bounds":{"left":0.034574468,"top":0.46209097,"width":0.016289894,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.47885075,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mailbox","depth":27,"bounds":{"left":0.03125,"top":0.47885075,"width":0.015625,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.47964883,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":6,"bounds":{"left":0.03523936,"top":0.47964883,"width":0.011635638,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.4964086,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MeetingBot","depth":27,"bounds":{"left":0.03125,"top":0.4964086,"width":0.023271276,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.49720672,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":9,"bounds":{"left":0.03523936,"top":0.49720672,"width":0.019281914,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.5139665,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Middleware","depth":27,"bounds":{"left":0.03125,"top":0.5139665,"width":0.023271276,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.51476455,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":9,"bounds":{"left":0.03523936,"top":0.51476455,"width":0.019281914,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.52992815,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"HandleHubspotRateLimit.php","depth":27,"bounds":{"left":0.033909574,"top":0.53152436,"width":0.059175532,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.5323224,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":25,"bounds":{"left":0.03723404,"top":0.5323224,"width":0.05618351,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.547486,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"RateLimited.php","depth":27,"bounds":{"left":0.033909574,"top":0.5490822,"width":0.032912236,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.54988027,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.036901597,"top":0.54988027,"width":0.029920213,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.5666401,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Streaming","depth":27,"bounds":{"left":0.03125,"top":0.5666401,"width":0.020611702,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.5674381,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":8,"bounds":{"left":0.033909574,"top":0.5674381,"width":0.017952127,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.58419794,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Team","depth":27,"bounds":{"left":0.03125,"top":0.58419794,"width":0.010970744,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.584996,"width":0.0023271276,"height":0.011971269}},{"char_start":1,"char_count":3,"bounds":{"left":0.03357713,"top":0.584996,"width":0.008643617,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.6017558,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Telephony","depth":27,"bounds":{"left":0.03125,"top":0.6017558,"width":0.020611702,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.60255384,"width":0.0023271276,"height":0.011971269}},{"char_start":1,"char_count":8,"bounds":{"left":0.03357713,"top":0.60255384,"width":0.018284574,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.61931366,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"User","depth":27,"bounds":{"left":0.03125,"top":0.61931366,"width":0.00930851,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.6201117,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":3,"bounds":{"left":0.034574468,"top":0.6201117,"width":0.0063164895,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.63527536,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"BaseProcessingJob.php","depth":27,"bounds":{"left":0.03125,"top":0.6368715,"width":0.048537236,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.63766956,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":20,"bounds":{"left":0.034242023,"top":0.63766956,"width":0.045545213,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.6528332,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"DummyJob.php","depth":27,"bounds":{"left":0.03125,"top":0.6544294,"width":0.03158245,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.6552275,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":11,"bounds":{"left":0.034574468,"top":0.6552275,"width":0.02825798,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.6703911,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"ImportRecallAIRecordingsJob.php","depth":27,"bounds":{"left":0.03125,"top":0.67198724,"width":0.068484046,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.67278534,"width":0.0013297872,"height":0.011971269}},{"char_start":1,"char_count":30,"bounds":{"left":0.032579787,"top":0.67278534,"width":0.06715426,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.68794894,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"ImportRemoteTrackJob.php","depth":27,"bounds":{"left":0.03125,"top":0.6895451,"width":0.055518616,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.6903432,"width":0.0013297872,"height":0.011971269}},{"char_start":1,"char_count":23,"bounds":{"left":0.032579787,"top":0.6903432,"width":0.054521278,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.7055068,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Job.php","depth":27,"bounds":{"left":0.03125,"top":0.70710295,"width":0.016289894,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.70790106,"width":0.0023271276,"height":0.011971269}},{"char_start":1,"char_count":6,"bounds":{"left":0.03357713,"top":0.70790106,"width":0.014295213,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.72306466,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JobDispatcher.php","depth":27,"bounds":{"left":0.03125,"top":0.7246608,"width":0.037898935,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.7254589,"width":0.0023271276,"height":0.011971269}},{"char_start":1,"char_count":16,"bounds":{"left":0.03357713,"top":0.7254589,"width":0.035904255,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.7406225,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JobDispatcherInterface.php","depth":27,"bounds":{"left":0.03125,"top":0.7422187,"width":0.05618351,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.7430168,"width":0.0023271276,"height":0.011971269}},{"char_start":1,"char_count":25,"bounds":{"left":0.03357713,"top":0.7430168,"width":0.05418883,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.7581804,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"PurgeSoftDeletedOpportunityJob.php","depth":27,"bounds":{"left":0.03125,"top":0.75977653,"width":0.076130316,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.77573824,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SqsVisibilityControl.php","depth":27,"bounds":{"left":0.03125,"top":0.7773344,"width":0.047872342,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.022273935,"top":0.79489225,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Listeners","depth":27,"bounds":{"left":0.028590426,"top":0.79489225,"width":0.018284574,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.022273935,"top":0.8124501,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mail","depth":27,"bounds":{"left":0.028590426,"top":0.8124501,"width":0.00831117,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.022273935,"top":0.830008,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Models","depth":27,"bounds":{"left":0.028590426,"top":0.830008,"width":0.01462766,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.8475658,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Activity","depth":27,"bounds":{"left":0.03125,"top":0.8475658,"width":0.014960106,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.8651237,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Ai","depth":27,"bounds":{"left":0.03125,"top":0.8651237,"width":0.0039893617,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.88268155,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"AskAnything","depth":27,"bounds":{"left":0.03125,"top":0.88268155,"width":0.025265958,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.9002394,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Calendar","depth":27,"bounds":{"left":0.03125,"top":0.9002394,"width":0.017952127,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.91779727,"width":0.005319149,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Connection","depth":27,"bounds":{"left":0.03125,"top":0.91779727,"width":0.022938829,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.13088587,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Crm","depth":27,"bounds":{"left":0.03125,"top":0.13088587,"width":0.00831117,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.022273935,"top":0.11332801,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Jobs","depth":27,"bounds":{"left":0.028590426,"top":0.11332801,"width":0.009640957,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.019614361,"top":0.09577015,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"app","depth":27,"bounds":{"left":0.025930852,"top":0.09577015,"width":0.0076462766,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.10605053,"top":0.096568234,"width":0.004654255,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Outline Section","depth":21,"bounds":{"left":0.015957447,"top":0.92976856,"width":0.09940159,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.9321628,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"OUTLINE","depth":22,"bounds":{"left":0.022606382,"top":0.92976856,"width":0.01662234,"height":0.017557861},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"OUTLINE","depth":23,"bounds":{"left":0.022606382,"top":0.933759,"width":0.01662234,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Timeline Section","depth":21,"bounds":{"left":0.015957447,"top":0.9473264,"width":0.09940159,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.9497207,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"TIMELINE","depth":22,"bounds":{"left":0.022606382,"top":0.9473264,"width":0.01761968,"height":0.017557861},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"TIMELINE","depth":23,"bounds":{"left":0.022606382,"top":0.95131683,"width":0.01761968,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"MySQL Section","depth":21,"bounds":{"left":0.015957447,"top":0.9648843,"width":0.09940159,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.96727854,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"MYSQL","depth":22,"bounds":{"left":0.022606382,"top":0.9648843,"width":0.013297873,"height":0.017557861},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"MYSQL","depth":23,"bounds":{"left":0.022606382,"top":0.9688747,"width":0.013297873,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"MatchActivityCrmData.php, Editor Group 1","depth":28,"bounds":{"left":0.11569149,"top":0.047885075,"width":0.07480053,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"RateLimitException.php, Editor Group 1","depth":28,"bounds":{"left":0.19015957,"top":0.047885075,"width":0.06815159,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"HandleHubspotRateLimit.php, Editor Group 1","depth":28,"bounds":{"left":0.25797874,"top":0.047885075,"width":0.080119684,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXRadioButton","text":"Client.php, Editor Group 1","depth":28,"bounds":{"left":0.33776596,"top":0.047885075,"width":0.045545213,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"HubspotPaginationService.php, Editor Group 1","depth":28,"bounds":{"left":0.38297874,"top":0.047885075,"width":0.08277926,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.12832446,"top":0.07821229,"width":0.0056515955,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.14328457,"top":0.07821229,"width":0.0056515955,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.171875,"top":0.07821229,"width":0.0056515955,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.24401596,"top":0.07821229,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.24933511,"top":0.07821229,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Middleware;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Exceptions\\RateLimitException;\n\n/**\n * Job middleware that catches RateLimitException from HubSpot API calls\n * and releases the job back to the queue with the appropriate delay.\n */\nclass HandleHubspotRateLimit\n{\n private const int MAX_RETRY_DELAY = 600;\n private const int MIN_RETRY_DELAY = 1;\n private const int JITTER_SECONDS = 5;\n\n public function handle(object $job, callable $next): void\n {\n try {\n $next($job);\n } catch (RateLimitException $e) {\n $delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));\n // Add jitter to prevent thundering herd problem by randomizing retry times\n $delay += random_int(0, self::JITTER_SECONDS);\n\n $attempts = $job->attempts();\n if ($attempts <= 3 || $attempts % 10 === 0) {\n Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [\n 'job_class' => $job::class,\n 'attempts' => $attempts,\n 'retry_after' => $e->getRetryAfter(),\n 'delay' => $delay,\n ]);\n }\n\n $job->release($delay);\n }\n }\n}","depth":28,"bounds":{"left":0.13763298,"top":0.27613726,"width":0.23803191,"height":0.014365523},"on_screen":true,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Middleware;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Exceptions\\RateLimitException;\n\n/**\n * Job middleware that catches RateLimitException from HubSpot API calls\n * and releases the job back to the queue with the appropriate delay.\n */\nclass HandleHubspotRateLimit\n{\n private const int MAX_RETRY_DELAY = 600;\n private const int MIN_RETRY_DELAY = 1;\n private const int JITTER_SECONDS = 5;\n\n public function handle(object $job, callable $next): void\n {\n try {\n $next($job);\n } catch (RateLimitException $e) {\n $delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));\n // Add jitter to prevent thundering herd problem by randomizing retry times\n $delay += random_int(0, self::JITTER_SECONDS);\n\n $attempts = $job->attempts();\n if ($attempts <= 3 || $attempts % 10 === 0) {\n Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [\n 'job_class' => $job::class,\n 'attempts' => $attempts,\n 'retry_after' => $e->getRetryAfter(),\n 'delay' => $delay,\n ]);\n }\n\n $job->release($delay);\n }\n }\n}","role_description":"editor","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Middleware;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Exceptions\\RateLimitException;\n\n/**\n * Job middleware that catches RateLimitException from HubSpot API calls\n * and releases the job back to the queue with the appropriate delay.\n */\nclass HandleHubspotRateLimit\n{\n private const int MAX_RETRY_DELAY = 600;\n private const int MIN_RETRY_DELAY = 1;\n private const int JITTER_SECONDS = 5;\n\n public function handle(object $job, callable $next): void\n {\n try {\n $next($job);\n } catch (RateLimitException $e) {\n $delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));\n // Add jitter to prevent thundering herd problem by randomizing retry times\n $delay += random_int(0, self::JITTER_SECONDS);\n\n $attempts = $job->attempts();\n if ($attempts <= 3 || $attempts % 10 === 0) {\n Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [\n 'job_class' => $job::class,\n 'attempts' => $attempts,\n 'retry_after' => $e->getRetryAfter(),\n 'delay' => $delay,\n ]);\n }\n\n $job->release($delay);\n }\n }\n}","depth":29,"bounds":{"left":0.13763298,"top":0.27613726,"width":0.23803191,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Review rate limit handli…, Editor Group 2","depth":28,"bounds":{"left":0.5578458,"top":0.047885075,"width":0.07014628,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXButton","text":"remote","depth":16,"bounds":{"left":0.0006648936,"top":0.98244214,"width":0.010638298,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...","depth":16,"bounds":{"left":0.012965426,"top":0.98244214,"width":0.084773935,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.013962766,"top":0.9848364,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JY-20725-handle-HS-search-rate-limit*","depth":17,"bounds":{"left":0.019281914,"top":0.9856345,"width":0.0774601,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"app (Git) - Synchronize Changes","depth":16,"bounds":{"left":0.09740692,"top":0.98244214,"width":0.0076462766,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Errors: 6, Warnings: 9, Infos: 2","depth":16,"bounds":{"left":0.107380316,"top":0.98244214,"width":0.032579787,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.109042555,"top":0.9848364,"width":0.0056515955,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"6","depth":17,"bounds":{"left":0.1143617,"top":0.9856345,"width":0.004986702,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.11934841,"top":0.9848364,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"9","depth":17,"bounds":{"left":0.124667555,"top":0.9856345,"width":0.004654255,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.12932181,"top":0.9848364,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":17,"bounds":{"left":0.13464096,"top":0.9856345,"width":0.003656915,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Notifications","depth":16,"bounds":{"left":0.9886968,"top":0.98244214,"width":0.010638298,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"key, PHP extension: Premium features not active.","depth":16,"bounds":{"left":0.9790558,"top":0.98244214,"width":0.008643617,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sign In","depth":16,"bounds":{"left":0.9544548,"top":0.98244214,"width":0.022606382,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.95611703,"top":0.9848364,"width":0.0056515955,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Sign In","depth":17,"bounds":{"left":0.96143615,"top":0.9856345,"width":0.013962766,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Diff editor","depth":12,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Clear","depth":12,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Review rate limit handling for HubSpot job queue","depth":19,"bounds":{"left":0.56017286,"top":0.08060654,"width":0.099734046,"height":0.022346368},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Session history","depth":19,"bounds":{"left":0.9780585,"top":0.08060654,"width":0.00930851,"height":0.022346368},"on_screen":true,"help_text":"Session history","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New session","depth":19,"bounds":{"left":0.9886968,"top":0.08060654,"width":0.00930851,"height":0.022346368},"on_screen":true,"help_text":"New session","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Message actions","depth":24,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"RateLimitException.php#9-9","depth":23,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"RateLimitException.php#9-9","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Reveiw the diff. Mostly","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Jobs/Crm/MatchActivityCrmData.php","depth":26,"on_screen":false,"help_text":"Open app/Jobs/Crm/MatchActivityCrmData.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Exceptions/RateLimitException.php","depth":26,"on_screen":false,"help_text":"Open app/Exceptions/RateLimitException.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Jobs/Middleware/HandleHubspotRateLimit.php","depth":26,"on_screen":false,"help_text":"Open app/Jobs/Middleware/HandleHubspotRateLimit.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Services/Crm/Hubspot/Client.php","depth":26,"on_screen":false,"help_text":"Open app/Services/Crm/Hubspot/Client.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"and","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php","depth":26,"on_screen":false,"help_text":"Open app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":". The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Thought for 5s","depth":23,"on_screen":false,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thought for 5s","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"I'll review the implementation carefully. Let me first check how","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is used elsewhere and look at the test files and","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"PaginationState","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":".","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find all usages of RateLimitException outside the changed files","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"RateLimitException\" /Users/lukas/jiminny/app/app --include=\"*.php\" | grep -v \"HandleHubspotRateLimit\\|MatchActivityCrmData\\|Client.php\\|RateLimitException.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception\n/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:17:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:68: RateLimitException |\n/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:15:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:58: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception\n/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:19:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:76: RateLimitException |\n/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:8:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:50: * @throws RateLimitException When rate limit is hit\n/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:195: // RateLimitException and other exceptions are re-thrown as-is","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"PaginationState.php","depth":24,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"PaginationState.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"HandleHubspotRateLimitTest.php","depth":24,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"HandleHubspotRateLimitTest.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check how RateLimitException is used in GenerateActionItemsJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"RateLimitException\\|LogicException\\|RuntimeException\" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -20","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find all catch blocks or instanceof checks for RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"catch.*RateLimitException\\|instanceof RateLimitException\" /Users/lukas/jiminny/app/app --include=\"*.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:11: * Job middleware that catches RateLimitException from HubSpot API calls\n/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:24: } catch (RateLimitException $e) {\n/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:149: if (! $e instanceof RateLimitException) {","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find all test references to RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"RateLimitException\" /Users/lukas/jiminny/app/tests --include=\"*.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:8:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:13:#[CoversClass(RateLimitException::class)]\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:14:class RateLimitExceptionTest extends TestCase\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:18: $exception = new RateLimitException();\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:28: $exception = new RateLimitException('Hubspot rate limit', 30, $previous);\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:52: $exception = new RateLimitException('test', $input);\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:10:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:49: public function testPropagatesNonRateLimitExceptions(): void\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:103: throw new RateLimitException('rate limited', $retryAfter);\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:150: throw new RateLimitException('rate limited', 1);","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check retry/failure handling in GenerateActionItemsJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"RateLimitException\\|retryUntil\\|backoff\\|maxExceptions\\|maxTries\\|release\\|failed\" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -30","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"13:use Jiminny\\Exceptions\\RateLimitException;\n51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception\n56: $this->release(30);","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check retry/failure handling in GenerateAiCallScoringJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"RateLimitException\\|retryUntil\\|backoff\\|maxExceptions\\|maxTries\\|release\\|failed\" /Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php | head -30","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"17:use Jiminny\\Exceptions\\RateLimitException;\n68: RateLimitException |\n75: $this->release(30);","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check retry config in MatchActivityCrmData","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"retryAfter\\|RETRY_WINDOW\\|retryUntil\\|maxTries\" /Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"34: private const int RETRY_WINDOW_MINUTES = 30;\n45: public function retryUntil(): \\DateTimeInterface\n47: return now()->addMinutes(self::RETRY_WINDOW_MINUTES);\n77: return self::RETRY_WINDOW_MINUTES * 60 + 60;","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check the cache key format","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"getRateLimitCacheKey\\|hubspot:ratelimit\" /Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Client.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"78: $cacheKey = $this->getRateLimitCacheKey();\n110: private function getRateLimitCacheKey(): string\n112: return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find other jobs that might use the rate limit middleware","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"class.*Middleware\\|HandleHubspotRateLimit\" /Users/lukas/jiminny/app/app/Jobs --include=\"*.php\" | grep -v \"HandleHubspotRateLimit.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:18:use Jiminny\\Jobs\\Middleware\\HandleHubspotRateLimit;\n/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:42: return [new HandleHubspotRateLimit()];","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"HubspotClientInterface.php","depth":24,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-6437525840830717070
|
-8443668426046262077
|
visual_change
|
accessibility
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G)
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php
SaveTranscription.php
SetupLayout.php
SyncActivity.php
SyncFieldMetadata.php
SyncHubspotObjects.php
SyncLeads.php
SyncObjects.php
SyncOpportunitiesJob.php
SyncOpportunity.php
SyncProfileMetadata.php
SyncTeamFieldsJob.php
SyncTeamMetadata.php
UpdateOpportunitySpecifications.php
UpdateStage.php
DealRisks
Mailbox
MeetingBot
Middleware
HandleHubspotRateLimit.php
RateLimited.php
Streaming
Team
Telephony
User
BaseProcessingJob.php
DummyJob.php
ImportRecallAIRecordingsJob.php
ImportRemoteTrackJob.php
Job.php
JobDispatcher.php
JobDispatcherInterface.php
PurgeSoftDeletedOpportunityJob.php
SqsVisibilityControl.php
Listeners
Mail
Models
Activity
Ai
AskAnything
Calendar
Connection
Crm
Jobs
app
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
MySQL Section
MYSQL
MYSQL
MatchActivityCrmData.php, Editor Group 1
RateLimitException.php, Editor Group 1
HandleHubspotRateLimit.php, Editor Group 1
Client.php, Editor Group 1
HubspotPaginationService.php, Editor Group 1
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Middleware;
use Illuminate\Support\Facades\Log;
use Jiminny\Exceptions\RateLimitException;
/**
* Job middleware that catches RateLimitException from HubSpot API calls
* and releases the job back to the queue with the appropriate delay.
*/
class HandleHubspotRateLimit
{
private const int MAX_RETRY_DELAY = 600;
private const int MIN_RETRY_DELAY = 1;
private const int JITTER_SECONDS = 5;
public function handle(object $job, callable $next): void
{
try {
$next($job);
} catch (RateLimitException $e) {
$delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));
// Add jitter to prevent thundering herd problem by randomizing retry times
$delay += random_int(0, self::JITTER_SECONDS);
$attempts = $job->attempts();
if ($attempts <= 3 || $attempts % 10 === 0) {
Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [
'job_class' => $job::class,
'attempts' => $attempts,
'retry_after' => $e->getRetryAfter(),
'delay' => $delay,
]);
}
$job->release($delay);
}
}
}
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Middleware;
use Illuminate\Support\Facades\Log;
use Jiminny\Exceptions\RateLimitException;
/**
* Job middleware that catches RateLimitException from HubSpot API calls
* and releases the job back to the queue with the appropriate delay.
*/
class HandleHubspotRateLimit
{
private const int MAX_RETRY_DELAY = 600;
private const int MIN_RETRY_DELAY = 1;
private const int JITTER_SECONDS = 5;
public function handle(object $job, callable $next): void
{
try {
$next($job);
} catch (RateLimitException $e) {
$delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));
// Add jitter to prevent thundering herd problem by randomizing retry times
$delay += random_int(0, self::JITTER_SECONDS);
$attempts = $job->attempts();
if ($attempts <= 3 || $attempts % 10 === 0) {
Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [
'job_class' => $job::class,
'attempts' => $attempts,
'retry_after' => $e->getRetryAfter(),
'delay' => $delay,
]);
}
$job->release($delay);
}
}
}
Review rate limit handli…, Editor Group 2
remote
app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...
JY-20725-handle-HS-search-rate-limit*
app (Git) - Synchronize Changes
Errors: 6, Warnings: 9, Infos: 2
6
9
2
Notifications
key, PHP extension: Premium features not active.
Sign In
Sign In
Diff editor
Clear
Review rate limit handling for HubSpot job queue
Session history
New session
Message actions
RateLimitException.php#9-9
RateLimitException.php#9-9
Reveiw the diff. Mostly
@app/Jobs/Crm/MatchActivityCrmData.php
,
@app/Exceptions/RateLimitException.php
,
@app/Jobs/Middleware/HandleHubspotRateLimit.php
,
@app/Services/Crm/Hubspot/Client.php
and
@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php
. The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?
Thought for 5s
Thought for 5s
I'll review the implementation carefully. Let me first check how
RateLimitException
is used elsewhere and look at the test files and
PaginationState
.
Bash
Find all usages of RateLimitException outside the changed files
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/app --include="*.php" | grep -v "HandleHubspotRateLimit\|MatchActivityCrmData\|Client.php\|RateLimitException.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:17:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:68: RateLimitException |
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:15:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:58: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:19:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:76: RateLimitException |
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:50: * @throws RateLimitException When rate limit is hit
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:195: // RateLimitException and other exceptions are re-thrown as-is
Read
PaginationState.php
PaginationState.php
Read
HandleHubspotRateLimitTest.php
HandleHubspotRateLimitTest.php
Bash
Check how RateLimitException is used in GenerateActionItemsJob
IN
grep -rn "RateLimitException\|LogicException\|RuntimeException" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -20
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
Bash
Find all catch blocks or instanceof checks for RateLimitException
IN
grep -rn "catch.*RateLimitException\|instanceof RateLimitException" /Users/lukas/jiminny/app/app --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:11: * Job middleware that catches RateLimitException from HubSpot API calls
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:24: } catch (RateLimitException $e) {
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:149: if (! $e instanceof RateLimitException) {
Bash
Find all test references to RateLimitException
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/tests --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:13:#[CoversClass(RateLimitException::class)]
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:14:class RateLimitExceptionTest extends TestCase
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:18: $exception = new RateLimitException();
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:28: $exception = new RateLimitException('Hubspot rate limit', 30, $previous);
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:52: $exception = new RateLimitException('test', $input);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:10:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:49: public function testPropagatesNonRateLimitExceptions(): void
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:103: throw new RateLimitException('rate limited', $retryAfter);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:150: throw new RateLimitException('rate limited', 1);
Bash
Check retry/failure handling in GenerateActionItemsJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -30
Copy code to clipboard
OUT
13:use Jiminny\Exceptions\RateLimitException;
51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
56: $this->release(30);
Bash
Check retry/failure handling in GenerateAiCallScoringJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php | head -30
Copy code to clipboard
OUT
17:use Jiminny\Exceptions\RateLimitException;
68: RateLimitException |
75: $this->release(30);
Bash
Check retry config in MatchActivityCrmData
IN
grep -n "retryAfter\|RETRY_WINDOW\|retryUntil\|maxTries" /Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php
Copy code to clipboard
OUT
34: private const int RETRY_WINDOW_MINUTES = 30;
45: public function retryUntil(): \DateTimeInterface
47: return now()->addMinutes(self::RETRY_WINDOW_MINUTES);
77: return self::RETRY_WINDOW_MINUTES * 60 + 60;
Bash
Check the cache key format
IN
grep -n "getRateLimitCacheKey\|hubspot:ratelimit" /Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Client.php
Copy code to clipboard
OUT
78: $cacheKey = $this->getRateLimitCacheKey();
110: private function getRateLimitCacheKey(): string
112: return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());
Bash
Find other jobs that might use the rate limit middleware
IN
grep -rn "class.*Middleware\|HandleHubspotRateLimit" /Users/lukas/jiminny/app/app/Jobs --include="*.php" | grep -v "HandleHubspotRateLimit.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:18:use Jiminny\Jobs\Middleware\HandleHubspotRateLimit;
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:42: return [new HandleHubspotRateLimit()];
Read
HubspotClientInterface.php...
|
19538
|
NULL
|
NULL
|
NULL
|
|
19541
|
835
|
15
|
2026-05-11T13:01:40.687505+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778504500687_m2.jpg...
|
Code
|
Review rate limit handli… — app
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 12 pending changes
12
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php
SaveTranscription.php
SetupLayout.php
SyncActivity.php
SyncFieldMetadata.php
SyncHubspotObjects.php
SyncLeads.php
...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Explorer (⇧⌘E)","depth":19,"bounds":{"left":0.0,"top":0.047885075,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":true},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.057462092,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Search (⇧⌘F)","depth":19,"bounds":{"left":0.0,"top":0.08619314,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.09577015,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Source Control (⌃⇧G) - 12 pending changes","depth":19,"bounds":{"left":0.0,"top":0.1245012,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.13407822,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"12","depth":22,"bounds":{"left":0.00831117,"top":0.1452514,"width":0.003656915,"height":0.008778931},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.008643617,"top":0.14604948,"width":0.0016622341,"height":0.007980846}},{"char_start":1,"char_count":1,"bounds":{"left":0.009973404,"top":0.14604948,"width":0.0023271276,"height":0.007980846}}],"role_description":"text"},{"role":"AXRadioButton","text":"Run and Debug (⇧⌘D)","depth":19,"bounds":{"left":0.0,"top":0.16280925,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.17238627,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Remote Explorer","depth":19,"bounds":{"left":0.0,"top":0.20111732,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.21069433,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Extensions (⇧⌘X) - 2 require update","depth":19,"bounds":{"left":0.0,"top":0.23942538,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.2490024,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":22,"bounds":{"left":0.009640957,"top":0.2601756,"width":0.0019946808,"height":0.008778931},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Testing","depth":19,"bounds":{"left":0.0,"top":0.27773345,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.28731045,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Claude Code","depth":19,"bounds":{"left":0.0,"top":0.3160415,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"EXPLORER","depth":17,"bounds":{"left":0.022606382,"top":0.047885075,"width":0.018949468,"height":0.02793296},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"EXPLORER","depth":18,"bounds":{"left":0.022606382,"top":0.056664005,"width":0.018949468,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.022606382,"top":0.056664005,"width":0.0023271276,"height":0.0103751}},{"char_start":1,"char_count":7,"bounds":{"left":0.024933511,"top":0.056664005,"width":0.01662234,"height":0.0103751}}],"role_description":"text"},{"role":"AXButton","text":"Explorer Section: app","depth":21,"bounds":{"left":0.015957447,"top":0.07581804,"width":0.09940159,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.07821229,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"Explorer Section: app","depth":22,"bounds":{"left":0.022606382,"top":0.07581804,"width":0.0076462766,"height":0.017557861},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"APP","depth":23,"bounds":{"left":0.022606382,"top":0.079010375,"width":0.0076462766,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.0933759,"width":0.0063164895,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CheckAndRetryRemoteMatch.php","depth":27,"bounds":{"left":0.033909574,"top":0.0933759,"width":0.068484046,"height":0.011173184},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.0933759,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":27,"bounds":{"left":0.036901597,"top":0.0933759,"width":0.06549202,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.10853951,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateFollowupActivity.php","depth":27,"bounds":{"left":0.033909574,"top":0.110135674,"width":0.054853722,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.11093376,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":25,"bounds":{"left":0.036901597,"top":0.11093376,"width":0.051861703,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.12609737,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateNotes.php","depth":27,"bounds":{"left":0.033909574,"top":0.12769353,"width":0.034242023,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.12849163,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.036901597,"top":0.12849163,"width":0.03125,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.14365523,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivitiesToNewOpportunity.php","depth":27,"bounds":{"left":0.033909574,"top":0.1452514,"width":0.07712766,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.14604948,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":34,"bounds":{"left":0.037898935,"top":0.14604948,"width":0.07347074,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.16121309,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivityCrmData.php","depth":27,"bounds":{"left":0.033909574,"top":0.16280925,"width":0.054521278,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.16360734,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":23,"bounds":{"left":0.037898935,"top":0.16360734,"width":0.050531916,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.17877094,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"NoteObject.php","depth":27,"bounds":{"left":0.033909574,"top":0.18036711,"width":0.031914894,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.1811652,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":13,"bounds":{"left":0.03723404,"top":0.1811652,"width":0.028922873,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.1963288,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SaveActivity.php","depth":27,"bounds":{"left":0.033909574,"top":0.19792499,"width":0.03324468,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.19872306,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":15,"bounds":{"left":0.03656915,"top":0.19872306,"width":0.030585106,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.21388668,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SaveTranscription.php","depth":27,"bounds":{"left":0.033909574,"top":0.21548285,"width":0.04454787,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.21628092,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":20,"bounds":{"left":0.03656915,"top":0.21628092,"width":0.042220745,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.23144454,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SetupLayout.php","depth":27,"bounds":{"left":0.033909574,"top":0.2330407,"width":0.034242023,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.23383878,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.03656915,"top":0.23383878,"width":0.031914894,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.2490024,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncActivity.php","depth":27,"bounds":{"left":0.033909574,"top":0.25059855,"width":0.03357713,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.25139666,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":15,"bounds":{"left":0.03656915,"top":0.25139666,"width":0.030917553,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.26656026,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncFieldMetadata.php","depth":27,"bounds":{"left":0.033909574,"top":0.26815644,"width":0.047539894,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.26895452,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":20,"bounds":{"left":0.03656915,"top":0.26895452,"width":0.04488032,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.28411812,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncHubspotObjects.php","depth":27,"bounds":{"left":0.033909574,"top":0.2857143,"width":0.051861703,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.28651237,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":21,"bounds":{"left":0.03656915,"top":0.28651237,"width":0.04920213,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.30167598,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncLeads.php","depth":27,"bounds":{"left":0.033909574,"top":0.30327216,"width":0.030917553,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.30407023,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":12,"bounds":{"left":0.03656915,"top":0.30407023,"width":0.02825798,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.31923383,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"}]...
|
916884023156660040
|
6518982731655480738
|
idle
|
accessibility
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 12 pending changes
12
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php
SaveTranscription.php
SetupLayout.php
SyncActivity.php
SyncFieldMetadata.php
SyncHubspotObjects.php
SyncLeads.php
...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
19544
|
836
|
0
|
2026-05-11T13:02:33.360994+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778504553360_m1.jpg...
|
Code
|
Review rate limit handli… — app
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 12 pending changes
12
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php
SaveTranscription.php
SetupLayout.php
SyncActivity.php
SyncFieldMetadata.php
SyncHubspotObjects.php
SyncLeads.php
SyncObjects.php
SyncOpportunitiesJob.php
SyncOpportunity.php
SyncProfileMetadata.php
SyncTeamFieldsJob.php
SyncTeamMetadata.php
UpdateOpportunitySpecifications.php
UpdateStage.php
DealRisks
Mailbox
MeetingBot
Middleware
HandleHubspotRateLimit.php...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Explorer (⇧⌘E)","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":true},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Search (⇧⌘F)","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Source Control (⌃⇧G) - 12 pending changes","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"12","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Run and Debug (⇧⌘D)","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Remote Explorer","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Extensions (⇧⌘X) - 2 require update","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Testing","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Claude Code","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"EXPLORER","depth":17,"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"EXPLORER","depth":18,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Explorer Section: app","depth":21,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXStaticText","text":"","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"Explorer Section: app","depth":22,"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"APP","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CheckAndRetryRemoteMatch.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateFollowupActivity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateNotes.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivitiesToNewOpportunity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivityCrmData.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"NoteObject.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SaveActivity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SaveTranscription.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SetupLayout.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncActivity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncFieldMetadata.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncHubspotObjects.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncLeads.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncObjects.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncOpportunitiesJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncOpportunity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncProfileMetadata.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncTeamFieldsJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncTeamMetadata.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"UpdateOpportunitySpecifications.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"UpdateStage.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"DealRisks","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mailbox","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MeetingBot","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Middleware","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"HandleHubspotRateLimit.php","depth":27,"on_screen":true,"role_description":"text"}]...
|
1809176146852507724
|
-361672487638989557
|
click
|
accessibility
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 12 pending changes
12
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php
SaveTranscription.php
SetupLayout.php
SyncActivity.php
SyncFieldMetadata.php
SyncHubspotObjects.php
SyncLeads.php
SyncObjects.php
SyncOpportunitiesJob.php
SyncOpportunity.php
SyncProfileMetadata.php
SyncTeamFieldsJob.php
SyncTeamMetadata.php
UpdateOpportunitySpecifications.php
UpdateStage.php
DealRisks
Mailbox
MeetingBot
Middleware
HandleHubspotRateLimit.php...
|
19542
|
NULL
|
NULL
|
NULL
|
|
19548
|
836
|
1
|
2026-05-11T13:03:03.785628+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778504583785_m1.jpg...
|
Code
|
Review rate limit handli… — app
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 12 pending changes
12
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php
SaveTranscription.php
SetupLayout.php
SyncActivity.php
SyncFieldMetadata.php
SyncHubspotObjects.php
SyncLeads.php
SyncObjects.php
SyncOpportunitiesJob.php
SyncOpportunity.php
SyncProfileMetadata.php
SyncTeamFieldsJob.php
SyncTeamMetadata.php
UpdateOpportunitySpecifications.php
UpdateStage.php
DealRisks
Mailbox
MeetingBot
Middleware
HandleHubspotRateLimit.php
RateLimited.php
Streaming
Team
Telephony
User
BaseProcessingJob.php
DummyJob.php
ImportRecallAIRecordingsJob.php
ImportRemoteTrackJob.php
Job.php
JobDispatcher.php
JobDispatcherInterface.php
PurgeSoftDeletedOpportunityJob.php
SqsVisibilityControl.php
Listeners
Mail
Models
Activity
Ai
AskAnything
Calendar
Connection
Crm
Jobs
app
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
MySQL Section
MYSQL
MYSQL
MatchActivityCrmData.php, Editor Group 1
RateLimitException.php, Editor Group 1
HandleHubspotRateLimit.php, Editor Group 1
Client.php, Editor Group 1
HubspotPaginationService.php, Editor Group 1
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Middleware;
use Illuminate\Support\Facades\Log;
use Jiminny\Exceptions\RateLimitException;
/**
* Job middleware that catches RateLimitException from HubSpot API calls
* and releases the job back to the queue with the appropriate delay.
*/
class HandleHubspotRateLimit
{
private const int MAX_RETRY_DELAY = 600;
private const int MIN_RETRY_DELAY = 1;
private const int JITTER_SECONDS = 5;
public function handle(object $job, callable $next): void
{
try {
$next($job);
} catch (RateLimitException $e) {
$delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));
// Add jitter to prevent thundering herd problem by randomizing retry times
$delay += random_int(0, self::JITTER_SECONDS);
$attempts = $job->attempts();
if ($attempts <= 3 || $attempts % 10 === 0) {
Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [
'job_class' => $job::class,
'attempts' => $attempts,
'retry_after' => $e->getRetryAfter(),
'delay' => $delay,
]);
}
$job->release($delay);
}
}
}
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Middleware;
use Illuminate\Support\Facades\Log;
use Jiminny\Exceptions\RateLimitException;
/**
* Job middleware that catches RateLimitException from HubSpot API calls
* and releases the job back to the queue with the appropriate delay.
*/
class HandleHubspotRateLimit
{
private const int MAX_RETRY_DELAY = 600;
private const int MIN_RETRY_DELAY = 1;
private const int JITTER_SECONDS = 5;
public function handle(object $job, callable $next): void
{
try {
$next($job);
} catch (RateLimitException $e) {
$delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));
// Add jitter to prevent thundering herd problem by randomizing retry times
$delay += random_int(0, self::JITTER_SECONDS);
$attempts = $job->attempts();
if ($attempts <= 3 || $attempts % 10 === 0) {
Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [
'job_class' => $job::class,
'attempts' => $attempts,
'retry_after' => $e->getRetryAfter(),
'delay' => $delay,
]);
}
$job->release($delay);
}
}
}
Review rate limit handli…, Editor Group 2
remote
app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...
JY-20725-handle-HS-search-rate-limit*
app (Git) - Synchronize Changes
Errors: 6, Warnings: 9, Infos: 2
6
9
2
Notifications
key, PHP extension: Premium features not active.
Sign In
Sign In
Diff editor
Clear
Review rate limit handling for HubSpot job queue
Session history
New session
Message actions
RateLimitException.php#9-9
RateLimitException.php#9-9
Reveiw the diff. Mostly
@app/Jobs/Crm/MatchActivityCrmData.php
,
@app/Exceptions/RateLimitException.php
,
@app/Jobs/Middleware/HandleHubspotRateLimit.php
,
@app/Services/Crm/Hubspot/Client.php
and
@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php
. The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?
Thought for 5s
Thought for 5s
I'll review the implementation carefully. Let me first check how
RateLimitException
is used elsewhere and look at the test files and
PaginationState
.
Bash
Find all usages of RateLimitException outside the changed files
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/app --include="*.php" | grep -v "HandleHubspotRateLimit\|MatchActivityCrmData\|Client.php\|RateLimitException.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:17:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:68: RateLimitException |
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:15:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:58: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:19:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:76: RateLimitException |
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:50: * @throws RateLimitException When rate limit is hit
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:195: // RateLimitException and other exceptions are re-thrown as-is
Read
PaginationState.php
PaginationState.php
Read
HandleHubspotRateLimitTest.php
HandleHubspotRateLimitTest.php
Bash
Check how RateLimitException is used in GenerateActionItemsJob
IN
grep -rn "RateLimitException\|LogicException\|RuntimeException" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -20
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
Bash
Find all catch blocks or instanceof checks for RateLimitException
IN
grep -rn "catch.*RateLimitException\|instanceof RateLimitException" /Users/lukas/jiminny/app/app --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:11: * Job middleware that catches RateLimitException from HubSpot API calls
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:24: } catch (RateLimitException $e) {
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:149: if (! $e instanceof RateLimitException) {
Bash
Find all test references to RateLimitException
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/tests --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:13:#[CoversClass(RateLimitException::class)]
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:14:class RateLimitExceptionTest extends TestCase
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:18: $exception = new RateLimitException();
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:28: $exception = new RateLimitException('Hubspot rate limit', 30, $previous);
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:52: $exception = new RateLimitException('test', $input);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:10:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:49: public function testPropagatesNonRateLimitExceptions(): void
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:103: throw new RateLimitException('rate limited', $retryAfter);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:150: throw new RateLimitException('rate limited', 1);
Bash
Check retry/failure handling in GenerateActionItemsJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -30
Copy code to clipboard
OUT
13:use Jiminny\Exceptions\RateLimitException;
51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
56: $this->release(30);
Bash
Check retry/failure handling in GenerateAiCallScoringJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php | head -30
Copy code to clipboard
OUT
17:use Jiminny\Exceptions\RateLimitException;
68: RateLimitException |
75: $this->release(30);
Bash
Check retry config in MatchActivityCrmData
IN
grep -n "retryAfter\|RETRY_WINDOW\|retryUntil\|maxTries" /Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php
Copy code to clipboard
OUT
34: private const int RETRY_WINDOW_MINUTES = 30;
45: public function retryUntil(): \DateTimeInterface
47: return now()->addMinutes(self::RETRY_WINDOW_MINUTES);
77: return self::RETRY_WINDOW_MINUTES * 60 + 60;
Bash
Check the cache key format
IN
grep -n "getRateLimitCacheKey\|hubspot:ratelimit" /Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Client.php
Copy code to clipboard
OUT
78: $cacheKey = $this->getRateLimitCacheKey();
110: private function getRateLimitCacheKey(): string
112: return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());
Bash
Find other jobs that might use the rate limit middleware
IN
grep -rn "class.*Middleware\|HandleHubspotRateLimit" /Users/lukas/jiminny/app/app/Jobs --include="*.php" | grep -v "HandleHubspotRateLimit.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:18:use Jiminny\Jobs\Middleware\HandleHubspotRateLimit;
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:42: return [new HandleHubspotRateLimit()];
Read
HubspotClientInterface.php
HubspotClientInterface.php
Thought for 73s
Thought for 73s
Now I have a complete picture. Here's my full analysis:
Review Summary
Review Summary
RuntimeException vs LogicException — Safe ✓
RuntimeException
vs
LogicException
— Safe ✓
The change is semantically correct and won't break anything.
LogicException
is for programmer errors (invalid arguments, contract violations). A rate limit from an external API is a runtime condition —
RuntimeException
is the right parent. All callers catch...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Explorer (⇧⌘E)","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":true},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Search (⇧⌘F)","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Source Control (⌃⇧G) - 12 pending changes","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"12","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Run and Debug (⇧⌘D)","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Remote Explorer","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Extensions (⇧⌘X) - 2 require update","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Testing","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Claude Code","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"EXPLORER","depth":17,"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"EXPLORER","depth":18,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Explorer Section: app","depth":21,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXStaticText","text":"","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"Explorer Section: app","depth":22,"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"APP","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CheckAndRetryRemoteMatch.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateFollowupActivity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateNotes.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivitiesToNewOpportunity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivityCrmData.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"NoteObject.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SaveActivity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SaveTranscription.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SetupLayout.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncActivity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncFieldMetadata.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncHubspotObjects.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncLeads.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncObjects.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncOpportunitiesJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncOpportunity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncProfileMetadata.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncTeamFieldsJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncTeamMetadata.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"UpdateOpportunitySpecifications.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"UpdateStage.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"DealRisks","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mailbox","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MeetingBot","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Middleware","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"HandleHubspotRateLimit.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"RateLimited.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Streaming","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Team","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Telephony","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"User","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"BaseProcessingJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"DummyJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"ImportRecallAIRecordingsJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"ImportRemoteTrackJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Job.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JobDispatcher.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JobDispatcherInterface.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"PurgeSoftDeletedOpportunityJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SqsVisibilityControl.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Listeners","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mail","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Models","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Activity","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Ai","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"AskAnything","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Calendar","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Connection","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Crm","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Jobs","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"app","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Outline Section","depth":21,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"OUTLINE","depth":22,"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"OUTLINE","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Timeline Section","depth":21,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"TIMELINE","depth":22,"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"TIMELINE","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"MySQL Section","depth":21,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"MYSQL","depth":22,"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"MYSQL","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"MatchActivityCrmData.php, Editor Group 1","depth":28,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"RateLimitException.php, Editor Group 1","depth":28,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"HandleHubspotRateLimit.php, Editor Group 1","depth":28,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXRadioButton","text":"Client.php, Editor Group 1","depth":28,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"HubspotPaginationService.php, Editor Group 1","depth":28,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Middleware;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Exceptions\\RateLimitException;\n\n/**\n * Job middleware that catches RateLimitException from HubSpot API calls\n * and releases the job back to the queue with the appropriate delay.\n */\nclass HandleHubspotRateLimit\n{\n private const int MAX_RETRY_DELAY = 600;\n private const int MIN_RETRY_DELAY = 1;\n private const int JITTER_SECONDS = 5;\n\n public function handle(object $job, callable $next): void\n {\n try {\n $next($job);\n } catch (RateLimitException $e) {\n $delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));\n // Add jitter to prevent thundering herd problem by randomizing retry times\n $delay += random_int(0, self::JITTER_SECONDS);\n\n $attempts = $job->attempts();\n if ($attempts <= 3 || $attempts % 10 === 0) {\n Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [\n 'job_class' => $job::class,\n 'attempts' => $attempts,\n 'retry_after' => $e->getRetryAfter(),\n 'delay' => $delay,\n ]);\n }\n\n $job->release($delay);\n }\n }\n}","depth":28,"on_screen":true,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Middleware;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Exceptions\\RateLimitException;\n\n/**\n * Job middleware that catches RateLimitException from HubSpot API calls\n * and releases the job back to the queue with the appropriate delay.\n */\nclass HandleHubspotRateLimit\n{\n private const int MAX_RETRY_DELAY = 600;\n private const int MIN_RETRY_DELAY = 1;\n private const int JITTER_SECONDS = 5;\n\n public function handle(object $job, callable $next): void\n {\n try {\n $next($job);\n } catch (RateLimitException $e) {\n $delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));\n // Add jitter to prevent thundering herd problem by randomizing retry times\n $delay += random_int(0, self::JITTER_SECONDS);\n\n $attempts = $job->attempts();\n if ($attempts <= 3 || $attempts % 10 === 0) {\n Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [\n 'job_class' => $job::class,\n 'attempts' => $attempts,\n 'retry_after' => $e->getRetryAfter(),\n 'delay' => $delay,\n ]);\n }\n\n $job->release($delay);\n }\n }\n}","role_description":"editor","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Middleware;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Exceptions\\RateLimitException;\n\n/**\n * Job middleware that catches RateLimitException from HubSpot API calls\n * and releases the job back to the queue with the appropriate delay.\n */\nclass HandleHubspotRateLimit\n{\n private const int MAX_RETRY_DELAY = 600;\n private const int MIN_RETRY_DELAY = 1;\n private const int JITTER_SECONDS = 5;\n\n public function handle(object $job, callable $next): void\n {\n try {\n $next($job);\n } catch (RateLimitException $e) {\n $delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));\n // Add jitter to prevent thundering herd problem by randomizing retry times\n $delay += random_int(0, self::JITTER_SECONDS);\n\n $attempts = $job->attempts();\n if ($attempts <= 3 || $attempts % 10 === 0) {\n Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [\n 'job_class' => $job::class,\n 'attempts' => $attempts,\n 'retry_after' => $e->getRetryAfter(),\n 'delay' => $delay,\n ]);\n }\n\n $job->release($delay);\n }\n }\n}","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Review rate limit handli…, Editor Group 2","depth":28,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXButton","text":"remote","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JY-20725-handle-HS-search-rate-limit*","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"app (Git) - Synchronize Changes","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Errors: 6, Warnings: 9, Infos: 2","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"6","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"9","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Notifications","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"key, PHP extension: Premium features not active.","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sign In","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Sign In","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Diff editor","depth":12,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Clear","depth":12,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Review rate limit handling for HubSpot job queue","depth":19,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Session history","depth":19,"on_screen":true,"help_text":"Session history","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New session","depth":19,"on_screen":true,"help_text":"New session","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Message actions","depth":24,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"RateLimitException.php#9-9","depth":23,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"RateLimitException.php#9-9","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Reveiw the diff. Mostly","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Jobs/Crm/MatchActivityCrmData.php","depth":26,"on_screen":false,"help_text":"Open app/Jobs/Crm/MatchActivityCrmData.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Exceptions/RateLimitException.php","depth":26,"on_screen":false,"help_text":"Open app/Exceptions/RateLimitException.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Jobs/Middleware/HandleHubspotRateLimit.php","depth":26,"on_screen":false,"help_text":"Open app/Jobs/Middleware/HandleHubspotRateLimit.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Services/Crm/Hubspot/Client.php","depth":26,"on_screen":false,"help_text":"Open app/Services/Crm/Hubspot/Client.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"and","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php","depth":26,"on_screen":false,"help_text":"Open app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":". The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Thought for 5s","depth":23,"on_screen":false,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thought for 5s","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"I'll review the implementation carefully. Let me first check how","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is used elsewhere and look at the test files and","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"PaginationState","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":".","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find all usages of RateLimitException outside the changed files","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"RateLimitException\" /Users/lukas/jiminny/app/app --include=\"*.php\" | grep -v \"HandleHubspotRateLimit\\|MatchActivityCrmData\\|Client.php\\|RateLimitException.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception\n/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:17:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:68: RateLimitException |\n/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:15:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:58: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception\n/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:19:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:76: RateLimitException |\n/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:8:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:50: * @throws RateLimitException When rate limit is hit\n/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:195: // RateLimitException and other exceptions are re-thrown as-is","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"PaginationState.php","depth":24,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"PaginationState.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"HandleHubspotRateLimitTest.php","depth":24,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"HandleHubspotRateLimitTest.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check how RateLimitException is used in GenerateActionItemsJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"RateLimitException\\|LogicException\\|RuntimeException\" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -20","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find all catch blocks or instanceof checks for RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"catch.*RateLimitException\\|instanceof RateLimitException\" /Users/lukas/jiminny/app/app --include=\"*.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:11: * Job middleware that catches RateLimitException from HubSpot API calls\n/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:24: } catch (RateLimitException $e) {\n/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:149: if (! $e instanceof RateLimitException) {","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find all test references to RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"RateLimitException\" /Users/lukas/jiminny/app/tests --include=\"*.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:8:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:13:#[CoversClass(RateLimitException::class)]\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:14:class RateLimitExceptionTest extends TestCase\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:18: $exception = new RateLimitException();\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:28: $exception = new RateLimitException('Hubspot rate limit', 30, $previous);\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:52: $exception = new RateLimitException('test', $input);\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:10:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:49: public function testPropagatesNonRateLimitExceptions(): void\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:103: throw new RateLimitException('rate limited', $retryAfter);\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:150: throw new RateLimitException('rate limited', 1);","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check retry/failure handling in GenerateActionItemsJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"RateLimitException\\|retryUntil\\|backoff\\|maxExceptions\\|maxTries\\|release\\|failed\" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -30","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"13:use Jiminny\\Exceptions\\RateLimitException;\n51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception\n56: $this->release(30);","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check retry/failure handling in GenerateAiCallScoringJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"RateLimitException\\|retryUntil\\|backoff\\|maxExceptions\\|maxTries\\|release\\|failed\" /Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php | head -30","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"17:use Jiminny\\Exceptions\\RateLimitException;\n68: RateLimitException |\n75: $this->release(30);","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check retry config in MatchActivityCrmData","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"retryAfter\\|RETRY_WINDOW\\|retryUntil\\|maxTries\" /Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"34: private const int RETRY_WINDOW_MINUTES = 30;\n45: public function retryUntil(): \\DateTimeInterface\n47: return now()->addMinutes(self::RETRY_WINDOW_MINUTES);\n77: return self::RETRY_WINDOW_MINUTES * 60 + 60;","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check the cache key format","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"getRateLimitCacheKey\\|hubspot:ratelimit\" /Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Client.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"78: $cacheKey = $this->getRateLimitCacheKey();\n110: private function getRateLimitCacheKey(): string\n112: return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find other jobs that might use the rate limit middleware","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"class.*Middleware\\|HandleHubspotRateLimit\" /Users/lukas/jiminny/app/app/Jobs --include=\"*.php\" | grep -v \"HandleHubspotRateLimit.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:18:use Jiminny\\Jobs\\Middleware\\HandleHubspotRateLimit;\n/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:42: return [new HandleHubspotRateLimit()];","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"HubspotClientInterface.php","depth":24,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"HubspotClientInterface.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Thought for 73s","depth":23,"on_screen":false,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thought for 73s","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Now I have a complete picture. Here's my full analysis:","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"Review Summary","depth":22,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"Review Summary","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"RuntimeException vs LogicException — Safe ✓","depth":22,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"RuntimeException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"vs","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"LogicException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"— Safe ✓","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"The change is semantically correct and won't break anything.","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"LogicException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is for programmer errors (invalid arguments, contract violations). A rate limit from an external API is a runtime condition —","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RuntimeException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is the right parent. All callers catch","depth":23,"on_screen":false,"role_description":"text"}]...
|
-3876235435317021294
|
-7290746783450483517
|
idle
|
accessibility
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 12 pending changes
12
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php
SaveTranscription.php
SetupLayout.php
SyncActivity.php
SyncFieldMetadata.php
SyncHubspotObjects.php
SyncLeads.php
SyncObjects.php
SyncOpportunitiesJob.php
SyncOpportunity.php
SyncProfileMetadata.php
SyncTeamFieldsJob.php
SyncTeamMetadata.php
UpdateOpportunitySpecifications.php
UpdateStage.php
DealRisks
Mailbox
MeetingBot
Middleware
HandleHubspotRateLimit.php
RateLimited.php
Streaming
Team
Telephony
User
BaseProcessingJob.php
DummyJob.php
ImportRecallAIRecordingsJob.php
ImportRemoteTrackJob.php
Job.php
JobDispatcher.php
JobDispatcherInterface.php
PurgeSoftDeletedOpportunityJob.php
SqsVisibilityControl.php
Listeners
Mail
Models
Activity
Ai
AskAnything
Calendar
Connection
Crm
Jobs
app
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
MySQL Section
MYSQL
MYSQL
MatchActivityCrmData.php, Editor Group 1
RateLimitException.php, Editor Group 1
HandleHubspotRateLimit.php, Editor Group 1
Client.php, Editor Group 1
HubspotPaginationService.php, Editor Group 1
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Middleware;
use Illuminate\Support\Facades\Log;
use Jiminny\Exceptions\RateLimitException;
/**
* Job middleware that catches RateLimitException from HubSpot API calls
* and releases the job back to the queue with the appropriate delay.
*/
class HandleHubspotRateLimit
{
private const int MAX_RETRY_DELAY = 600;
private const int MIN_RETRY_DELAY = 1;
private const int JITTER_SECONDS = 5;
public function handle(object $job, callable $next): void
{
try {
$next($job);
} catch (RateLimitException $e) {
$delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));
// Add jitter to prevent thundering herd problem by randomizing retry times
$delay += random_int(0, self::JITTER_SECONDS);
$attempts = $job->attempts();
if ($attempts <= 3 || $attempts % 10 === 0) {
Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [
'job_class' => $job::class,
'attempts' => $attempts,
'retry_after' => $e->getRetryAfter(),
'delay' => $delay,
]);
}
$job->release($delay);
}
}
}
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Middleware;
use Illuminate\Support\Facades\Log;
use Jiminny\Exceptions\RateLimitException;
/**
* Job middleware that catches RateLimitException from HubSpot API calls
* and releases the job back to the queue with the appropriate delay.
*/
class HandleHubspotRateLimit
{
private const int MAX_RETRY_DELAY = 600;
private const int MIN_RETRY_DELAY = 1;
private const int JITTER_SECONDS = 5;
public function handle(object $job, callable $next): void
{
try {
$next($job);
} catch (RateLimitException $e) {
$delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));
// Add jitter to prevent thundering herd problem by randomizing retry times
$delay += random_int(0, self::JITTER_SECONDS);
$attempts = $job->attempts();
if ($attempts <= 3 || $attempts % 10 === 0) {
Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [
'job_class' => $job::class,
'attempts' => $attempts,
'retry_after' => $e->getRetryAfter(),
'delay' => $delay,
]);
}
$job->release($delay);
}
}
}
Review rate limit handli…, Editor Group 2
remote
app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...
JY-20725-handle-HS-search-rate-limit*
app (Git) - Synchronize Changes
Errors: 6, Warnings: 9, Infos: 2
6
9
2
Notifications
key, PHP extension: Premium features not active.
Sign In
Sign In
Diff editor
Clear
Review rate limit handling for HubSpot job queue
Session history
New session
Message actions
RateLimitException.php#9-9
RateLimitException.php#9-9
Reveiw the diff. Mostly
@app/Jobs/Crm/MatchActivityCrmData.php
,
@app/Exceptions/RateLimitException.php
,
@app/Jobs/Middleware/HandleHubspotRateLimit.php
,
@app/Services/Crm/Hubspot/Client.php
and
@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php
. The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?
Thought for 5s
Thought for 5s
I'll review the implementation carefully. Let me first check how
RateLimitException
is used elsewhere and look at the test files and
PaginationState
.
Bash
Find all usages of RateLimitException outside the changed files
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/app --include="*.php" | grep -v "HandleHubspotRateLimit\|MatchActivityCrmData\|Client.php\|RateLimitException.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:17:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:68: RateLimitException |
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:15:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:58: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:19:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:76: RateLimitException |
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:50: * @throws RateLimitException When rate limit is hit
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:195: // RateLimitException and other exceptions are re-thrown as-is
Read
PaginationState.php
PaginationState.php
Read
HandleHubspotRateLimitTest.php
HandleHubspotRateLimitTest.php
Bash
Check how RateLimitException is used in GenerateActionItemsJob
IN
grep -rn "RateLimitException\|LogicException\|RuntimeException" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -20
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
Bash
Find all catch blocks or instanceof checks for RateLimitException
IN
grep -rn "catch.*RateLimitException\|instanceof RateLimitException" /Users/lukas/jiminny/app/app --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:11: * Job middleware that catches RateLimitException from HubSpot API calls
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:24: } catch (RateLimitException $e) {
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:149: if (! $e instanceof RateLimitException) {
Bash
Find all test references to RateLimitException
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/tests --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:13:#[CoversClass(RateLimitException::class)]
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:14:class RateLimitExceptionTest extends TestCase
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:18: $exception = new RateLimitException();
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:28: $exception = new RateLimitException('Hubspot rate limit', 30, $previous);
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:52: $exception = new RateLimitException('test', $input);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:10:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:49: public function testPropagatesNonRateLimitExceptions(): void
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:103: throw new RateLimitException('rate limited', $retryAfter);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:150: throw new RateLimitException('rate limited', 1);
Bash
Check retry/failure handling in GenerateActionItemsJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -30
Copy code to clipboard
OUT
13:use Jiminny\Exceptions\RateLimitException;
51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
56: $this->release(30);
Bash
Check retry/failure handling in GenerateAiCallScoringJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php | head -30
Copy code to clipboard
OUT
17:use Jiminny\Exceptions\RateLimitException;
68: RateLimitException |
75: $this->release(30);
Bash
Check retry config in MatchActivityCrmData
IN
grep -n "retryAfter\|RETRY_WINDOW\|retryUntil\|maxTries" /Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php
Copy code to clipboard
OUT
34: private const int RETRY_WINDOW_MINUTES = 30;
45: public function retryUntil(): \DateTimeInterface
47: return now()->addMinutes(self::RETRY_WINDOW_MINUTES);
77: return self::RETRY_WINDOW_MINUTES * 60 + 60;
Bash
Check the cache key format
IN
grep -n "getRateLimitCacheKey\|hubspot:ratelimit" /Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Client.php
Copy code to clipboard
OUT
78: $cacheKey = $this->getRateLimitCacheKey();
110: private function getRateLimitCacheKey(): string
112: return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());
Bash
Find other jobs that might use the rate limit middleware
IN
grep -rn "class.*Middleware\|HandleHubspotRateLimit" /Users/lukas/jiminny/app/app/Jobs --include="*.php" | grep -v "HandleHubspotRateLimit.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:18:use Jiminny\Jobs\Middleware\HandleHubspotRateLimit;
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:42: return [new HandleHubspotRateLimit()];
Read
HubspotClientInterface.php
HubspotClientInterface.php
Thought for 73s
Thought for 73s
Now I have a complete picture. Here's my full analysis:
Review Summary
Review Summary
RuntimeException vs LogicException — Safe ✓
RuntimeException
vs
LogicException
— Safe ✓
The change is semantically correct and won't break anything.
LogicException
is for programmer errors (invalid arguments, contract violations). A rate limit from an external API is a runtime condition —
RuntimeException
is the right parent. All callers catch...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
19550
|
836
|
2
|
2026-05-11T13:03:16.922083+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778504596922_m1.jpg...
|
Code
|
Review rate limit handli… — app
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 12 pending changes
12
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php
SaveTranscription.php
SetupLayout.php
SyncActivity.php
SyncFieldMetadata.php
SyncHubspotObjects.php
SyncLeads.php
SyncObjects.php
SyncOpportunitiesJob.php
SyncOpportunity.php
SyncProfileMetadata.php
SyncTeamFieldsJob.php
SyncTeamMetadata.php
UpdateOpportunitySpecifications.php
UpdateStage.php
DealRisks
Mailbox...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Explorer (⇧⌘E)","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":true},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Search (⇧⌘F)","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Source Control (⌃⇧G) - 12 pending changes","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"12","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Run and Debug (⇧⌘D)","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Remote Explorer","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Extensions (⇧⌘X) - 2 require update","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Testing","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Claude Code","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"EXPLORER","depth":17,"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"EXPLORER","depth":18,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Explorer Section: app","depth":21,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXStaticText","text":"","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"Explorer Section: app","depth":22,"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"APP","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CheckAndRetryRemoteMatch.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateFollowupActivity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateNotes.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivitiesToNewOpportunity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivityCrmData.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"NoteObject.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SaveActivity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SaveTranscription.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SetupLayout.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncActivity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncFieldMetadata.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncHubspotObjects.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncLeads.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncObjects.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncOpportunitiesJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncOpportunity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncProfileMetadata.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncTeamFieldsJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncTeamMetadata.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"UpdateOpportunitySpecifications.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"UpdateStage.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"DealRisks","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mailbox","depth":27,"on_screen":true,"role_description":"text"}]...
|
4590549504781786450
|
-289614930175392509
|
click
|
accessibility
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 12 pending changes
12
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php
SaveTranscription.php
SetupLayout.php
SyncActivity.php
SyncFieldMetadata.php
SyncHubspotObjects.php
SyncLeads.php
SyncObjects.php
SyncOpportunitiesJob.php
SyncOpportunity.php
SyncProfileMetadata.php
SyncTeamFieldsJob.php
SyncTeamMetadata.php
UpdateOpportunitySpecifications.php
UpdateStage.php
DealRisks
Mailbox...
|
19548
|
NULL
|
NULL
|
NULL
|
|
19553
|
836
|
3
|
2026-05-11T13:03:23.271578+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778504603271_m1.jpg...
|
Code
|
Review rate limit handli… — app
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 12 pending changes
12
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Explorer (⇧⌘E)","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":true},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Search (⇧⌘F)","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Source Control (⌃⇧G) - 12 pending changes","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"12","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Run and Debug (⇧⌘D)","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Remote Explorer","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Extensions (⇧⌘X) - 2 require update","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Testing","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Claude Code","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"EXPLORER","depth":17,"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"EXPLORER","depth":18,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Explorer Section: app","depth":21,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXStaticText","text":"","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"Explorer Section: app","depth":22,"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"APP","depth":23,"on_screen":true,"role_description":"text"}]...
|
-7907117005282730636
|
-686774202464516952
|
click
|
hybrid
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 12 pending changes
12
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
SlackFileEditViewGoHistoryWindowHelpAPPDOCKER₴81DEV (docker)₴2APP (-zsh)-zsh* @param string SobjectType The object type('deals''companies''contacts''cal)* @param array<string, mixed>Spayload Thesearch payload with filters, sorts, prop‹* @return array The search response with'results''total''paging'keys* @throws RateLimitException When rate limit is hit* @throws HubspotException On API errors** @return array The search response with 'results', 'total', 'paging' keys*/public function search(string SobjectType, array Spayload): arrayend diff4) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation)begin diff --/home/jiminny/app/Console/Commands/JiminnyDebugCommand.php+++/home/jiminny/app/Console/Commands/JiminnyDebugCommand.php-359,11+359,11 @ScrmService = ScrmResolver->prepareCrmService);-//-/1for ($i = 0; si < 3; Si++) {if (Si % 250) {Sthis->info("Syncing opportunity {Si}");Sthis->info("Matching contact {$i}");-1/-1/.+++++ScrmService->syncOpportunity('374720564');if ($i % 25=0{//Sthis->info("Syncing opportunity {$i}");Sthis->info("Matching contact {$i}");////}ScrmService->syncOpportunity('374720564');$crmService->matchByName('Robot');end diffFixed 4 of 5666 files in 146.870 seconds, 60.00 MB memory usedWhat's next:Try Docker Debug for seamless, persistent debugging tools in any containeror image →Learn more at https://docs.docker.com/go/debug-cli/lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-lirHomeDMsActivityFilesLater..•More(abl•[Platform) Refinemen... now100%8• Mon 11 May 16:03:23→[Platform] Refinement •now - 16:00-17:00Ci Join Google MeetJiminny ...# contusion-clinic# curiosity_lab# engineering# general# jiminny-bg# platform-tickets# product_launches# random# releases# sofia-office# support# thank-yous# the_people_of_jimi...• MessagesC FilesBookmarks+^ Direct messagesP. Aneliya Angelova®. Galya DimitrovaPetko Kashinski&. Stefka StoyanovaVasil Vasilev&. Nikolay IvanovAneliya Angelova, ...Stoyan Tanev• VesE Lukas Kovalik y... 020832): RemoveToday ~ ok 4.0 and 4.1 models(#506) (steliyan-g)NewGitHub APP 2:13 PM9 new commits pushed to master by ilian-jiminny861859d2 - Stop sending signals to datadog forincresed/ decreased workers.23ad2bb1 - Drop usage of RunForSeconds.3aedca4a - Generage Workerld on the fly.86cb0855 - ignore-missing-request-id-on-transcript Handle wrong format for assemblytranscriptions, this happends for old activitiesthat had a different provider and were updatedto point to Assembly when the providers weredeleted49ca4dfe - ignore-missing-request-id-on-transcript added log importShow morejiminny/app| Added by GitHubCircleCI APP 2:38 PMDeployment Successful!Project: appWhen:05/11/202611:38:14Tag:View JobE:: AppsS Jira CloudToastGanala Cala112Message #releases+..•...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
19558
|
836
|
4
|
2026-05-11T13:03:54.895696+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778504634895_m1.jpg...
|
Code
|
✻ [Claude Code] MatchActivityCrmDataTest.php (Matc ✻ [Claude Code] MatchActivityCrmDataTest.php (MatchActivityCrmDataTest.php) — app...
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 12 pending changes
12
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php
SaveTranscription.php
SetupLayout.php
SyncActivity.php
SyncFieldMetadata.php
SyncHubspotObjects.php
SyncLeads.php
SyncObjects.php
SyncOpportunitiesJob.php
SyncOpportunity.php
SyncProfileMetadata.php
SyncTeamFieldsJob.php
SyncTeamMetadata.php
UpdateOpportunitySpecifications.php
UpdateStage.php
DealRisks
Mailbox
MeetingBot
Middleware
HandleHubspotRateLimit.php
RateLimited.php
Streaming
Team
Telephony
User
BaseProcessingJob.php
DummyJob.php
ImportRecallAIRecordingsJob.php
ImportRemoteTrackJob.php
Job.php
JobDispatcher.php
JobDispatcherInterface.php
PurgeSoftDeletedOpportunityJob.php
SqsVisibilityControl.php
Listeners
Mail
Models
Activity
Ai
AskAnything
Calendar
Connection
Crm
Jobs
app
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
MySQL Section
MYSQL
MYSQL
MatchActivityCrmData.php, Editor Group 1
RateLimitException.php, Editor Group 1
HandleHubspotRateLimit.php, Editor Group 1
✻ [Claude Code] MatchActivityCrmDataTest.php (MatchActivityCrmDataTest.php), Editor Group 1
Client.php, Editor Group 1
HubspotPaginationService.php, Editor Group 1
Review rate limit handli…, Editor Group 2
remote
app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...
JY-20725-handle-HS-search-rate-limit*
app (Git) - Synchronize Changes
Errors: 6, Warnings: 11, Infos: 2
6
11
2
Notifications
key, PHP extension: Premium features not active.
8.3, Language Level: 8.3
Sign In
Sign In
PHP
LF
UTF-8
Spaces: 4
Ln 180, Col 1
Diff editor
Clear
Review rate limit handling for HubSpot job queue
Session history
New session
Message actions
RateLimitException.php#9-9
RateLimitException.php#9-9
Reveiw the diff. Mostly
@app/Jobs/Crm/MatchActivityCrmData.php
,
@app/Exceptions/RateLimitException.php
,
@app/Jobs/Middleware/HandleHubspotRateLimit.php
,
@app/Services/Crm/Hubspot/Client.php
and
@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php
. The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?
Thought for 5s
Thought for 5s
I'll review the implementation carefully. Let me first check how
RateLimitException
is used elsewhere and look at the test files and
PaginationState
.
Bash
Find all usages of RateLimitException outside the changed files
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/app --include="*.php" | grep -v "HandleHubspotRateLimit\|MatchActivityCrmData\|Client.php\|RateLimitException.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:17:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:68: RateLimitException |
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:15:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:58: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:19:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:76: RateLimitException |
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:50: * @throws RateLimitException When rate limit is hit
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:195: // RateLimitException and other exceptions are re-thrown as-is
Read
PaginationState.php
PaginationState.php
Read
HandleHubspotRateLimitTest.php
HandleHubspotRateLimitTest.php
Bash
Check how RateLimitException is used in GenerateActionItemsJob
IN
grep -rn "RateLimitException\|LogicException\|RuntimeException" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -20
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
Bash
Find all catch blocks or instanceof checks for RateLimitException
IN
grep -rn "catch.*RateLimitException\|instanceof RateLimitException" /Users/lukas/jiminny/app/app --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:11: * Job middleware that catches RateLimitException from HubSpot API calls
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:24: } catch (RateLimitException $e) {
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:149: if (! $e instanceof RateLimitException) {
Bash
Find all test references to RateLimitException
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/tests --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:13:#[CoversClass(RateLimitException::class)]
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:14:class RateLimitExceptionTest extends TestCase
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:18: $exception = new RateLimitException();
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:28: $exception = new RateLimitException('Hubspot rate limit', 30, $previous);
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:52: $exception = new RateLimitException('test', $input);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:10:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:49: public function testPropagatesNonRateLimitExceptions(): void
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:103: throw new RateLimitException('rate limited', $retryAfter);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:150: throw new RateLimitException('rate limited', 1);
Bash
Check retry/failure handling in GenerateActionItemsJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -30
Copy code to clipboard
OUT
13:use Jiminny\Exceptions\RateLimitException;
51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
56: $this->release(30);
Bash
Check retry/failure handling in GenerateAiCallScoringJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php | head -30
Copy code to clipboard
OUT
17:use Jiminny\Exceptions\RateLimitException;
68: RateLimitException |
75: $this->release(30);
Bash
Check retry config in MatchActivityCrmData
IN
grep -n "retryAfter\|RETRY_WINDOW\|retryUntil\|maxTries" /Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php
Copy code to clipboard
OUT
34: private const int RETRY_WINDOW_MINUTES = 30;
45: public function retryUntil(): \DateTimeInterface
47: return now()->addMinutes(self::RETRY_WINDOW_MINUTES);
77: return self::RETRY_WINDOW_MINUTES * 60 + 60;
Bash
Check the cache key format
IN
grep -n "getRateLimitCacheKey\|hubspot:ratelimit" /Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Client.php
Copy code to clipboard
OUT
78: $cacheKey = $this->getRateLimitCacheKey();
110: private function getRateLimitCacheKey(): string
112: return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());
Bash
Find other jobs that might use the rate limit middleware
IN
grep -rn "class.*Middleware\|HandleHubspotRateLimit" /Users/lukas/jiminny/app/app/Jobs --include="*.php" | grep -v "HandleHubspotRateLimit.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:18:use Jiminny\Jobs\Middleware\HandleHubspotRateLimit;
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:42: return [new HandleHubspotRateLimit()];
Read
HubspotClientInterface.php
HubspotClientInterface.php
Thought for 73s
Thought for 73s
Now I have a complete picture. Here's my full analysis:
Review Summary
Review Summary
RuntimeException vs LogicException — Safe ✓
RuntimeException
vs
LogicException
— Safe ✓
The change is semantically correct and won't break anything.
LogicException
is for programmer errors (invalid arguments, contract violations). A rate limit from an external API is a runtime condition —
RuntimeException
is the right parent. All callers catch
RateLimitException
by name explicitly (union catches in
GenerateActionItemsJob
,
GenerateAiCallScoringJob
,
SummarizeTranscriptionJob
,
GenerateAiActivityTypeJob
) or check
instanceof RateLimitException
— none relies on the parent class type, so nothing breaks.
Issue 1 — Circuit breaker stores stale delay (most important bug)
Issue 1 — Circuit breaker stores stale delay (most important bug)
Client.php:94
Client.php:94
Copy code to clipboard
Redis::setex($cacheKey, $retryAfter, (string) $retryAfter);
The TTL is
$retryAfter
seconds, but the
stored value
is also the original
$retryAfter
. If a second job reads this cache 20 seconds later, it throws
RateLimitException(retryAfter=30)
and gets delayed 30 more seconds — even though only 10 remain. In a spike of 100 jobs, each subsequent job inflates its wait.
Fix:
store the absolute expiry timestamp, reconstruct the remaining delay when reading:
Copy code to clipboard
// on 429:
Redis::setex($cacheKey, $retryAfter, (string) (time() + $retryAfter));
// in the cached-read branch:
$remaining = max(1, (int) $cachedRetryAfter - time());
throw new RateLimitException('Hubspot rate limit (cached circuit-breaker)', $remaining);
Issue 2 — retryUntil() window may expire under sustained rate limiting
Issue 2 —
retryUntil()
window may expire under sustained rate limiting
MatchActivityCrmData.php:45-47
MatchActivityCrmData.php:45-47
retryUntil()
is calculated as
now() + 30 min
at
dispatch time
and stored in the job payload. With
MAX_RETRY_DELAY = 600s
, you only get ~3 rate-limit-triggered releases before the 30-minute window closes and the job is permanently failed. For a heavy 429 spike (daily limit, parsed as 600s), this can easily happen.
Consider increasing
RETRY_WINDOW_MINUTES
to 60 or more, or making it configurable. The
uniqueFor()
value should be updated to match.
Issue 3 — Only search() uses the circuit breaker, but other methods can still hit 429
Issue 3 — Only
search()
uses the circuit breaker, but other methods can still hit 429
Client.php:76-108
Client.php:76-108
executeRequest()
is only called from
search()
. Methods like
getOpportunityById()
,
batchReadObjects()
,
getContactByEmail()
bypass it entirely. If HubSpot's 429 is account-wide (not search-endpoint-specific), those methods will keep firing even while the circuit breaker is supposedly open. This is likely fine because the search endpoint has its own tighter quota (5 RPS), but it's worth being explicit in a comment.
Issue 4 — object $job type in middleware has no compile-time safety
Issue 4 —
object $job
type in middleware has no compile-time safety
HandleHubspotRateLimit.php:20
HandleHubspotRateLimit.php:20
Copy code to clipboard
public function handle(object $job, callable $next): void
Calling
$job->attempts()
and
$job->release()
on
object
will work at runtime since Laravel always passes jobs that use
InteractsWithQueue
, but PHPStan/psalm won't verify this and it could silently break in tests with bare mocks (as your test does use a
Job
mock that has
attempts()
— so the test is fine, but the real type contract is invisible). Minor, but worth tightening to
\Illuminate\Contracts\Queue\Job
.
What works well ✓
What works well ✓
RateLimitException
is caught by the middleware
before
it increments
maxExceptions
, so rate-limit releases don't consume the 3-exception budget for real failures.
The middleware's jitter (
random_int(0, 5)
) prevents thundering herd on release.
The log-sampling logic (
attempts <= 3 || attempts % 10 === 0
) keeps logs useful without flooding.
ShouldBeUnique
+
uniqueFor()
correctly prevents duplicate jobs queuing up during the rate-limit wait window.
RateLimitException
propagates cleanly through the DB transaction (rolled back), then through the job catch block (logged conditionally), then to the middleware which handles it.
The pagination service re-throws
RateLimitException
as-is and resets pagination state on the next job attempt — safe because offset restarts from 0.
Message actions
Expand on 1 and 2. Let's consider there are several jobs running from ten workers. They are out fired instantly, and therefore there is no cache when they look for cache, but once they receive 429, they store cache. Can there be some potential issues with that flow?
Thought for 91s
Thought for 91s
Let me trace the exact race conditions step by step.
Wave 1 — The Initial Burst (t=0)
Wave 1 — The Initial Burst (t=0)
All 10 workers execute simultaneously. Each does:
Copy code to clipboard
$cachedRetryAfter = Redis::get($cacheKey); // ALL TEN: null — cache miss
Cache doesn't exist yet, so all 10 proceed and hammer HubSpot's search endpoint simultaneously. HubSpot's search limit is 5 RPS per portal — 10 concurrent requests guarantees 429s. All 10 get 429, all 10 run:
Copy code to clipboard
Redis::setex($cacheKey, $retryAfter, (string) $retryAfter); // e.g. TTL=10, value="10"
throw new RateLimitException('Hubspot returned 429', $retryAfter, $e);
All 10 write the same key at nearly the same millisecond. Redis just accepts last-write-wins — no error, no coordination, 10 redundant writes. Then all 10 are caught by the middleware and released:
Copy code to clipboard...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Explorer (⇧⌘E)","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":true},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Search (⇧⌘F)","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Source Control (⌃⇧G) - 12 pending changes","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"12","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Run and Debug (⇧⌘D)","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Remote Explorer","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Extensions (⇧⌘X) - 2 require update","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Testing","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Claude Code","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"EXPLORER","depth":17,"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"EXPLORER","depth":18,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Explorer Section: app","depth":21,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXStaticText","text":"","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"Explorer Section: app","depth":22,"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"APP","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CheckAndRetryRemoteMatch.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateFollowupActivity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateNotes.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivitiesToNewOpportunity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivityCrmData.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"NoteObject.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SaveActivity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SaveTranscription.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SetupLayout.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncActivity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncFieldMetadata.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncHubspotObjects.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncLeads.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncObjects.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncOpportunitiesJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncOpportunity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncProfileMetadata.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncTeamFieldsJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncTeamMetadata.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"UpdateOpportunitySpecifications.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"UpdateStage.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"DealRisks","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mailbox","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MeetingBot","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Middleware","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"HandleHubspotRateLimit.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"RateLimited.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Streaming","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Team","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Telephony","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"User","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"BaseProcessingJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"DummyJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"ImportRecallAIRecordingsJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"ImportRemoteTrackJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Job.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JobDispatcher.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JobDispatcherInterface.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"PurgeSoftDeletedOpportunityJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SqsVisibilityControl.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Listeners","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mail","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Models","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Activity","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Ai","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"AskAnything","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Calendar","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Connection","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Crm","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Jobs","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"app","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Outline Section","depth":21,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"OUTLINE","depth":22,"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"OUTLINE","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Timeline Section","depth":21,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"TIMELINE","depth":22,"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"TIMELINE","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"MySQL Section","depth":21,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"MYSQL","depth":22,"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"MYSQL","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"MatchActivityCrmData.php, Editor Group 1","depth":28,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"RateLimitException.php, Editor Group 1","depth":28,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"HandleHubspotRateLimit.php, Editor Group 1","depth":28,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✻ [Claude Code] MatchActivityCrmDataTest.php (MatchActivityCrmDataTest.php), Editor Group 1","depth":28,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXRadioButton","text":"Client.php, Editor Group 1","depth":28,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"HubspotPaginationService.php, Editor Group 1","depth":28,"on_screen":false,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Review rate limit handli…, Editor Group 2","depth":28,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXButton","text":"remote","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JY-20725-handle-HS-search-rate-limit*","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"app (Git) - Synchronize Changes","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Errors: 6, Warnings: 11, Infos: 2","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"6","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"11","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Notifications","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"key, PHP extension: Premium features not active.","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"8.3, Language Level: 8.3","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sign In","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Sign In","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"PHP","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"LF","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"UTF-8","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Spaces: 4","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Ln 180, Col 1","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Diff editor","depth":12,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Clear","depth":12,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Review rate limit handling for HubSpot job queue","depth":19,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Session history","depth":19,"on_screen":true,"help_text":"Session history","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New session","depth":19,"on_screen":true,"help_text":"New session","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Message actions","depth":24,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"RateLimitException.php#9-9","depth":23,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"RateLimitException.php#9-9","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Reveiw the diff. Mostly","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Jobs/Crm/MatchActivityCrmData.php","depth":26,"on_screen":false,"help_text":"Open app/Jobs/Crm/MatchActivityCrmData.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Exceptions/RateLimitException.php","depth":26,"on_screen":false,"help_text":"Open app/Exceptions/RateLimitException.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Jobs/Middleware/HandleHubspotRateLimit.php","depth":26,"on_screen":false,"help_text":"Open app/Jobs/Middleware/HandleHubspotRateLimit.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Services/Crm/Hubspot/Client.php","depth":26,"on_screen":false,"help_text":"Open app/Services/Crm/Hubspot/Client.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"and","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php","depth":26,"on_screen":false,"help_text":"Open app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":". The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Thought for 5s","depth":23,"on_screen":false,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thought for 5s","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"I'll review the implementation carefully. Let me first check how","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is used elsewhere and look at the test files and","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"PaginationState","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":".","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find all usages of RateLimitException outside the changed files","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"RateLimitException\" /Users/lukas/jiminny/app/app --include=\"*.php\" | grep -v \"HandleHubspotRateLimit\\|MatchActivityCrmData\\|Client.php\\|RateLimitException.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception\n/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:17:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:68: RateLimitException |\n/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:15:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:58: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception\n/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:19:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:76: RateLimitException |\n/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:8:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:50: * @throws RateLimitException When rate limit is hit\n/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:195: // RateLimitException and other exceptions are re-thrown as-is","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"PaginationState.php","depth":24,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"PaginationState.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"HandleHubspotRateLimitTest.php","depth":24,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"HandleHubspotRateLimitTest.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check how RateLimitException is used in GenerateActionItemsJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"RateLimitException\\|LogicException\\|RuntimeException\" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -20","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find all catch blocks or instanceof checks for RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"catch.*RateLimitException\\|instanceof RateLimitException\" /Users/lukas/jiminny/app/app --include=\"*.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:11: * Job middleware that catches RateLimitException from HubSpot API calls\n/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:24: } catch (RateLimitException $e) {\n/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:149: if (! $e instanceof RateLimitException) {","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find all test references to RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"RateLimitException\" /Users/lukas/jiminny/app/tests --include=\"*.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:8:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:13:#[CoversClass(RateLimitException::class)]\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:14:class RateLimitExceptionTest extends TestCase\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:18: $exception = new RateLimitException();\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:28: $exception = new RateLimitException('Hubspot rate limit', 30, $previous);\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:52: $exception = new RateLimitException('test', $input);\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:10:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:49: public function testPropagatesNonRateLimitExceptions(): void\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:103: throw new RateLimitException('rate limited', $retryAfter);\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:150: throw new RateLimitException('rate limited', 1);","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check retry/failure handling in GenerateActionItemsJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"RateLimitException\\|retryUntil\\|backoff\\|maxExceptions\\|maxTries\\|release\\|failed\" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -30","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"13:use Jiminny\\Exceptions\\RateLimitException;\n51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception\n56: $this->release(30);","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check retry/failure handling in GenerateAiCallScoringJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"RateLimitException\\|retryUntil\\|backoff\\|maxExceptions\\|maxTries\\|release\\|failed\" /Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php | head -30","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"17:use Jiminny\\Exceptions\\RateLimitException;\n68: RateLimitException |\n75: $this->release(30);","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check retry config in MatchActivityCrmData","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"retryAfter\\|RETRY_WINDOW\\|retryUntil\\|maxTries\" /Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"34: private const int RETRY_WINDOW_MINUTES = 30;\n45: public function retryUntil(): \\DateTimeInterface\n47: return now()->addMinutes(self::RETRY_WINDOW_MINUTES);\n77: return self::RETRY_WINDOW_MINUTES * 60 + 60;","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check the cache key format","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"getRateLimitCacheKey\\|hubspot:ratelimit\" /Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Client.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"78: $cacheKey = $this->getRateLimitCacheKey();\n110: private function getRateLimitCacheKey(): string\n112: return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find other jobs that might use the rate limit middleware","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"class.*Middleware\\|HandleHubspotRateLimit\" /Users/lukas/jiminny/app/app/Jobs --include=\"*.php\" | grep -v \"HandleHubspotRateLimit.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:18:use Jiminny\\Jobs\\Middleware\\HandleHubspotRateLimit;\n/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:42: return [new HandleHubspotRateLimit()];","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"HubspotClientInterface.php","depth":24,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"HubspotClientInterface.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Thought for 73s","depth":23,"on_screen":false,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thought for 73s","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Now I have a complete picture. Here's my full analysis:","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"Review Summary","depth":22,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"Review Summary","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"RuntimeException vs LogicException — Safe ✓","depth":22,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"RuntimeException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"vs","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"LogicException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"— Safe ✓","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"The change is semantically correct and won't break anything.","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"LogicException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is for programmer errors (invalid arguments, contract violations). A rate limit from an external API is a runtime condition —","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RuntimeException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is the right parent. All callers catch","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"by name explicitly (union catches in","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"GenerateActionItemsJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"GenerateAiCallScoringJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"SummarizeTranscriptionJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"GenerateAiActivityTypeJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":") or check","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"instanceof RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"— none relies on the parent class type, so nothing breaks.","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"Issue 1 — Circuit breaker stores stale delay (most important bug)","depth":22,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"Issue 1 — Circuit breaker stores stale delay (most important bug)","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"Client.php:94","depth":23,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Client.php:94","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":23,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Redis::setex($cacheKey, $retryAfter, (string) $retryAfter);","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"The TTL is","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"$retryAfter","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"seconds, but the","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"stored value","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is also the original","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"$retryAfter","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":". If a second job reads this cache 20 seconds later, it throws","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RateLimitException(retryAfter=30)","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"and gets delayed 30 more seconds — even though only 10 remain. In a spike of 100 jobs, each subsequent job inflates its wait.","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Fix:","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"store the absolute expiry timestamp, reconstruct the remaining delay when reading:","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":23,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"// on 429:\nRedis::setex($cacheKey, $retryAfter, (string) (time() + $retryAfter));\n\n// in the cached-read branch:\n$remaining = max(1, (int) $cachedRetryAfter - time());\nthrow new RateLimitException('Hubspot rate limit (cached circuit-breaker)', $remaining);","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"Issue 2 — retryUntil() window may expire under sustained rate limiting","depth":22,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"Issue 2 —","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"retryUntil()","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"window may expire under sustained rate limiting","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"MatchActivityCrmData.php:45-47","depth":23,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"MatchActivityCrmData.php:45-47","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"retryUntil()","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is calculated as","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"now() + 30 min","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"at","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"dispatch time","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"and stored in the job payload. With","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"MAX_RETRY_DELAY = 600s","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":", you only get ~3 rate-limit-triggered releases before the 30-minute window closes and the job is permanently failed. For a heavy 429 spike (daily limit, parsed as 600s), this can easily happen.","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Consider increasing","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RETRY_WINDOW_MINUTES","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"to 60 or more, or making it configurable. The","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"uniqueFor()","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"value should be updated to match.","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"Issue 3 — Only search() uses the circuit breaker, but other methods can still hit 429","depth":22,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"Issue 3 — Only","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"search()","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"uses the circuit breaker, but other methods can still hit 429","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"Client.php:76-108","depth":23,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Client.php:76-108","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"executeRequest()","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is only called from","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"search()","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":". Methods like","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"getOpportunityById()","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"batchReadObjects()","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"getContactByEmail()","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"bypass it entirely. If HubSpot's 429 is account-wide (not search-endpoint-specific), those methods will keep firing even while the circuit breaker is supposedly open. This is likely fine because the search endpoint has its own tighter quota (5 RPS), but it's worth being explicit in a comment.","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"Issue 4 — object $job type in middleware has no compile-time safety","depth":22,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"Issue 4 —","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"object $job","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"type in middleware has no compile-time safety","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"HandleHubspotRateLimit.php:20","depth":23,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"HandleHubspotRateLimit.php:20","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":23,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"public function handle(object $job, callable $next): void","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Calling","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"$job->attempts()","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"and","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"$job->release()","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"on","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"object","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"will work at runtime since Laravel always passes jobs that use","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"InteractsWithQueue","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":", but PHPStan/psalm won't verify this and it could silently break in tests with bare mocks (as your test does use a","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Job","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"mock that has","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"attempts()","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"— so the test is fine, but the real type contract is invisible). Minor, but worth tightening to","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"\\Illuminate\\Contracts\\Queue\\Job","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":".","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"What works well ✓","depth":22,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"What works well ✓","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RateLimitException","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is caught by the middleware","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"before","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"it increments","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"maxExceptions","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":", so rate-limit releases don't consume the 3-exception budget for real failures.","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"The middleware's jitter (","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"random_int(0, 5)","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":") prevents thundering herd on release.","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"The log-sampling logic (","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"attempts <= 3 || attempts % 10 === 0","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":") keeps logs useful without flooding.","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"ShouldBeUnique","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"+","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"uniqueFor()","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"correctly prevents duplicate jobs queuing up during the rate-limit wait window.","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RateLimitException","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"propagates cleanly through the DB transaction (rolled back), then through the job catch block (logged conditionally), then to the middleware which handles it.","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"The pagination service re-throws","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RateLimitException","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"as-is and resets pagination state on the next job attempt — safe because offset restarts from 0.","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Message actions","depth":24,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Expand on 1 and 2. Let's consider there are several jobs running from ten workers. They are out fired instantly, and therefore there is no cache when they look for cache, but once they receive 429, they store cache. Can there be some potential issues with that flow?","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Thought for 91s","depth":23,"on_screen":false,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thought for 91s","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Let me trace the exact race conditions step by step.","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"Wave 1 — The Initial Burst (t=0)","depth":22,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"Wave 1 — The Initial Burst (t=0)","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"All 10 workers execute simultaneously. Each does:","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":23,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"$cachedRetryAfter = Redis::get($cacheKey); // ALL TEN: null — cache miss","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Cache doesn't exist yet, so all 10 proceed and hammer HubSpot's search endpoint simultaneously. HubSpot's search limit is 5 RPS per portal — 10 concurrent requests guarantees 429s. All 10 get 429, all 10 run:","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":23,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Redis::setex($cacheKey, $retryAfter, (string) $retryAfter); // e.g. TTL=10, value=\"10\"\nthrow new RateLimitException('Hubspot returned 429', $retryAfter, $e);","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"All 10 write the same key at nearly the same millisecond. Redis just accepts last-write-wins — no error, no coordination, 10 redundant writes. Then all 10 are caught by the middleware and released:","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":23,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-4645553520253047315
|
2085268111633454659
|
idle
|
accessibility
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 12 pending changes
12
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php
SaveTranscription.php
SetupLayout.php
SyncActivity.php
SyncFieldMetadata.php
SyncHubspotObjects.php
SyncLeads.php
SyncObjects.php
SyncOpportunitiesJob.php
SyncOpportunity.php
SyncProfileMetadata.php
SyncTeamFieldsJob.php
SyncTeamMetadata.php
UpdateOpportunitySpecifications.php
UpdateStage.php
DealRisks
Mailbox
MeetingBot
Middleware
HandleHubspotRateLimit.php
RateLimited.php
Streaming
Team
Telephony
User
BaseProcessingJob.php
DummyJob.php
ImportRecallAIRecordingsJob.php
ImportRemoteTrackJob.php
Job.php
JobDispatcher.php
JobDispatcherInterface.php
PurgeSoftDeletedOpportunityJob.php
SqsVisibilityControl.php
Listeners
Mail
Models
Activity
Ai
AskAnything
Calendar
Connection
Crm
Jobs
app
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
MySQL Section
MYSQL
MYSQL
MatchActivityCrmData.php, Editor Group 1
RateLimitException.php, Editor Group 1
HandleHubspotRateLimit.php, Editor Group 1
✻ [Claude Code] MatchActivityCrmDataTest.php (MatchActivityCrmDataTest.php), Editor Group 1
Client.php, Editor Group 1
HubspotPaginationService.php, Editor Group 1
Review rate limit handli…, Editor Group 2
remote
app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...
JY-20725-handle-HS-search-rate-limit*
app (Git) - Synchronize Changes
Errors: 6, Warnings: 11, Infos: 2
6
11
2
Notifications
key, PHP extension: Premium features not active.
8.3, Language Level: 8.3
Sign In
Sign In
PHP
LF
UTF-8
Spaces: 4
Ln 180, Col 1
Diff editor
Clear
Review rate limit handling for HubSpot job queue
Session history
New session
Message actions
RateLimitException.php#9-9
RateLimitException.php#9-9
Reveiw the diff. Mostly
@app/Jobs/Crm/MatchActivityCrmData.php
,
@app/Exceptions/RateLimitException.php
,
@app/Jobs/Middleware/HandleHubspotRateLimit.php
,
@app/Services/Crm/Hubspot/Client.php
and
@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php
. The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?
Thought for 5s
Thought for 5s
I'll review the implementation carefully. Let me first check how
RateLimitException
is used elsewhere and look at the test files and
PaginationState
.
Bash
Find all usages of RateLimitException outside the changed files
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/app --include="*.php" | grep -v "HandleHubspotRateLimit\|MatchActivityCrmData\|Client.php\|RateLimitException.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:17:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:68: RateLimitException |
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:15:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:58: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:19:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:76: RateLimitException |
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:50: * @throws RateLimitException When rate limit is hit
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:195: // RateLimitException and other exceptions are re-thrown as-is
Read
PaginationState.php
PaginationState.php
Read
HandleHubspotRateLimitTest.php
HandleHubspotRateLimitTest.php
Bash
Check how RateLimitException is used in GenerateActionItemsJob
IN
grep -rn "RateLimitException\|LogicException\|RuntimeException" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -20
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
Bash
Find all catch blocks or instanceof checks for RateLimitException
IN
grep -rn "catch.*RateLimitException\|instanceof RateLimitException" /Users/lukas/jiminny/app/app --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:11: * Job middleware that catches RateLimitException from HubSpot API calls
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:24: } catch (RateLimitException $e) {
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:149: if (! $e instanceof RateLimitException) {
Bash
Find all test references to RateLimitException
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/tests --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:13:#[CoversClass(RateLimitException::class)]
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:14:class RateLimitExceptionTest extends TestCase
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:18: $exception = new RateLimitException();
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:28: $exception = new RateLimitException('Hubspot rate limit', 30, $previous);
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:52: $exception = new RateLimitException('test', $input);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:10:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:49: public function testPropagatesNonRateLimitExceptions(): void
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:103: throw new RateLimitException('rate limited', $retryAfter);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:150: throw new RateLimitException('rate limited', 1);
Bash
Check retry/failure handling in GenerateActionItemsJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -30
Copy code to clipboard
OUT
13:use Jiminny\Exceptions\RateLimitException;
51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
56: $this->release(30);
Bash
Check retry/failure handling in GenerateAiCallScoringJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php | head -30
Copy code to clipboard
OUT
17:use Jiminny\Exceptions\RateLimitException;
68: RateLimitException |
75: $this->release(30);
Bash
Check retry config in MatchActivityCrmData
IN
grep -n "retryAfter\|RETRY_WINDOW\|retryUntil\|maxTries" /Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php
Copy code to clipboard
OUT
34: private const int RETRY_WINDOW_MINUTES = 30;
45: public function retryUntil(): \DateTimeInterface
47: return now()->addMinutes(self::RETRY_WINDOW_MINUTES);
77: return self::RETRY_WINDOW_MINUTES * 60 + 60;
Bash
Check the cache key format
IN
grep -n "getRateLimitCacheKey\|hubspot:ratelimit" /Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Client.php
Copy code to clipboard
OUT
78: $cacheKey = $this->getRateLimitCacheKey();
110: private function getRateLimitCacheKey(): string
112: return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());
Bash
Find other jobs that might use the rate limit middleware
IN
grep -rn "class.*Middleware\|HandleHubspotRateLimit" /Users/lukas/jiminny/app/app/Jobs --include="*.php" | grep -v "HandleHubspotRateLimit.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:18:use Jiminny\Jobs\Middleware\HandleHubspotRateLimit;
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:42: return [new HandleHubspotRateLimit()];
Read
HubspotClientInterface.php
HubspotClientInterface.php
Thought for 73s
Thought for 73s
Now I have a complete picture. Here's my full analysis:
Review Summary
Review Summary
RuntimeException vs LogicException — Safe ✓
RuntimeException
vs
LogicException
— Safe ✓
The change is semantically correct and won't break anything.
LogicException
is for programmer errors (invalid arguments, contract violations). A rate limit from an external API is a runtime condition —
RuntimeException
is the right parent. All callers catch
RateLimitException
by name explicitly (union catches in
GenerateActionItemsJob
,
GenerateAiCallScoringJob
,
SummarizeTranscriptionJob
,
GenerateAiActivityTypeJob
) or check
instanceof RateLimitException
— none relies on the parent class type, so nothing breaks.
Issue 1 — Circuit breaker stores stale delay (most important bug)
Issue 1 — Circuit breaker stores stale delay (most important bug)
Client.php:94
Client.php:94
Copy code to clipboard
Redis::setex($cacheKey, $retryAfter, (string) $retryAfter);
The TTL is
$retryAfter
seconds, but the
stored value
is also the original
$retryAfter
. If a second job reads this cache 20 seconds later, it throws
RateLimitException(retryAfter=30)
and gets delayed 30 more seconds — even though only 10 remain. In a spike of 100 jobs, each subsequent job inflates its wait.
Fix:
store the absolute expiry timestamp, reconstruct the remaining delay when reading:
Copy code to clipboard
// on 429:
Redis::setex($cacheKey, $retryAfter, (string) (time() + $retryAfter));
// in the cached-read branch:
$remaining = max(1, (int) $cachedRetryAfter - time());
throw new RateLimitException('Hubspot rate limit (cached circuit-breaker)', $remaining);
Issue 2 — retryUntil() window may expire under sustained rate limiting
Issue 2 —
retryUntil()
window may expire under sustained rate limiting
MatchActivityCrmData.php:45-47
MatchActivityCrmData.php:45-47
retryUntil()
is calculated as
now() + 30 min
at
dispatch time
and stored in the job payload. With
MAX_RETRY_DELAY = 600s
, you only get ~3 rate-limit-triggered releases before the 30-minute window closes and the job is permanently failed. For a heavy 429 spike (daily limit, parsed as 600s), this can easily happen.
Consider increasing
RETRY_WINDOW_MINUTES
to 60 or more, or making it configurable. The
uniqueFor()
value should be updated to match.
Issue 3 — Only search() uses the circuit breaker, but other methods can still hit 429
Issue 3 — Only
search()
uses the circuit breaker, but other methods can still hit 429
Client.php:76-108
Client.php:76-108
executeRequest()
is only called from
search()
. Methods like
getOpportunityById()
,
batchReadObjects()
,
getContactByEmail()
bypass it entirely. If HubSpot's 429 is account-wide (not search-endpoint-specific), those methods will keep firing even while the circuit breaker is supposedly open. This is likely fine because the search endpoint has its own tighter quota (5 RPS), but it's worth being explicit in a comment.
Issue 4 — object $job type in middleware has no compile-time safety
Issue 4 —
object $job
type in middleware has no compile-time safety
HandleHubspotRateLimit.php:20
HandleHubspotRateLimit.php:20
Copy code to clipboard
public function handle(object $job, callable $next): void
Calling
$job->attempts()
and
$job->release()
on
object
will work at runtime since Laravel always passes jobs that use
InteractsWithQueue
, but PHPStan/psalm won't verify this and it could silently break in tests with bare mocks (as your test does use a
Job
mock that has
attempts()
— so the test is fine, but the real type contract is invisible). Minor, but worth tightening to
\Illuminate\Contracts\Queue\Job
.
What works well ✓
What works well ✓
RateLimitException
is caught by the middleware
before
it increments
maxExceptions
, so rate-limit releases don't consume the 3-exception budget for real failures.
The middleware's jitter (
random_int(0, 5)
) prevents thundering herd on release.
The log-sampling logic (
attempts <= 3 || attempts % 10 === 0
) keeps logs useful without flooding.
ShouldBeUnique
+
uniqueFor()
correctly prevents duplicate jobs queuing up during the rate-limit wait window.
RateLimitException
propagates cleanly through the DB transaction (rolled back), then through the job catch block (logged conditionally), then to the middleware which handles it.
The pagination service re-throws
RateLimitException
as-is and resets pagination state on the next job attempt — safe because offset restarts from 0.
Message actions
Expand on 1 and 2. Let's consider there are several jobs running from ten workers. They are out fired instantly, and therefore there is no cache when they look for cache, but once they receive 429, they store cache. Can there be some potential issues with that flow?
Thought for 91s
Thought for 91s
Let me trace the exact race conditions step by step.
Wave 1 — The Initial Burst (t=0)
Wave 1 — The Initial Burst (t=0)
All 10 workers execute simultaneously. Each does:
Copy code to clipboard
$cachedRetryAfter = Redis::get($cacheKey); // ALL TEN: null — cache miss
Cache doesn't exist yet, so all 10 proceed and hammer HubSpot's search endpoint simultaneously. HubSpot's search limit is 5 RPS per portal — 10 concurrent requests guarantees 429s. All 10 get 429, all 10 run:
Copy code to clipboard
Redis::setex($cacheKey, $retryAfter, (string) $retryAfter); // e.g. TTL=10, value="10"
throw new RateLimitException('Hubspot returned 429', $retryAfter, $e);
All 10 write the same key at nearly the same millisecond. Redis just accepts last-write-wins — no error, no coordination, 10 redundant writes. Then all 10 are caught by the middleware and released:
Copy code to clipboard...
|
19553
|
NULL
|
NULL
|
NULL
|
|
19560
|
836
|
5
|
2026-05-11T13:04:25.235242+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778504665235_m1.jpg...
|
Code
|
✻ [Claude Code] MatchActivityCrmDataTest.php (Matc ✻ [Claude Code] MatchActivityCrmDataTest.php (MatchActivityCrmDataTest.php) — app...
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 12 pending changes
12
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php
SaveTranscription.php
SetupLayout.php
SyncActivity.php
SyncFieldMetadata.php
SyncHubspotObjects.php
SyncLeads.php
SyncObjects.php
SyncOpportunitiesJob.php
SyncOpportunity.php
SyncProfileMetadata.php
SyncTeamFieldsJob.php
SyncTeamMetadata.php
UpdateOpportunitySpecifications.php
UpdateStage.php
DealRisks
Mailbox
MeetingBot
Middleware
HandleHubspotRateLimit.php
RateLimited.php
Streaming
Team
Telephony
User
BaseProcessingJob.php
DummyJob.php
ImportRecallAIRecordingsJob.php
ImportRemoteTrackJob.php
Job.php
JobDispatcher.php
JobDispatcherInterface.php
PurgeSoftDeletedOpportunityJob.php
SqsVisibilityControl.php
Listeners
Mail
Models
Activity
Ai
AskAnything
Calendar
Connection
Crm
Jobs
app
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
MySQL Section
MYSQL
MYSQL
MatchActivityCrmData.php, Editor Group 1
RateLimitException.php, Editor Group 1
HandleHubspotRateLimit.php, Editor Group 1
✻ [Claude Code] MatchActivityCrmDataTest.php (MatchActivityCrmDataTest.php), Editor Group 1
Client.php, Editor Group 1
HubspotPaginationService.php, Editor Group 1
Review rate limit handli…, Editor Group 2
remote
app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...
JY-20725-handle-HS-search-rate-limit*
app (Git) - Synchronize Changes
Errors: 6, Warnings: 11, Infos: 2
6
11
2
Notifications
key, PHP extension: Premium features not active.
8.3, Language Level: 8.3
Sign In
Sign In
PHP
LF
UTF-8
Spaces: 4
Ln 180, Col 1
Diff editor
Clear
Review rate limit handling for HubSpot job queue
Session history
New session
Message actions
RateLimitException.php#9-9
RateLimitException.php#9-9
Reveiw the diff. Mostly
@app/Jobs/Crm/MatchActivityCrmData.php
,
@app/Exceptions/RateLimitException.php
,
@app/Jobs/Middleware/HandleHubspotRateLimit.php
,
@app/Services/Crm/Hubspot/Client.php
and
@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php
. The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?
Thought for 5s
Thought for 5s
I'll review the implementation carefully. Let me first check how
RateLimitException
is used elsewhere and look at the test files and
PaginationState
.
Bash
Find all usages of RateLimitException outside the changed files
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/app --include="*.php" | grep -v "HandleHubspotRateLimit\|MatchActivityCrmData\|Client.php\|RateLimitException.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:17:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:68: RateLimitException |
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:15:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:58: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:19:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:76: RateLimitException |
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:50: * @throws RateLimitException When rate limit is hit
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:195: // RateLimitException and other exceptions are re-thrown as-is
Read
PaginationState.php
PaginationState.php
Read
HandleHubspotRateLimitTest.php
HandleHubspotRateLimitTest.php
Bash
Check how RateLimitException is used in GenerateActionItemsJob
IN
grep -rn "RateLimitException\|LogicException\|RuntimeException" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -20
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
Bash
Find all catch blocks or instanceof checks for RateLimitException
IN
grep -rn "catch.*RateLimitException\|instanceof RateLimitException" /Users/lukas/jiminny/app/app --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:11: * Job middleware that catches RateLimitException from HubSpot API calls
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:24: } catch (RateLimitException $e) {
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:149: if (! $e instanceof RateLimitException) {
Bash
Find all test references to RateLimitException
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/tests --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:13:#[CoversClass(RateLimitException::class)]
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:14:class RateLimitExceptionTest extends TestCase
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:18: $exception = new RateLimitException();
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:28: $exception = new RateLimitException('Hubspot rate limit', 30, $previous);
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:52: $exception = new RateLimitException('test', $input);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:10:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:49: public function testPropagatesNonRateLimitExceptions(): void
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:103: throw new RateLimitException('rate limited', $retryAfter);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:150: throw new RateLimitException('rate limited', 1);
Bash
Check retry/failure handling in GenerateActionItemsJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -30
Copy code to clipboard
OUT
13:use Jiminny\Exceptions\RateLimitException;
51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
56: $this->release(30);
Bash
Check retry/failure handling in GenerateAiCallScoringJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php | head -30
Copy code to clipboard
OUT
17:use Jiminny\Exceptions\RateLimitException;
68: RateLimitException |
75: $this->release(30);
Bash
Check retry config in MatchActivityCrmData
IN
grep -n "retryAfter\|RETRY_WINDOW\|retryUntil\|maxTries" /Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php
Copy code to clipboard
OUT
34: private const int RETRY_WINDOW_MINUTES = 30;
45: public function retryUntil(): \DateTimeInterface
47: return now()->addMinutes(self::RETRY_WINDOW_MINUTES);
77: return self::RETRY_WINDOW_MINUTES * 60 + 60;
Bash
Check the cache key format
IN
grep -n "getRateLimitCacheKey\|hubspot:ratelimit" /Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Client.php
Copy code to clipboard
OUT
78: $cacheKey = $this->getRateLimitCacheKey();
110: private function getRateLimitCacheKey(): string
112: return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());
Bash
Find other jobs that might use the rate limit middleware
IN
grep -rn "class.*Middleware\|HandleHubspotRateLimit" /Users/lukas/jiminny/app/app/Jobs --include="*.php" | grep -v "HandleHubspotRateLimit.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:18:use Jiminny\Jobs\Middleware\HandleHubspotRateLimit;
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:42: return [new HandleHubspotRateLimit()];
Read
HubspotClientInterface.php
HubspotClientInterface.php
Thought for 73s
Thought for 73s
Now I have a complete picture. Here's my full analysis:
Review Summary
Review Summary
RuntimeException vs LogicException — Safe ✓
RuntimeException
vs
LogicException
— Safe ✓
The change is semantically correct and won't break anything.
LogicException
is for programmer errors (invalid arguments, contract violations). A rate limit from an external API is a runtime condition —
RuntimeException
is the right parent. All callers catch
RateLimitException
by name explicitly (union catches in
GenerateActionItemsJob
,
GenerateAiCallScoringJob
,
SummarizeTranscriptionJob
,
GenerateAiActivityTypeJob
) or check
instanceof RateLimitException
— none relies on the parent class type, so nothing breaks.
Issue 1 — Circuit breaker stores stale delay (most important bug)
Issue 1 — Circuit breaker stores stale delay (most important bug)
Client.php:94
Client.php:94
Copy code to clipboard
Redis::setex($cacheKey, $retryAfter, (string) $retryAfter);
The TTL is
$retryAfter
seconds, but the
stored value
is also the original
$retryAfter
. If a second job reads this cache 20 seconds later, it throws
RateLimitException(retryAfter=30)
and gets delayed 30 more seconds — even though only 10 remain. In a spike of 100 jobs, each subsequent job inflates its wait.
Fix:
store the absolute expiry timestamp, reconstruct the remaining delay when reading:
Copy code to clipboard
// on 429:
Redis::setex($cacheKey, $retryAfter, (string) (time() + $retryAfter));
// in the cached-read branch:
$remaining = max(1, (int) $cachedRetryAfter - time());
throw new RateLimitException('Hubspot rate limit (cached circuit-breaker)', $remaining);
Issue 2 — retryUntil() window may expire under sustained rate limiting
Issue 2 —
retryUntil()
window may expire under sustained rate limiting
MatchActivityCrmData.php:45-47
MatchActivityCrmData.php:45-47
retryUntil()
is calculated as
now() + 30 min
at
dispatch time
and stored in the job payload. With
MAX_RETRY_DELAY = 600s
, you only get ~3 rate-limit-triggered releases before the 30-minute window closes and the job is permanently failed. For a heavy 429 spike (daily limit, parsed as 600s), this can easily happen.
Consider increasing
RETRY_WINDOW_MINUTES
to 60 or more, or making it configurable. The
uniqueFor()
value should be updated to match.
Issue 3 — Only search() uses the circuit breaker, but other methods can still hit 429
Issue 3 — Only
search()
uses the circuit breaker, but other methods can still hit 429
Client.php:76-108
Client.php:76-108
executeRequest()
is only called from
search()
. Methods like
getOpportunityById()...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Explorer (⇧⌘E)","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":true},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Search (⇧⌘F)","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Source Control (⌃⇧G) - 12 pending changes","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"12","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Run and Debug (⇧⌘D)","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Remote Explorer","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Extensions (⇧⌘X) - 2 require update","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Testing","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Claude Code","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"EXPLORER","depth":17,"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"EXPLORER","depth":18,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Explorer Section: app","depth":21,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXStaticText","text":"","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"Explorer Section: app","depth":22,"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"APP","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CheckAndRetryRemoteMatch.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateFollowupActivity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateNotes.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivitiesToNewOpportunity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivityCrmData.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"NoteObject.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SaveActivity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SaveTranscription.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SetupLayout.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncActivity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncFieldMetadata.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncHubspotObjects.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncLeads.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncObjects.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncOpportunitiesJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncOpportunity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncProfileMetadata.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncTeamFieldsJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncTeamMetadata.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"UpdateOpportunitySpecifications.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"UpdateStage.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"DealRisks","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mailbox","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MeetingBot","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Middleware","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"HandleHubspotRateLimit.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"RateLimited.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Streaming","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Team","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Telephony","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"User","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"BaseProcessingJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"DummyJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"ImportRecallAIRecordingsJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"ImportRemoteTrackJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Job.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JobDispatcher.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JobDispatcherInterface.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"PurgeSoftDeletedOpportunityJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SqsVisibilityControl.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Listeners","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mail","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Models","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Activity","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Ai","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"AskAnything","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Calendar","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Connection","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Crm","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Jobs","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"app","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Outline Section","depth":21,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"OUTLINE","depth":22,"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"OUTLINE","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Timeline Section","depth":21,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"TIMELINE","depth":22,"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"TIMELINE","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"MySQL Section","depth":21,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"MYSQL","depth":22,"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"MYSQL","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"MatchActivityCrmData.php, Editor Group 1","depth":28,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"RateLimitException.php, Editor Group 1","depth":28,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"HandleHubspotRateLimit.php, Editor Group 1","depth":28,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✻ [Claude Code] MatchActivityCrmDataTest.php (MatchActivityCrmDataTest.php), Editor Group 1","depth":28,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXRadioButton","text":"Client.php, Editor Group 1","depth":28,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"HubspotPaginationService.php, Editor Group 1","depth":28,"on_screen":false,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Review rate limit handli…, Editor Group 2","depth":28,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXButton","text":"remote","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JY-20725-handle-HS-search-rate-limit*","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"app (Git) - Synchronize Changes","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Errors: 6, Warnings: 11, Infos: 2","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"6","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"11","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Notifications","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"key, PHP extension: Premium features not active.","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"8.3, Language Level: 8.3","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sign In","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Sign In","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"PHP","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"LF","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"UTF-8","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Spaces: 4","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Ln 180, Col 1","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Diff editor","depth":12,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Clear","depth":12,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Review rate limit handling for HubSpot job queue","depth":19,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Session history","depth":19,"on_screen":true,"help_text":"Session history","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New session","depth":19,"on_screen":true,"help_text":"New session","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Message actions","depth":24,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"RateLimitException.php#9-9","depth":23,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"RateLimitException.php#9-9","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Reveiw the diff. Mostly","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Jobs/Crm/MatchActivityCrmData.php","depth":26,"on_screen":false,"help_text":"Open app/Jobs/Crm/MatchActivityCrmData.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Exceptions/RateLimitException.php","depth":26,"on_screen":false,"help_text":"Open app/Exceptions/RateLimitException.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Jobs/Middleware/HandleHubspotRateLimit.php","depth":26,"on_screen":false,"help_text":"Open app/Jobs/Middleware/HandleHubspotRateLimit.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Services/Crm/Hubspot/Client.php","depth":26,"on_screen":false,"help_text":"Open app/Services/Crm/Hubspot/Client.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"and","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php","depth":26,"on_screen":false,"help_text":"Open app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":". The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Thought for 5s","depth":23,"on_screen":false,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thought for 5s","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"I'll review the implementation carefully. Let me first check how","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is used elsewhere and look at the test files and","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"PaginationState","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":".","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find all usages of RateLimitException outside the changed files","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"RateLimitException\" /Users/lukas/jiminny/app/app --include=\"*.php\" | grep -v \"HandleHubspotRateLimit\\|MatchActivityCrmData\\|Client.php\\|RateLimitException.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception\n/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:17:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:68: RateLimitException |\n/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:15:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:58: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception\n/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:19:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:76: RateLimitException |\n/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:8:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:50: * @throws RateLimitException When rate limit is hit\n/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:195: // RateLimitException and other exceptions are re-thrown as-is","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"PaginationState.php","depth":24,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"PaginationState.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"HandleHubspotRateLimitTest.php","depth":24,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"HandleHubspotRateLimitTest.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check how RateLimitException is used in GenerateActionItemsJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"RateLimitException\\|LogicException\\|RuntimeException\" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -20","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find all catch blocks or instanceof checks for RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"catch.*RateLimitException\\|instanceof RateLimitException\" /Users/lukas/jiminny/app/app --include=\"*.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:11: * Job middleware that catches RateLimitException from HubSpot API calls\n/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:24: } catch (RateLimitException $e) {\n/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:149: if (! $e instanceof RateLimitException) {","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find all test references to RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"RateLimitException\" /Users/lukas/jiminny/app/tests --include=\"*.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:8:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:13:#[CoversClass(RateLimitException::class)]\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:14:class RateLimitExceptionTest extends TestCase\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:18: $exception = new RateLimitException();\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:28: $exception = new RateLimitException('Hubspot rate limit', 30, $previous);\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:52: $exception = new RateLimitException('test', $input);\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:10:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:49: public function testPropagatesNonRateLimitExceptions(): void\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:103: throw new RateLimitException('rate limited', $retryAfter);\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:150: throw new RateLimitException('rate limited', 1);","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check retry/failure handling in GenerateActionItemsJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"RateLimitException\\|retryUntil\\|backoff\\|maxExceptions\\|maxTries\\|release\\|failed\" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -30","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"13:use Jiminny\\Exceptions\\RateLimitException;\n51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception\n56: $this->release(30);","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check retry/failure handling in GenerateAiCallScoringJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"RateLimitException\\|retryUntil\\|backoff\\|maxExceptions\\|maxTries\\|release\\|failed\" /Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php | head -30","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"17:use Jiminny\\Exceptions\\RateLimitException;\n68: RateLimitException |\n75: $this->release(30);","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check retry config in MatchActivityCrmData","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"retryAfter\\|RETRY_WINDOW\\|retryUntil\\|maxTries\" /Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"34: private const int RETRY_WINDOW_MINUTES = 30;\n45: public function retryUntil(): \\DateTimeInterface\n47: return now()->addMinutes(self::RETRY_WINDOW_MINUTES);\n77: return self::RETRY_WINDOW_MINUTES * 60 + 60;","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check the cache key format","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"getRateLimitCacheKey\\|hubspot:ratelimit\" /Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Client.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"78: $cacheKey = $this->getRateLimitCacheKey();\n110: private function getRateLimitCacheKey(): string\n112: return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find other jobs that might use the rate limit middleware","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"class.*Middleware\\|HandleHubspotRateLimit\" /Users/lukas/jiminny/app/app/Jobs --include=\"*.php\" | grep -v \"HandleHubspotRateLimit.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:18:use Jiminny\\Jobs\\Middleware\\HandleHubspotRateLimit;\n/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:42: return [new HandleHubspotRateLimit()];","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"HubspotClientInterface.php","depth":24,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"HubspotClientInterface.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Thought for 73s","depth":23,"on_screen":false,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thought for 73s","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Now I have a complete picture. Here's my full analysis:","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"Review Summary","depth":22,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"Review Summary","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"RuntimeException vs LogicException — Safe ✓","depth":22,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"RuntimeException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"vs","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"LogicException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"— Safe ✓","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"The change is semantically correct and won't break anything.","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"LogicException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is for programmer errors (invalid arguments, contract violations). A rate limit from an external API is a runtime condition —","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RuntimeException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is the right parent. All callers catch","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"by name explicitly (union catches in","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"GenerateActionItemsJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"GenerateAiCallScoringJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"SummarizeTranscriptionJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"GenerateAiActivityTypeJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":") or check","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"instanceof RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"— none relies on the parent class type, so nothing breaks.","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"Issue 1 — Circuit breaker stores stale delay (most important bug)","depth":22,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"Issue 1 — Circuit breaker stores stale delay (most important bug)","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"Client.php:94","depth":23,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Client.php:94","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":23,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Redis::setex($cacheKey, $retryAfter, (string) $retryAfter);","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"The TTL is","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"$retryAfter","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"seconds, but the","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"stored value","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is also the original","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"$retryAfter","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":". If a second job reads this cache 20 seconds later, it throws","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RateLimitException(retryAfter=30)","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"and gets delayed 30 more seconds — even though only 10 remain. In a spike of 100 jobs, each subsequent job inflates its wait.","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Fix:","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"store the absolute expiry timestamp, reconstruct the remaining delay when reading:","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":23,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"// on 429:\nRedis::setex($cacheKey, $retryAfter, (string) (time() + $retryAfter));\n\n// in the cached-read branch:\n$remaining = max(1, (int) $cachedRetryAfter - time());\nthrow new RateLimitException('Hubspot rate limit (cached circuit-breaker)', $remaining);","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"Issue 2 — retryUntil() window may expire under sustained rate limiting","depth":22,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"Issue 2 —","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"retryUntil()","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"window may expire under sustained rate limiting","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"MatchActivityCrmData.php:45-47","depth":23,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"MatchActivityCrmData.php:45-47","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"retryUntil()","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is calculated as","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"now() + 30 min","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"at","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"dispatch time","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"and stored in the job payload. With","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"MAX_RETRY_DELAY = 600s","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":", you only get ~3 rate-limit-triggered releases before the 30-minute window closes and the job is permanently failed. For a heavy 429 spike (daily limit, parsed as 600s), this can easily happen.","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Consider increasing","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RETRY_WINDOW_MINUTES","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"to 60 or more, or making it configurable. The","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"uniqueFor()","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"value should be updated to match.","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"Issue 3 — Only search() uses the circuit breaker, but other methods can still hit 429","depth":22,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"Issue 3 — Only","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"search()","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"uses the circuit breaker, but other methods can still hit 429","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"Client.php:76-108","depth":23,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Client.php:76-108","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"executeRequest()","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is only called from","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"search()","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":". Methods like","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"getOpportunityById()","depth":24,"on_screen":false,"role_description":"text"}]...
|
4804103793329118530
|
-7065914424162479549
|
idle
|
accessibility
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 12 pending changes
12
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php
SaveTranscription.php
SetupLayout.php
SyncActivity.php
SyncFieldMetadata.php
SyncHubspotObjects.php
SyncLeads.php
SyncObjects.php
SyncOpportunitiesJob.php
SyncOpportunity.php
SyncProfileMetadata.php
SyncTeamFieldsJob.php
SyncTeamMetadata.php
UpdateOpportunitySpecifications.php
UpdateStage.php
DealRisks
Mailbox
MeetingBot
Middleware
HandleHubspotRateLimit.php
RateLimited.php
Streaming
Team
Telephony
User
BaseProcessingJob.php
DummyJob.php
ImportRecallAIRecordingsJob.php
ImportRemoteTrackJob.php
Job.php
JobDispatcher.php
JobDispatcherInterface.php
PurgeSoftDeletedOpportunityJob.php
SqsVisibilityControl.php
Listeners
Mail
Models
Activity
Ai
AskAnything
Calendar
Connection
Crm
Jobs
app
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
MySQL Section
MYSQL
MYSQL
MatchActivityCrmData.php, Editor Group 1
RateLimitException.php, Editor Group 1
HandleHubspotRateLimit.php, Editor Group 1
✻ [Claude Code] MatchActivityCrmDataTest.php (MatchActivityCrmDataTest.php), Editor Group 1
Client.php, Editor Group 1
HubspotPaginationService.php, Editor Group 1
Review rate limit handli…, Editor Group 2
remote
app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...
JY-20725-handle-HS-search-rate-limit*
app (Git) - Synchronize Changes
Errors: 6, Warnings: 11, Infos: 2
6
11
2
Notifications
key, PHP extension: Premium features not active.
8.3, Language Level: 8.3
Sign In
Sign In
PHP
LF
UTF-8
Spaces: 4
Ln 180, Col 1
Diff editor
Clear
Review rate limit handling for HubSpot job queue
Session history
New session
Message actions
RateLimitException.php#9-9
RateLimitException.php#9-9
Reveiw the diff. Mostly
@app/Jobs/Crm/MatchActivityCrmData.php
,
@app/Exceptions/RateLimitException.php
,
@app/Jobs/Middleware/HandleHubspotRateLimit.php
,
@app/Services/Crm/Hubspot/Client.php
and
@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php
. The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?
Thought for 5s
Thought for 5s
I'll review the implementation carefully. Let me first check how
RateLimitException
is used elsewhere and look at the test files and
PaginationState
.
Bash
Find all usages of RateLimitException outside the changed files
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/app --include="*.php" | grep -v "HandleHubspotRateLimit\|MatchActivityCrmData\|Client.php\|RateLimitException.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:17:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:68: RateLimitException |
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:15:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:58: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:19:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:76: RateLimitException |
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:50: * @throws RateLimitException When rate limit is hit
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:195: // RateLimitException and other exceptions are re-thrown as-is
Read
PaginationState.php
PaginationState.php
Read
HandleHubspotRateLimitTest.php
HandleHubspotRateLimitTest.php
Bash
Check how RateLimitException is used in GenerateActionItemsJob
IN
grep -rn "RateLimitException\|LogicException\|RuntimeException" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -20
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
Bash
Find all catch blocks or instanceof checks for RateLimitException
IN
grep -rn "catch.*RateLimitException\|instanceof RateLimitException" /Users/lukas/jiminny/app/app --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:11: * Job middleware that catches RateLimitException from HubSpot API calls
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:24: } catch (RateLimitException $e) {
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:149: if (! $e instanceof RateLimitException) {
Bash
Find all test references to RateLimitException
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/tests --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:13:#[CoversClass(RateLimitException::class)]
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:14:class RateLimitExceptionTest extends TestCase
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:18: $exception = new RateLimitException();
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:28: $exception = new RateLimitException('Hubspot rate limit', 30, $previous);
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:52: $exception = new RateLimitException('test', $input);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:10:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:49: public function testPropagatesNonRateLimitExceptions(): void
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:103: throw new RateLimitException('rate limited', $retryAfter);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:150: throw new RateLimitException('rate limited', 1);
Bash
Check retry/failure handling in GenerateActionItemsJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -30
Copy code to clipboard
OUT
13:use Jiminny\Exceptions\RateLimitException;
51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
56: $this->release(30);
Bash
Check retry/failure handling in GenerateAiCallScoringJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php | head -30
Copy code to clipboard
OUT
17:use Jiminny\Exceptions\RateLimitException;
68: RateLimitException |
75: $this->release(30);
Bash
Check retry config in MatchActivityCrmData
IN
grep -n "retryAfter\|RETRY_WINDOW\|retryUntil\|maxTries" /Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php
Copy code to clipboard
OUT
34: private const int RETRY_WINDOW_MINUTES = 30;
45: public function retryUntil(): \DateTimeInterface
47: return now()->addMinutes(self::RETRY_WINDOW_MINUTES);
77: return self::RETRY_WINDOW_MINUTES * 60 + 60;
Bash
Check the cache key format
IN
grep -n "getRateLimitCacheKey\|hubspot:ratelimit" /Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Client.php
Copy code to clipboard
OUT
78: $cacheKey = $this->getRateLimitCacheKey();
110: private function getRateLimitCacheKey(): string
112: return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());
Bash
Find other jobs that might use the rate limit middleware
IN
grep -rn "class.*Middleware\|HandleHubspotRateLimit" /Users/lukas/jiminny/app/app/Jobs --include="*.php" | grep -v "HandleHubspotRateLimit.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:18:use Jiminny\Jobs\Middleware\HandleHubspotRateLimit;
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:42: return [new HandleHubspotRateLimit()];
Read
HubspotClientInterface.php
HubspotClientInterface.php
Thought for 73s
Thought for 73s
Now I have a complete picture. Here's my full analysis:
Review Summary
Review Summary
RuntimeException vs LogicException — Safe ✓
RuntimeException
vs
LogicException
— Safe ✓
The change is semantically correct and won't break anything.
LogicException
is for programmer errors (invalid arguments, contract violations). A rate limit from an external API is a runtime condition —
RuntimeException
is the right parent. All callers catch
RateLimitException
by name explicitly (union catches in
GenerateActionItemsJob
,
GenerateAiCallScoringJob
,
SummarizeTranscriptionJob
,
GenerateAiActivityTypeJob
) or check
instanceof RateLimitException
— none relies on the parent class type, so nothing breaks.
Issue 1 — Circuit breaker stores stale delay (most important bug)
Issue 1 — Circuit breaker stores stale delay (most important bug)
Client.php:94
Client.php:94
Copy code to clipboard
Redis::setex($cacheKey, $retryAfter, (string) $retryAfter);
The TTL is
$retryAfter
seconds, but the
stored value
is also the original
$retryAfter
. If a second job reads this cache 20 seconds later, it throws
RateLimitException(retryAfter=30)
and gets delayed 30 more seconds — even though only 10 remain. In a spike of 100 jobs, each subsequent job inflates its wait.
Fix:
store the absolute expiry timestamp, reconstruct the remaining delay when reading:
Copy code to clipboard
// on 429:
Redis::setex($cacheKey, $retryAfter, (string) (time() + $retryAfter));
// in the cached-read branch:
$remaining = max(1, (int) $cachedRetryAfter - time());
throw new RateLimitException('Hubspot rate limit (cached circuit-breaker)', $remaining);
Issue 2 — retryUntil() window may expire under sustained rate limiting
Issue 2 —
retryUntil()
window may expire under sustained rate limiting
MatchActivityCrmData.php:45-47
MatchActivityCrmData.php:45-47
retryUntil()
is calculated as
now() + 30 min
at
dispatch time
and stored in the job payload. With
MAX_RETRY_DELAY = 600s
, you only get ~3 rate-limit-triggered releases before the 30-minute window closes and the job is permanently failed. For a heavy 429 spike (daily limit, parsed as 600s), this can easily happen.
Consider increasing
RETRY_WINDOW_MINUTES
to 60 or more, or making it configurable. The
uniqueFor()
value should be updated to match.
Issue 3 — Only search() uses the circuit breaker, but other methods can still hit 429
Issue 3 — Only
search()
uses the circuit breaker, but other methods can still hit 429
Client.php:76-108
Client.php:76-108
executeRequest()
is only called from
search()
. Methods like
getOpportunityById()...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
19562
|
836
|
6
|
2026-05-11T13:04:55.573943+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778504695573_m1.jpg...
|
Code
|
✻ [Claude Code] MatchActivityCrmDataTest.php (Matc ✻ [Claude Code] MatchActivityCrmDataTest.php (MatchActivityCrmDataTest.php) — app...
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 12 pending changes
12
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php
SaveTranscription.php
SetupLayout.php
SyncActivity.php
SyncFieldMetadata.php
SyncHubspotObjects.php
SyncLeads.php
SyncObjects.php
SyncOpportunitiesJob.php
SyncOpportunity.php
SyncProfileMetadata.php
SyncTeamFieldsJob.php
SyncTeamMetadata.php
UpdateOpportunitySpecifications.php
UpdateStage.php
DealRisks
Mailbox
MeetingBot
Middleware
HandleHubspotRateLimit.php
RateLimited.php
Streaming
Team
Telephony
User
BaseProcessingJob.php
DummyJob.php
ImportRecallAIRecordingsJob.php
ImportRemoteTrackJob.php
Job.php
JobDispatcher.php
JobDispatcherInterface.php
PurgeSoftDeletedOpportunityJob.php
SqsVisibilityControl.php
Listeners
Mail
Models
Activity
Ai
AskAnything
Calendar
Connection
Crm
Jobs
app
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
MySQL Section
MYSQL
MYSQL
MatchActivityCrmData.php, Editor Group 1
RateLimitException.php, Editor Group 1
HandleHubspotRateLimit.php, Editor Group 1
✻ [Claude Code] MatchActivityCrmDataTest.php (MatchActivityCrmDataTest.php), Editor Group 1
Client.php, Editor Group 1
HubspotPaginationService.php, Editor Group 1
Review rate limit handli…, Editor Group 2
remote
app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...
JY-20725-handle-HS-search-rate-limit*
app (Git) - Synchronize Changes
Errors: 6, Warnings: 11, Infos: 2
6
11
2
Notifications
key, PHP extension: Premium features not active.
8.3, Language Level: 8.3
Sign In
Sign In
PHP
LF
UTF-8
Spaces: 4
Ln 180, Col 1
Diff editor
Clear
Review rate limit handling for HubSpot job queue
Session history
New session
Message actions
RateLimitException.php#9-9
RateLimitException.php#9-9
Reveiw the diff. Mostly
@app/Jobs/Crm/MatchActivityCrmData.php
,
@app/Exceptions/RateLimitException.php
,
@app/Jobs/Middleware/HandleHubspotRateLimit.php
,
@app/Services/Crm/Hubspot/Client.php
and
@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php
. The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?
Thought for 5s
Thought for 5s
I'll review the implementation carefully. Let me first check how
RateLimitException
is used elsewhere and look at the test files and
PaginationState
.
Bash
Find all usages of RateLimitException outside the changed files
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/app --include="*.php" | grep -v "HandleHubspotRateLimit\|MatchActivityCrmData\|Client.php\|RateLimitException.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:17:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:68: RateLimitException |
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:15:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:58: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:19:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:76: RateLimitException |
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:50: * @throws RateLimitException When rate limit is hit
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:195: // RateLimitException and other exceptions are re-thrown as-is
Read
PaginationState.php
PaginationState.php
Read
HandleHubspotRateLimitTest.php
HandleHubspotRateLimitTest.php
Bash
Check how RateLimitException is used in GenerateActionItemsJob
IN
grep -rn "RateLimitException\|LogicException\|RuntimeException" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -20
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
Bash
Find all catch blocks or instanceof checks for RateLimitException
IN
grep -rn "catch.*RateLimitException\|instanceof RateLimitException" /Users/lukas/jiminny/app/app --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:11: * Job middleware that catches RateLimitException from HubSpot API calls
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:24: } catch (RateLimitException $e) {
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:149: if (! $e instanceof RateLimitException) {
Bash
Find all test references to RateLimitException
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/tests --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:13:#[CoversClass(RateLimitException::class)]
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:14:class RateLimitExceptionTest extends TestCase
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:18: $exception = new RateLimitException();
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:28: $exception = new RateLimitException('Hubspot rate limit', 30, $previous);
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:52: $exception = new RateLimitException('test', $input);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:10:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:49: public function testPropagatesNonRateLimitExceptions(): void
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:103: throw new RateLimitException('rate limited', $retryAfter);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:150: throw new RateLimitException('rate limited', 1);
Bash
Check retry/failure handling in GenerateActionItemsJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -30
Copy code to clipboard
OUT
13:use Jiminny\Exceptions\RateLimitException;
51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
56: $this->release(30);
Bash
Check retry/failure handling in GenerateAiCallScoringJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php | head -30
Copy code to clipboard
OUT
17:use Jiminny\Exceptions\RateLimitException;
68: RateLimitException |
75: $this->release(30);
Bash
Check retry config in MatchActivityCrmData
IN
grep -n "retryAfter\|RETRY_WINDOW\|retryUntil\|maxTries" /Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php
Copy code to clipboard
OUT
34: private const int RETRY_WINDOW_MINUTES = 30;
45: public function retryUntil(): \DateTimeInterface
47: return now()->addMinutes(self::RETRY_WINDOW_MINUTES);
77: return self::RETRY_WINDOW_MINUTES * 60 + 60;
Bash
Check the cache key format
IN
grep -n "getRateLimitCacheKey\|hubspot:ratelimit" /Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Client.php
Copy code to clipboard
OUT
78: $cacheKey = $this->getRateLimitCacheKey();
110: private function getRateLimitCacheKey(): string
112: return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());
Bash
Find other jobs that might use the rate limit middleware
IN
grep -rn "class.*Middleware\|HandleHubspotRateLimit" /Users/lukas/jiminny/app/app/Jobs --include="*.php" | grep -v "HandleHubspotRateLimit.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:18:use Jiminny\Jobs\Middleware\HandleHubspotRateLimit;
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:42: return [new HandleHubspotRateLimit()];
Read
HubspotClientInterface.php
HubspotClientInterface.php
Thought for 73s
Thought for 73s
Now I have a complete picture. Here's my full analysis:
Review Summary
Review Summary
RuntimeException vs LogicException — Safe ✓
RuntimeException
vs
LogicException
— Safe ✓
The change is semantically correct and won't break anything.
LogicException
is for programmer errors (invalid arguments, contract violations). A rate limit from an external API is a runtime condition —
RuntimeException
is the right parent. All callers catch
RateLimitException
by name explicitly (union catches in
GenerateActionItemsJob
,
GenerateAiCallScoringJob
,
SummarizeTranscriptionJob
,
GenerateAiActivityTypeJob
) or check
instanceof RateLimitException
— none relies on the parent class type, so nothing breaks.
Issue 1 — Circuit breaker stores stale delay (most important bug)
Issue 1 — Circuit breaker stores stale delay (most important bug)
Client.php:94
Client.php:94
Copy code to clipboard
Redis::setex($cacheKey, $retryAfter, (string) $retryAfter);
The TTL is
$retryAfter
seconds, but the
stored value
is also the original
$retryAfter
. If a second job reads this cache 20 seconds later, it throws
RateLimitException(retryAfter=30)
and gets delayed 30 more seconds — even though only 10 remain. In a spike of 100 jobs, each subsequent job inflates its wait.
Fix:
store the absolute expiry timestamp, reconstruct the remaining delay when reading:
Copy code to clipboard
// on 429:
Redis::setex($cacheKey, $retryAfter, (string) (time() + $retryAfter));
// in the cached-read branch:
$remaining = max(1, (int) $cachedRetryAfter - time());
throw new RateLimitException('Hubspot rate limit (cached circuit-breaker)', $remaining);
Issue 2 — retryUntil() window may expire under sustained rate limiting
Issue 2 —
retryUntil()
window may expire under sustained rate limiting
MatchActivityCrmData.php:45-47
MatchActivityCrmData.php:45-47
retryUntil()
is calculated as
now() + 30 min
at
dispatch time
and stored in the job payload. With
MAX_RETRY_DELAY = 600s
, you only get ~3 rate-limit-triggered releases before the 30-minute window closes and the job is permanently failed. For a heavy 429 spike (daily limit, parsed as 600s), this can easily happen.
Consider increasing
RETRY_WINDOW_MINUTES
to 60 or more, or making it configurable. The
uniqueFor()
value should be updated to match.
Issue 3 — Only search() uses the circuit breaker, but other methods can still hit 429
Issue 3 — Only
search()
uses the circuit breaker, but other methods can still hit 429
Client.php:76-108
Client.php:76-108
executeRequest()
is only called from
search()
. Methods like
getOpportunityById()
,
batchReadObjects()
,
getContactByEmail()
bypass it entirely. If HubSpot's 429 is account-wide (not search-endpoint-specific), those methods will keep firing even while the circuit breaker is supposedly open. This is likely fine because the search endpoint has its own tighter quota (5 RPS), but it's worth being explicit in a comment.
Issue 4 — object $job type in middleware has no compile-time safety
Issue 4 —
object $job
type in middleware has no compile-time safety
HandleHubspotRateLimit.php:20
HandleHubspotRateLimit.php:20
Copy code to clipboard
public function handle(object $job, callable $next): void
Calling
$job->attempts()
and
$job->release()
on
object
will work at runtime since Laravel always passes jobs that use
InteractsWithQueue
, but PHPStan/psalm won't verify this and it could silently break in tests with bare mocks (as your test does use a
Job
mock that has
attempts()
— so the test is fine, but the real type contract is invisible). Minor, but worth tightening to
\Illuminate\Contracts\Queue\Job
.
What works well ✓
What works well ✓
RateLimitException
is caught by the middleware
before
it increments
maxExceptions
, so rate-limit releases don't consume the 3-exception budget for real failures.
The middleware's jitter (
random_int(0, 5)
) prevents thundering herd on release.
The log-sampling logic (
attempts <= 3 || attempts % 10 === 0
) keeps logs useful without flooding.
ShouldBeUnique
+
uniqueFor()
correctly prevents duplicate jobs queuing up during the rate-limit wait window.
RateLimitException
propagates cleanly through the DB transaction (rolled back), then through the job catch block (logged conditionally), then to the middleware which handles it.
The pagination service re-throws
RateLimitException
as-is and resets pagination state on the next job attempt — safe because offset restarts from 0.
Message actions
Expand on 1 and 2. Let's consider there are several jobs running from ten workers. They are out fired instantly, and therefore there is no cache when they look for cache, but once they receive 429, they store cache. Can there be some potential issues with that flow?
Thought for 91s
Thought for 91s
Let me trace the exact race conditions step by step.
Wave 1 — The Initial Burst (t=0)
Wave 1 — The Initial Burst (t=0)
All 10 workers execute simultaneously. Each does:
Copy code to clipboard
$cachedRetryAfter = Redis::get($cacheKey); // ALL TEN: null — cache miss
Cache doesn't exist yet, so all 10 proceed and hammer HubSpot's search endpoint simultaneously. HubSpot's search limit is 5 RPS per portal — 10 concurrent requests guarantees 429s. All 10 get 429, all 10 run:
Copy code to clipboard
Redis::setex($cacheKey, $retryAfter, (string) $retryAfter); // e.g. TTL=10, value="10"
throw new RateLimitException('Hubspot returned 429', $retryAfter, $e);
All 10 write the same key at nearly the same millisecond. Redis just accepts last-write-wins — no error, no coordination, 10 redundant writes. Then all 10 are caught by the middleware and released:
Copy code to clipboard
delay = max(1, min(10, 600)) + random_int(0, 5) → 10 to 15 seconds
So all 10 jobs land back in the queue, scheduled to fire between t=10 and t=15.
The Core Problem — TTL Expires Before Released Jobs Fire
The Core Problem — TTL Expires Before Released Jobs Fire
The Redis key was set with
TTL = retryAfter = 10
. The jobs were released with
delay = retryAfter + jitter = 10–15
.
Copy code to clipboard
Redis key expires: t = 10
Jobs start firing: t = 10 to t = 15
These are nearly the same window. The very first job that fires at t=10 may race against the TTL expiry. Jobs firing at t=11–15
will find an empty cache
because the key already expired. So the circuit breaker provides
zero protection
for the second wave of the same jobs. They all miss the cache again and charge straight at HubSpot.
This is the core mismatch: the release delay was derived from the same value as the TTL, so they expire together. The circuit breaker is only effective for
new, independent jobs
that arrive during the t=0–10 window, not for the 10 jobs that triggered the 429 in the first place.
Issue 1 Compounded — Stale Delay Makes It Worse
Issue 1 Compounded — Stale Delay Makes It Worse
Say a new job (job #11) arrives at t=5. It reads the cache and gets
"10"
. The middleware releases it for 10 seconds → fires at t=15. But the rate limit ended at t=10. It waited 5 extra seconds for nothing, and it fires exactly when the 10 original jobs are also firing (t=10–15). So instead of smoothing the load, the stale delay actually
bunches job #11 into the same second wave
.
With the absolute-timestamp fix:...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Explorer (⇧⌘E)","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":true},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Search (⇧⌘F)","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Source Control (⌃⇧G) - 12 pending changes","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"12","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Run and Debug (⇧⌘D)","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Remote Explorer","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Extensions (⇧⌘X) - 2 require update","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Testing","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Claude Code","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"EXPLORER","depth":17,"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"EXPLORER","depth":18,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Explorer Section: app","depth":21,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXStaticText","text":"","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"Explorer Section: app","depth":22,"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"APP","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CheckAndRetryRemoteMatch.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateFollowupActivity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateNotes.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivitiesToNewOpportunity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivityCrmData.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"NoteObject.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SaveActivity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SaveTranscription.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SetupLayout.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncActivity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncFieldMetadata.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncHubspotObjects.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncLeads.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncObjects.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncOpportunitiesJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncOpportunity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncProfileMetadata.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncTeamFieldsJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncTeamMetadata.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"UpdateOpportunitySpecifications.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"UpdateStage.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"DealRisks","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mailbox","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MeetingBot","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Middleware","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"HandleHubspotRateLimit.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"RateLimited.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Streaming","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Team","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Telephony","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"User","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"BaseProcessingJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"DummyJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"ImportRecallAIRecordingsJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"ImportRemoteTrackJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Job.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JobDispatcher.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JobDispatcherInterface.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"PurgeSoftDeletedOpportunityJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SqsVisibilityControl.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Listeners","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mail","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Models","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Activity","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Ai","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"AskAnything","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Calendar","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Connection","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Crm","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Jobs","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"app","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Outline Section","depth":21,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"OUTLINE","depth":22,"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"OUTLINE","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Timeline Section","depth":21,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"TIMELINE","depth":22,"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"TIMELINE","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"MySQL Section","depth":21,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"MYSQL","depth":22,"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"MYSQL","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"MatchActivityCrmData.php, Editor Group 1","depth":28,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"RateLimitException.php, Editor Group 1","depth":28,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"HandleHubspotRateLimit.php, Editor Group 1","depth":28,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✻ [Claude Code] MatchActivityCrmDataTest.php (MatchActivityCrmDataTest.php), Editor Group 1","depth":28,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXRadioButton","text":"Client.php, Editor Group 1","depth":28,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"HubspotPaginationService.php, Editor Group 1","depth":28,"on_screen":false,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Review rate limit handli…, Editor Group 2","depth":28,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXButton","text":"remote","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JY-20725-handle-HS-search-rate-limit*","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"app (Git) - Synchronize Changes","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Errors: 6, Warnings: 11, Infos: 2","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"6","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"11","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Notifications","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"key, PHP extension: Premium features not active.","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"8.3, Language Level: 8.3","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sign In","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Sign In","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"PHP","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"LF","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"UTF-8","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Spaces: 4","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Ln 180, Col 1","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Diff editor","depth":12,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Clear","depth":12,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Review rate limit handling for HubSpot job queue","depth":19,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Session history","depth":19,"on_screen":true,"help_text":"Session history","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New session","depth":19,"on_screen":true,"help_text":"New session","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Message actions","depth":24,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"RateLimitException.php#9-9","depth":23,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"RateLimitException.php#9-9","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Reveiw the diff. Mostly","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Jobs/Crm/MatchActivityCrmData.php","depth":26,"on_screen":false,"help_text":"Open app/Jobs/Crm/MatchActivityCrmData.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Exceptions/RateLimitException.php","depth":26,"on_screen":false,"help_text":"Open app/Exceptions/RateLimitException.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Jobs/Middleware/HandleHubspotRateLimit.php","depth":26,"on_screen":false,"help_text":"Open app/Jobs/Middleware/HandleHubspotRateLimit.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Services/Crm/Hubspot/Client.php","depth":26,"on_screen":false,"help_text":"Open app/Services/Crm/Hubspot/Client.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"and","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php","depth":26,"on_screen":false,"help_text":"Open app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":". The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Thought for 5s","depth":23,"on_screen":false,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thought for 5s","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"I'll review the implementation carefully. Let me first check how","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is used elsewhere and look at the test files and","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"PaginationState","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":".","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find all usages of RateLimitException outside the changed files","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"RateLimitException\" /Users/lukas/jiminny/app/app --include=\"*.php\" | grep -v \"HandleHubspotRateLimit\\|MatchActivityCrmData\\|Client.php\\|RateLimitException.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception\n/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:17:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:68: RateLimitException |\n/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:15:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:58: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception\n/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:19:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:76: RateLimitException |\n/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:8:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:50: * @throws RateLimitException When rate limit is hit\n/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:195: // RateLimitException and other exceptions are re-thrown as-is","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"PaginationState.php","depth":24,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"PaginationState.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"HandleHubspotRateLimitTest.php","depth":24,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"HandleHubspotRateLimitTest.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check how RateLimitException is used in GenerateActionItemsJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"RateLimitException\\|LogicException\\|RuntimeException\" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -20","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find all catch blocks or instanceof checks for RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"catch.*RateLimitException\\|instanceof RateLimitException\" /Users/lukas/jiminny/app/app --include=\"*.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:11: * Job middleware that catches RateLimitException from HubSpot API calls\n/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:24: } catch (RateLimitException $e) {\n/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:149: if (! $e instanceof RateLimitException) {","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find all test references to RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"RateLimitException\" /Users/lukas/jiminny/app/tests --include=\"*.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:8:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:13:#[CoversClass(RateLimitException::class)]\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:14:class RateLimitExceptionTest extends TestCase\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:18: $exception = new RateLimitException();\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:28: $exception = new RateLimitException('Hubspot rate limit', 30, $previous);\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:52: $exception = new RateLimitException('test', $input);\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:10:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:49: public function testPropagatesNonRateLimitExceptions(): void\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:103: throw new RateLimitException('rate limited', $retryAfter);\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:150: throw new RateLimitException('rate limited', 1);","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check retry/failure handling in GenerateActionItemsJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"RateLimitException\\|retryUntil\\|backoff\\|maxExceptions\\|maxTries\\|release\\|failed\" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -30","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"13:use Jiminny\\Exceptions\\RateLimitException;\n51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception\n56: $this->release(30);","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check retry/failure handling in GenerateAiCallScoringJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"RateLimitException\\|retryUntil\\|backoff\\|maxExceptions\\|maxTries\\|release\\|failed\" /Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php | head -30","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"17:use Jiminny\\Exceptions\\RateLimitException;\n68: RateLimitException |\n75: $this->release(30);","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check retry config in MatchActivityCrmData","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"retryAfter\\|RETRY_WINDOW\\|retryUntil\\|maxTries\" /Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"34: private const int RETRY_WINDOW_MINUTES = 30;\n45: public function retryUntil(): \\DateTimeInterface\n47: return now()->addMinutes(self::RETRY_WINDOW_MINUTES);\n77: return self::RETRY_WINDOW_MINUTES * 60 + 60;","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check the cache key format","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"getRateLimitCacheKey\\|hubspot:ratelimit\" /Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Client.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"78: $cacheKey = $this->getRateLimitCacheKey();\n110: private function getRateLimitCacheKey(): string\n112: return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find other jobs that might use the rate limit middleware","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"class.*Middleware\\|HandleHubspotRateLimit\" /Users/lukas/jiminny/app/app/Jobs --include=\"*.php\" | grep -v \"HandleHubspotRateLimit.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:18:use Jiminny\\Jobs\\Middleware\\HandleHubspotRateLimit;\n/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:42: return [new HandleHubspotRateLimit()];","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"HubspotClientInterface.php","depth":24,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"HubspotClientInterface.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Thought for 73s","depth":23,"on_screen":false,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thought for 73s","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Now I have a complete picture. Here's my full analysis:","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"Review Summary","depth":22,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"Review Summary","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"RuntimeException vs LogicException — Safe ✓","depth":22,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"RuntimeException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"vs","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"LogicException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"— Safe ✓","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"The change is semantically correct and won't break anything.","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"LogicException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is for programmer errors (invalid arguments, contract violations). A rate limit from an external API is a runtime condition —","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RuntimeException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is the right parent. All callers catch","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"by name explicitly (union catches in","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"GenerateActionItemsJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"GenerateAiCallScoringJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"SummarizeTranscriptionJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"GenerateAiActivityTypeJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":") or check","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"instanceof RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"— none relies on the parent class type, so nothing breaks.","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"Issue 1 — Circuit breaker stores stale delay (most important bug)","depth":22,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"Issue 1 — Circuit breaker stores stale delay (most important bug)","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"Client.php:94","depth":23,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Client.php:94","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":23,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Redis::setex($cacheKey, $retryAfter, (string) $retryAfter);","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"The TTL is","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"$retryAfter","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"seconds, but the","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"stored value","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is also the original","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"$retryAfter","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":". If a second job reads this cache 20 seconds later, it throws","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RateLimitException(retryAfter=30)","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"and gets delayed 30 more seconds — even though only 10 remain. In a spike of 100 jobs, each subsequent job inflates its wait.","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Fix:","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"store the absolute expiry timestamp, reconstruct the remaining delay when reading:","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":23,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"// on 429:\nRedis::setex($cacheKey, $retryAfter, (string) (time() + $retryAfter));\n\n// in the cached-read branch:\n$remaining = max(1, (int) $cachedRetryAfter - time());\nthrow new RateLimitException('Hubspot rate limit (cached circuit-breaker)', $remaining);","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"Issue 2 — retryUntil() window may expire under sustained rate limiting","depth":22,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"Issue 2 —","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"retryUntil()","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"window may expire under sustained rate limiting","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"MatchActivityCrmData.php:45-47","depth":23,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"MatchActivityCrmData.php:45-47","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"retryUntil()","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is calculated as","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"now() + 30 min","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"at","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"dispatch time","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"and stored in the job payload. With","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"MAX_RETRY_DELAY = 600s","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":", you only get ~3 rate-limit-triggered releases before the 30-minute window closes and the job is permanently failed. For a heavy 429 spike (daily limit, parsed as 600s), this can easily happen.","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Consider increasing","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RETRY_WINDOW_MINUTES","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"to 60 or more, or making it configurable. The","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"uniqueFor()","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"value should be updated to match.","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"Issue 3 — Only search() uses the circuit breaker, but other methods can still hit 429","depth":22,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"Issue 3 — Only","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"search()","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"uses the circuit breaker, but other methods can still hit 429","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"Client.php:76-108","depth":23,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Client.php:76-108","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"executeRequest()","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is only called from","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"search()","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":". Methods like","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"getOpportunityById()","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"batchReadObjects()","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"getContactByEmail()","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"bypass it entirely. If HubSpot's 429 is account-wide (not search-endpoint-specific), those methods will keep firing even while the circuit breaker is supposedly open. This is likely fine because the search endpoint has its own tighter quota (5 RPS), but it's worth being explicit in a comment.","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"Issue 4 — object $job type in middleware has no compile-time safety","depth":22,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"Issue 4 —","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"object $job","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"type in middleware has no compile-time safety","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"HandleHubspotRateLimit.php:20","depth":23,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"HandleHubspotRateLimit.php:20","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":23,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"public function handle(object $job, callable $next): void","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Calling","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"$job->attempts()","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"and","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"$job->release()","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"on","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"object","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"will work at runtime since Laravel always passes jobs that use","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"InteractsWithQueue","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":", but PHPStan/psalm won't verify this and it could silently break in tests with bare mocks (as your test does use a","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Job","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"mock that has","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"attempts()","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"— so the test is fine, but the real type contract is invisible). Minor, but worth tightening to","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"\\Illuminate\\Contracts\\Queue\\Job","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":".","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"What works well ✓","depth":22,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"What works well ✓","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RateLimitException","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is caught by the middleware","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"before","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"it increments","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"maxExceptions","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":", so rate-limit releases don't consume the 3-exception budget for real failures.","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"The middleware's jitter (","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"random_int(0, 5)","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":") prevents thundering herd on release.","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"The log-sampling logic (","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"attempts <= 3 || attempts % 10 === 0","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":") keeps logs useful without flooding.","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"ShouldBeUnique","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"+","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"uniqueFor()","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"correctly prevents duplicate jobs queuing up during the rate-limit wait window.","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RateLimitException","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"propagates cleanly through the DB transaction (rolled back), then through the job catch block (logged conditionally), then to the middleware which handles it.","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"The pagination service re-throws","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RateLimitException","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"as-is and resets pagination state on the next job attempt — safe because offset restarts from 0.","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Message actions","depth":24,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Expand on 1 and 2. Let's consider there are several jobs running from ten workers. They are out fired instantly, and therefore there is no cache when they look for cache, but once they receive 429, they store cache. Can there be some potential issues with that flow?","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Thought for 91s","depth":23,"on_screen":false,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thought for 91s","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Let me trace the exact race conditions step by step.","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"Wave 1 — The Initial Burst (t=0)","depth":22,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"Wave 1 — The Initial Burst (t=0)","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"All 10 workers execute simultaneously. Each does:","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":23,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"$cachedRetryAfter = Redis::get($cacheKey); // ALL TEN: null — cache miss","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Cache doesn't exist yet, so all 10 proceed and hammer HubSpot's search endpoint simultaneously. HubSpot's search limit is 5 RPS per portal — 10 concurrent requests guarantees 429s. All 10 get 429, all 10 run:","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":23,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Redis::setex($cacheKey, $retryAfter, (string) $retryAfter); // e.g. TTL=10, value=\"10\"\nthrow new RateLimitException('Hubspot returned 429', $retryAfter, $e);","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"All 10 write the same key at nearly the same millisecond. Redis just accepts last-write-wins — no error, no coordination, 10 redundant writes. Then all 10 are caught by the middleware and released:","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":23,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"delay = max(1, min(10, 600)) + random_int(0, 5) → 10 to 15 seconds","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"So all 10 jobs land back in the queue, scheduled to fire between t=10 and t=15.","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"The Core Problem — TTL Expires Before Released Jobs Fire","depth":22,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"The Core Problem — TTL Expires Before Released Jobs Fire","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"The Redis key was set with","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"TTL = retryAfter = 10","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":". The jobs were released with","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"delay = retryAfter + jitter = 10–15","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":".","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":23,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Redis key expires: t = 10\nJobs start firing: t = 10 to t = 15","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"These are nearly the same window. The very first job that fires at t=10 may race against the TTL expiry. Jobs firing at t=11–15","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"will find an empty cache","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"because the key already expired. So the circuit breaker provides","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"zero protection","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"for the second wave of the same jobs. They all miss the cache again and charge straight at HubSpot.","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"This is the core mismatch: the release delay was derived from the same value as the TTL, so they expire together. The circuit breaker is only effective for","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"new, independent jobs","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"that arrive during the t=0–10 window, not for the 10 jobs that triggered the 429 in the first place.","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"Issue 1 Compounded — Stale Delay Makes It Worse","depth":22,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"Issue 1 Compounded — Stale Delay Makes It Worse","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Say a new job (job #11) arrives at t=5. It reads the cache and gets","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"\"10\"","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":". The middleware releases it for 10 seconds → fires at t=15. But the rate limit ended at t=10. It waited 5 extra seconds for nothing, and it fires exactly when the 10 original jobs are also firing (t=10–15). So instead of smoothing the load, the stale delay actually","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"bunches job #11 into the same second wave","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":".","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"With the absolute-timestamp fix:","depth":23,"on_screen":false,"role_description":"text"}]...
|
-1097369250375927990
|
351311886602241987
|
idle
|
accessibility
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 12 pending changes
12
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php
SaveTranscription.php
SetupLayout.php
SyncActivity.php
SyncFieldMetadata.php
SyncHubspotObjects.php
SyncLeads.php
SyncObjects.php
SyncOpportunitiesJob.php
SyncOpportunity.php
SyncProfileMetadata.php
SyncTeamFieldsJob.php
SyncTeamMetadata.php
UpdateOpportunitySpecifications.php
UpdateStage.php
DealRisks
Mailbox
MeetingBot
Middleware
HandleHubspotRateLimit.php
RateLimited.php
Streaming
Team
Telephony
User
BaseProcessingJob.php
DummyJob.php
ImportRecallAIRecordingsJob.php
ImportRemoteTrackJob.php
Job.php
JobDispatcher.php
JobDispatcherInterface.php
PurgeSoftDeletedOpportunityJob.php
SqsVisibilityControl.php
Listeners
Mail
Models
Activity
Ai
AskAnything
Calendar
Connection
Crm
Jobs
app
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
MySQL Section
MYSQL
MYSQL
MatchActivityCrmData.php, Editor Group 1
RateLimitException.php, Editor Group 1
HandleHubspotRateLimit.php, Editor Group 1
✻ [Claude Code] MatchActivityCrmDataTest.php (MatchActivityCrmDataTest.php), Editor Group 1
Client.php, Editor Group 1
HubspotPaginationService.php, Editor Group 1
Review rate limit handli…, Editor Group 2
remote
app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...
JY-20725-handle-HS-search-rate-limit*
app (Git) - Synchronize Changes
Errors: 6, Warnings: 11, Infos: 2
6
11
2
Notifications
key, PHP extension: Premium features not active.
8.3, Language Level: 8.3
Sign In
Sign In
PHP
LF
UTF-8
Spaces: 4
Ln 180, Col 1
Diff editor
Clear
Review rate limit handling for HubSpot job queue
Session history
New session
Message actions
RateLimitException.php#9-9
RateLimitException.php#9-9
Reveiw the diff. Mostly
@app/Jobs/Crm/MatchActivityCrmData.php
,
@app/Exceptions/RateLimitException.php
,
@app/Jobs/Middleware/HandleHubspotRateLimit.php
,
@app/Services/Crm/Hubspot/Client.php
and
@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php
. The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?
Thought for 5s
Thought for 5s
I'll review the implementation carefully. Let me first check how
RateLimitException
is used elsewhere and look at the test files and
PaginationState
.
Bash
Find all usages of RateLimitException outside the changed files
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/app --include="*.php" | grep -v "HandleHubspotRateLimit\|MatchActivityCrmData\|Client.php\|RateLimitException.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:17:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:68: RateLimitException |
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:15:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:58: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:19:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:76: RateLimitException |
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:50: * @throws RateLimitException When rate limit is hit
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:195: // RateLimitException and other exceptions are re-thrown as-is
Read
PaginationState.php
PaginationState.php
Read
HandleHubspotRateLimitTest.php
HandleHubspotRateLimitTest.php
Bash
Check how RateLimitException is used in GenerateActionItemsJob
IN
grep -rn "RateLimitException\|LogicException\|RuntimeException" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -20
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
Bash
Find all catch blocks or instanceof checks for RateLimitException
IN
grep -rn "catch.*RateLimitException\|instanceof RateLimitException" /Users/lukas/jiminny/app/app --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:11: * Job middleware that catches RateLimitException from HubSpot API calls
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:24: } catch (RateLimitException $e) {
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:149: if (! $e instanceof RateLimitException) {
Bash
Find all test references to RateLimitException
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/tests --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:13:#[CoversClass(RateLimitException::class)]
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:14:class RateLimitExceptionTest extends TestCase
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:18: $exception = new RateLimitException();
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:28: $exception = new RateLimitException('Hubspot rate limit', 30, $previous);
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:52: $exception = new RateLimitException('test', $input);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:10:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:49: public function testPropagatesNonRateLimitExceptions(): void
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:103: throw new RateLimitException('rate limited', $retryAfter);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:150: throw new RateLimitException('rate limited', 1);
Bash
Check retry/failure handling in GenerateActionItemsJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -30
Copy code to clipboard
OUT
13:use Jiminny\Exceptions\RateLimitException;
51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
56: $this->release(30);
Bash
Check retry/failure handling in GenerateAiCallScoringJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php | head -30
Copy code to clipboard
OUT
17:use Jiminny\Exceptions\RateLimitException;
68: RateLimitException |
75: $this->release(30);
Bash
Check retry config in MatchActivityCrmData
IN
grep -n "retryAfter\|RETRY_WINDOW\|retryUntil\|maxTries" /Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php
Copy code to clipboard
OUT
34: private const int RETRY_WINDOW_MINUTES = 30;
45: public function retryUntil(): \DateTimeInterface
47: return now()->addMinutes(self::RETRY_WINDOW_MINUTES);
77: return self::RETRY_WINDOW_MINUTES * 60 + 60;
Bash
Check the cache key format
IN
grep -n "getRateLimitCacheKey\|hubspot:ratelimit" /Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Client.php
Copy code to clipboard
OUT
78: $cacheKey = $this->getRateLimitCacheKey();
110: private function getRateLimitCacheKey(): string
112: return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());
Bash
Find other jobs that might use the rate limit middleware
IN
grep -rn "class.*Middleware\|HandleHubspotRateLimit" /Users/lukas/jiminny/app/app/Jobs --include="*.php" | grep -v "HandleHubspotRateLimit.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:18:use Jiminny\Jobs\Middleware\HandleHubspotRateLimit;
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:42: return [new HandleHubspotRateLimit()];
Read
HubspotClientInterface.php
HubspotClientInterface.php
Thought for 73s
Thought for 73s
Now I have a complete picture. Here's my full analysis:
Review Summary
Review Summary
RuntimeException vs LogicException — Safe ✓
RuntimeException
vs
LogicException
— Safe ✓
The change is semantically correct and won't break anything.
LogicException
is for programmer errors (invalid arguments, contract violations). A rate limit from an external API is a runtime condition —
RuntimeException
is the right parent. All callers catch
RateLimitException
by name explicitly (union catches in
GenerateActionItemsJob
,
GenerateAiCallScoringJob
,
SummarizeTranscriptionJob
,
GenerateAiActivityTypeJob
) or check
instanceof RateLimitException
— none relies on the parent class type, so nothing breaks.
Issue 1 — Circuit breaker stores stale delay (most important bug)
Issue 1 — Circuit breaker stores stale delay (most important bug)
Client.php:94
Client.php:94
Copy code to clipboard
Redis::setex($cacheKey, $retryAfter, (string) $retryAfter);
The TTL is
$retryAfter
seconds, but the
stored value
is also the original
$retryAfter
. If a second job reads this cache 20 seconds later, it throws
RateLimitException(retryAfter=30)
and gets delayed 30 more seconds — even though only 10 remain. In a spike of 100 jobs, each subsequent job inflates its wait.
Fix:
store the absolute expiry timestamp, reconstruct the remaining delay when reading:
Copy code to clipboard
// on 429:
Redis::setex($cacheKey, $retryAfter, (string) (time() + $retryAfter));
// in the cached-read branch:
$remaining = max(1, (int) $cachedRetryAfter - time());
throw new RateLimitException('Hubspot rate limit (cached circuit-breaker)', $remaining);
Issue 2 — retryUntil() window may expire under sustained rate limiting
Issue 2 —
retryUntil()
window may expire under sustained rate limiting
MatchActivityCrmData.php:45-47
MatchActivityCrmData.php:45-47
retryUntil()
is calculated as
now() + 30 min
at
dispatch time
and stored in the job payload. With
MAX_RETRY_DELAY = 600s
, you only get ~3 rate-limit-triggered releases before the 30-minute window closes and the job is permanently failed. For a heavy 429 spike (daily limit, parsed as 600s), this can easily happen.
Consider increasing
RETRY_WINDOW_MINUTES
to 60 or more, or making it configurable. The
uniqueFor()
value should be updated to match.
Issue 3 — Only search() uses the circuit breaker, but other methods can still hit 429
Issue 3 — Only
search()
uses the circuit breaker, but other methods can still hit 429
Client.php:76-108
Client.php:76-108
executeRequest()
is only called from
search()
. Methods like
getOpportunityById()
,
batchReadObjects()
,
getContactByEmail()
bypass it entirely. If HubSpot's 429 is account-wide (not search-endpoint-specific), those methods will keep firing even while the circuit breaker is supposedly open. This is likely fine because the search endpoint has its own tighter quota (5 RPS), but it's worth being explicit in a comment.
Issue 4 — object $job type in middleware has no compile-time safety
Issue 4 —
object $job
type in middleware has no compile-time safety
HandleHubspotRateLimit.php:20
HandleHubspotRateLimit.php:20
Copy code to clipboard
public function handle(object $job, callable $next): void
Calling
$job->attempts()
and
$job->release()
on
object
will work at runtime since Laravel always passes jobs that use
InteractsWithQueue
, but PHPStan/psalm won't verify this and it could silently break in tests with bare mocks (as your test does use a
Job
mock that has
attempts()
— so the test is fine, but the real type contract is invisible). Minor, but worth tightening to
\Illuminate\Contracts\Queue\Job
.
What works well ✓
What works well ✓
RateLimitException
is caught by the middleware
before
it increments
maxExceptions
, so rate-limit releases don't consume the 3-exception budget for real failures.
The middleware's jitter (
random_int(0, 5)
) prevents thundering herd on release.
The log-sampling logic (
attempts <= 3 || attempts % 10 === 0
) keeps logs useful without flooding.
ShouldBeUnique
+
uniqueFor()
correctly prevents duplicate jobs queuing up during the rate-limit wait window.
RateLimitException
propagates cleanly through the DB transaction (rolled back), then through the job catch block (logged conditionally), then to the middleware which handles it.
The pagination service re-throws
RateLimitException
as-is and resets pagination state on the next job attempt — safe because offset restarts from 0.
Message actions
Expand on 1 and 2. Let's consider there are several jobs running from ten workers. They are out fired instantly, and therefore there is no cache when they look for cache, but once they receive 429, they store cache. Can there be some potential issues with that flow?
Thought for 91s
Thought for 91s
Let me trace the exact race conditions step by step.
Wave 1 — The Initial Burst (t=0)
Wave 1 — The Initial Burst (t=0)
All 10 workers execute simultaneously. Each does:
Copy code to clipboard
$cachedRetryAfter = Redis::get($cacheKey); // ALL TEN: null — cache miss
Cache doesn't exist yet, so all 10 proceed and hammer HubSpot's search endpoint simultaneously. HubSpot's search limit is 5 RPS per portal — 10 concurrent requests guarantees 429s. All 10 get 429, all 10 run:
Copy code to clipboard
Redis::setex($cacheKey, $retryAfter, (string) $retryAfter); // e.g. TTL=10, value="10"
throw new RateLimitException('Hubspot returned 429', $retryAfter, $e);
All 10 write the same key at nearly the same millisecond. Redis just accepts last-write-wins — no error, no coordination, 10 redundant writes. Then all 10 are caught by the middleware and released:
Copy code to clipboard
delay = max(1, min(10, 600)) + random_int(0, 5) → 10 to 15 seconds
So all 10 jobs land back in the queue, scheduled to fire between t=10 and t=15.
The Core Problem — TTL Expires Before Released Jobs Fire
The Core Problem — TTL Expires Before Released Jobs Fire
The Redis key was set with
TTL = retryAfter = 10
. The jobs were released with
delay = retryAfter + jitter = 10–15
.
Copy code to clipboard
Redis key expires: t = 10
Jobs start firing: t = 10 to t = 15
These are nearly the same window. The very first job that fires at t=10 may race against the TTL expiry. Jobs firing at t=11–15
will find an empty cache
because the key already expired. So the circuit breaker provides
zero protection
for the second wave of the same jobs. They all miss the cache again and charge straight at HubSpot.
This is the core mismatch: the release delay was derived from the same value as the TTL, so they expire together. The circuit breaker is only effective for
new, independent jobs
that arrive during the t=0–10 window, not for the 10 jobs that triggered the 429 in the first place.
Issue 1 Compounded — Stale Delay Makes It Worse
Issue 1 Compounded — Stale Delay Makes It Worse
Say a new job (job #11) arrives at t=5. It reads the cache and gets
"10"
. The middleware releases it for 10 seconds → fires at t=15. But the rate limit ended at t=10. It waited 5 extra seconds for nothing, and it fires exactly when the 10 original jobs are also firing (t=10–15). So instead of smoothing the load, the stale delay actually
bunches job #11 into the same second wave
.
With the absolute-timestamp fix:...
|
19560
|
NULL
|
NULL
|
NULL
|
|
19565
|
836
|
7
|
2026-05-11T13:05:01.528438+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778504701528_m1.jpg...
|
Code
|
✻ [Claude Code] MatchActivityCrmDataTest.php (Matc ✻ [Claude Code] MatchActivityCrmDataTest.php (MatchActivityCrmDataTest.php) — app...
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 12 pending changes
12
Run and Debug (⇧⌘D)...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Explorer (⇧⌘E)","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":true},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Search (⇧⌘F)","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Source Control (⌃⇧G) - 12 pending changes","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"12","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Run and Debug (⇧⌘D)","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-7276417438074731574
|
-361816594597143416
|
click
|
hybrid
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 12 pending changes
12
Run and Debug (⇧⌘D)
SlackFileEditViewGoHistoryWindowHelpAPPDOCKER0 ₴1DEV (docker)₴2APP (-zsh)-zsh* @param string SobjectType The object type('deals''companies''contacts''cal)* @param array<string, mixed>Spayload Thesearch payload with filters, sorts, prop‹* @return array The search response with'results''total'*'paging'keys* @throws RateLimitException When rate limit is hit* @throws HubspotException On API errors** @return array The search response with 'results', 'total', 'paging' keys*/public function search(string SobjectType, array Spayload): arrayend diff4) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation)begin diff --/home/jiminny/app/Console/Commands/JiminnyDebugCommand.php+++/home/jiminny/app/Console/Commands/JiminnyDebugCommand.php-359,11+359,11 @ScrmService = ScrmResolver->prepareCrmService);-//-/1for ($i = 0; si < 3; Si++) {if (Si % 250) {Sthis->info("Syncing opportunity {Si}");Sthis->info("Matching contact {$i}");-1/-1/.+++++ScrmService->syncOpportunity('374720564');if ($i % 25=0{//Sthis->info("Syncing opportunity {$i}");Sthis->info("Matching contact {$i}");////}ScrmService->syncOpportunity('374720564');$crmService->matchByName('Robot');end diffFixed 4 of 5666 files in 146.870 seconds, 60.00 MB memory usedWhat's next:Try Docker Debug for seamless, persistent debugging tools in any containeror image →Learn more at https://docs.docker.com/go/debug-cli/lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-lirHomeDMsActivityFilesLater..•More(abl•[Platform) Refinemen... now100%8• Mon 11 May 16:05:01→[Platform] Refinement •now - 16:00-17:00Ci Join Google MeetJiminny ...# contusion-clinic# curiosity_lab# engineering# general# jiminny-bg# platform-tickets# product_launches# random# releases# sofia-office# support# thank-yous# the_people_of_jimi...• MessagesC FilesBookmarks+^ Direct messagesP. Aneliya Angelova®. Galya DimitrovaPetko Kashinski&. Stefka StoyanovaVasil Vasilev&. Nikolay IvanovAneliya Angelova, ...Stoyan Tanev• VesE Lukas Kovalik y... 020832): RemoveToday ~ ok 4.0 and 4.1 models(#506) (steliyan-g)NewGitHub APP 2:13 PM9 new commits pushed to master by ilian-jiminny861859d2 - Stop sending signals to datadog forincresed/ decreased workers.23ad2bb1 - Drop usage of RunForSeconds.3aedca4a - Generage Workerld on the fly.86cb0855 - ignore-missing-request-id-on-transcript Handle wrong format for assemblytranscriptions, this happends for old activitiesthat had a different provider and were updatedto point to Assembly when the providers weredeleted49ca4dfe - ignore-missing-request-id-on-transcript added log importShow morejiminny/app| Added by GitHubCircleCI APP 2:38 PMDeployment Successful!Project: appWhen:05/11/202611:38:14Tag:View JobE:: AppsS Jira CloudToastGanala Cala112Message #releases+..•...
|
NULL
|
/Users/lukas/jiminny/app/app/Jobs/Middleware/Handl /Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php...
|
NULL
|
NULL
|
|
19568
|
836
|
8
|
2026-05-11T13:05:33.991235+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778504733991_m1.jpg...
|
Code
|
Review rate limit handli… — app
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 13 pending changes
13
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php
SaveTranscription.php
SetupLayout.php
SyncActivity.php
SyncFieldMetadata.php
SyncHubspotObjects.php
SyncLeads.php
SyncObjects.php
SyncOpportunitiesJob.php
SyncOpportunity.php
SyncProfileMetadata.php
SyncTeamFieldsJob.php
SyncTeamMetadata.php
UpdateOpportunitySpecifications.php
UpdateStage.php
DealRisks
Mailbox
MeetingBot
Middleware
HandleHubspotRateLimit.php
RateLimited.php
Streaming
Team
Telephony
User
BaseProcessingJob.php
DummyJob.php
ImportRecallAIRecordingsJob.php
ImportRemoteTrackJob.php
Job.php
JobDispatcher.php
JobDispatcherInterface.php
PurgeSoftDeletedOpportunityJob.php
SqsVisibilityControl.php
Listeners
Mail
Models
Activity
Ai
AskAnything
Calendar
Connection
Crm
Jobs
app
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
MySQL Section
MYSQL
MYSQL
MatchActivityCrmData.php, Editor Group 1
RateLimitException.php, Editor Group 1
HandleHubspotRateLimit.php, Editor Group 1
✻ [Claude Code] MatchActivityCrmDataTest.php (MatchActivityCrmDataTest.php), Editor Group 1
Client.php, Editor Group 1
HubspotPaginationService.php, Editor Group 1
Review rate limit handli…, Editor Group 2
remote
app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...
JY-20725-handle-HS-search-rate-limit*
app (Git) - Synchronize Changes
Errors: 6, Warnings: 10, Infos: 2
6
10
2
Notifications
key, PHP extension: Premium features not active.
Sign In
Sign In
Diff editor
Clear
Review rate limit handling for HubSpot job queue
Session history
New session
Message actions
RateLimitException.php#9-9
RateLimitException.php#9-9
Reveiw the diff. Mostly
@app/Jobs/Crm/MatchActivityCrmData.php
,
@app/Exceptions/RateLimitException.php
,
@app/Jobs/Middleware/HandleHubspotRateLimit.php
,
@app/Services/Crm/Hubspot/Client.php
and
@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php
. The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?
Thought for 5s
Thought for 5s
I'll review the implementation carefully. Let me first check how
RateLimitException
is used elsewhere and look at the test files and
PaginationState
.
Bash
Find all usages of RateLimitException outside the changed files
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/app --include="*.php" | grep -v "HandleHubspotRateLimit\|MatchActivityCrmData\|Client.php\|RateLimitException.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:17:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:68: RateLimitException |
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:15:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:58: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:19:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:76: RateLimitException |
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:50: * @throws RateLimitException When rate limit is hit
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:195: // RateLimitException and other exceptions are re-thrown as-is
Read
PaginationState.php
PaginationState.php...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Explorer (⇧⌘E)","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":true},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Search (⇧⌘F)","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Source Control (⌃⇧G) - 13 pending changes","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"13","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Run and Debug (⇧⌘D)","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Remote Explorer","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Extensions (⇧⌘X) - 2 require update","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Testing","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Claude Code","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"EXPLORER","depth":17,"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"EXPLORER","depth":18,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Explorer Section: app","depth":21,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXStaticText","text":"","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"Explorer Section: app","depth":22,"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"APP","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CheckAndRetryRemoteMatch.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateFollowupActivity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateNotes.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivitiesToNewOpportunity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivityCrmData.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"NoteObject.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SaveActivity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SaveTranscription.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SetupLayout.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncActivity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncFieldMetadata.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncHubspotObjects.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncLeads.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncObjects.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncOpportunitiesJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncOpportunity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncProfileMetadata.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncTeamFieldsJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncTeamMetadata.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"UpdateOpportunitySpecifications.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"UpdateStage.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"DealRisks","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mailbox","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MeetingBot","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Middleware","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"HandleHubspotRateLimit.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"RateLimited.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Streaming","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Team","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Telephony","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"User","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"BaseProcessingJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"DummyJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"ImportRecallAIRecordingsJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"ImportRemoteTrackJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Job.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JobDispatcher.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JobDispatcherInterface.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"PurgeSoftDeletedOpportunityJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SqsVisibilityControl.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Listeners","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mail","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Models","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Activity","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Ai","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"AskAnything","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Calendar","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Connection","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Crm","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Jobs","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"app","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Outline Section","depth":21,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"OUTLINE","depth":22,"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"OUTLINE","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Timeline Section","depth":21,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"TIMELINE","depth":22,"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"TIMELINE","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"MySQL Section","depth":21,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"MYSQL","depth":22,"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"MYSQL","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"MatchActivityCrmData.php, Editor Group 1","depth":28,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"RateLimitException.php, Editor Group 1","depth":28,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"HandleHubspotRateLimit.php, Editor Group 1","depth":28,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✻ [Claude Code] MatchActivityCrmDataTest.php (MatchActivityCrmDataTest.php), Editor Group 1","depth":28,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXRadioButton","text":"Client.php, Editor Group 1","depth":28,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"HubspotPaginationService.php, Editor Group 1","depth":28,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Review rate limit handli…, Editor Group 2","depth":28,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXButton","text":"remote","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JY-20725-handle-HS-search-rate-limit*","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"app (Git) - Synchronize Changes","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Errors: 6, Warnings: 10, Infos: 2","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"6","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"10","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Notifications","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"key, PHP extension: Premium features not active.","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sign In","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Sign In","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Diff editor","depth":12,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Clear","depth":12,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Review rate limit handling for HubSpot job queue","depth":19,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Session history","depth":19,"on_screen":true,"help_text":"Session history","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New session","depth":19,"on_screen":true,"help_text":"New session","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Message actions","depth":24,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"RateLimitException.php#9-9","depth":23,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"RateLimitException.php#9-9","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Reveiw the diff. Mostly","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Jobs/Crm/MatchActivityCrmData.php","depth":26,"on_screen":false,"help_text":"Open app/Jobs/Crm/MatchActivityCrmData.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Exceptions/RateLimitException.php","depth":26,"on_screen":false,"help_text":"Open app/Exceptions/RateLimitException.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Jobs/Middleware/HandleHubspotRateLimit.php","depth":26,"on_screen":false,"help_text":"Open app/Jobs/Middleware/HandleHubspotRateLimit.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Services/Crm/Hubspot/Client.php","depth":26,"on_screen":false,"help_text":"Open app/Services/Crm/Hubspot/Client.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"and","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php","depth":26,"on_screen":false,"help_text":"Open app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":". The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Thought for 5s","depth":23,"on_screen":false,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thought for 5s","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"I'll review the implementation carefully. Let me first check how","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is used elsewhere and look at the test files and","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"PaginationState","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":".","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find all usages of RateLimitException outside the changed files","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"RateLimitException\" /Users/lukas/jiminny/app/app --include=\"*.php\" | grep -v \"HandleHubspotRateLimit\\|MatchActivityCrmData\\|Client.php\\|RateLimitException.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception\n/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:17:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:68: RateLimitException |\n/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:15:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:58: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception\n/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:19:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:76: RateLimitException |\n/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:8:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:50: * @throws RateLimitException When rate limit is hit\n/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:195: // RateLimitException and other exceptions are re-thrown as-is","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"PaginationState.php","depth":24,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"PaginationState.php","depth":25,"on_screen":false,"role_description":"text"}]...
|
2271678417222121206
|
-3830278202531069085
|
idle
|
accessibility
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 13 pending changes
13
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php
SaveTranscription.php
SetupLayout.php
SyncActivity.php
SyncFieldMetadata.php
SyncHubspotObjects.php
SyncLeads.php
SyncObjects.php
SyncOpportunitiesJob.php
SyncOpportunity.php
SyncProfileMetadata.php
SyncTeamFieldsJob.php
SyncTeamMetadata.php
UpdateOpportunitySpecifications.php
UpdateStage.php
DealRisks
Mailbox
MeetingBot
Middleware
HandleHubspotRateLimit.php
RateLimited.php
Streaming
Team
Telephony
User
BaseProcessingJob.php
DummyJob.php
ImportRecallAIRecordingsJob.php
ImportRemoteTrackJob.php
Job.php
JobDispatcher.php
JobDispatcherInterface.php
PurgeSoftDeletedOpportunityJob.php
SqsVisibilityControl.php
Listeners
Mail
Models
Activity
Ai
AskAnything
Calendar
Connection
Crm
Jobs
app
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
MySQL Section
MYSQL
MYSQL
MatchActivityCrmData.php, Editor Group 1
RateLimitException.php, Editor Group 1
HandleHubspotRateLimit.php, Editor Group 1
✻ [Claude Code] MatchActivityCrmDataTest.php (MatchActivityCrmDataTest.php), Editor Group 1
Client.php, Editor Group 1
HubspotPaginationService.php, Editor Group 1
Review rate limit handli…, Editor Group 2
remote
app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...
JY-20725-handle-HS-search-rate-limit*
app (Git) - Synchronize Changes
Errors: 6, Warnings: 10, Infos: 2
6
10
2
Notifications
key, PHP extension: Premium features not active.
Sign In
Sign In
Diff editor
Clear
Review rate limit handling for HubSpot job queue
Session history
New session
Message actions
RateLimitException.php#9-9
RateLimitException.php#9-9
Reveiw the diff. Mostly
@app/Jobs/Crm/MatchActivityCrmData.php
,
@app/Exceptions/RateLimitException.php
,
@app/Jobs/Middleware/HandleHubspotRateLimit.php
,
@app/Services/Crm/Hubspot/Client.php
and
@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php
. The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?
Thought for 5s
Thought for 5s
I'll review the implementation carefully. Let me first check how
RateLimitException
is used elsewhere and look at the test files and
PaginationState
.
Bash
Find all usages of RateLimitException outside the changed files
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/app --include="*.php" | grep -v "HandleHubspotRateLimit\|MatchActivityCrmData\|Client.php\|RateLimitException.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:17:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:68: RateLimitException |
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:15:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:58: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:19:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:76: RateLimitException |
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:50: * @throws RateLimitException When rate limit is hit
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:195: // RateLimitException and other exceptions are re-thrown as-is
Read
PaginationState.php
PaginationState.php...
|
19565
|
NULL
|
NULL
|
NULL
|
|
19569
|
836
|
9
|
2026-05-11T13:05:38.352680+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778504738352_m1.jpg...
|
Code
|
Review rate limit handli… — app
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G)
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php
SaveTranscription.php
SetupLayout.php
SyncActivity.php
SyncFieldMetadata.php
SyncHubspotObjects.php
SyncLeads.php
SyncObjects.php
SyncOpportunitiesJob.php
SyncOpportunity.php
SyncProfileMetadata.php
SyncTeamFieldsJob.php
SyncTeamMetadata.php
UpdateOpportunitySpecifications.php
UpdateStage.php
DealRisks
Mailbox
MeetingBot
Middleware
HandleHubspotRateLimit.php
RateLimited.php
Streaming
Team
Telephony
User
BaseProcessingJob.php
DummyJob.php
ImportRecallAIRecordingsJob.php
ImportRemoteTrackJob.php
Job.php
JobDispatcher.php
JobDispatcherInterface.php
PurgeSoftDeletedOpportunityJob.php
SqsVisibilityControl.php
Listeners
Mail
Models
Activity
Ai
AskAnything
Calendar
Connection
Crm
Jobs
app
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
MySQL Section
MYSQL
MYSQL
MatchActivityCrmData.php, Editor Group 1
RateLimitException.php, Editor Group 1
HandleHubspotRateLimit.php, Editor Group 1...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Explorer (⇧⌘E)","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":true},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Search (⇧⌘F)","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Source Control (⌃⇧G)","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Run and Debug (⇧⌘D)","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Remote Explorer","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Extensions (⇧⌘X) - 2 require update","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Testing","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Claude Code","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"EXPLORER","depth":17,"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"EXPLORER","depth":18,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Explorer Section: app","depth":21,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXStaticText","text":"","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"Explorer Section: app","depth":22,"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"APP","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CheckAndRetryRemoteMatch.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateFollowupActivity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateNotes.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivitiesToNewOpportunity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivityCrmData.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"NoteObject.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SaveActivity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SaveTranscription.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SetupLayout.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncActivity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncFieldMetadata.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncHubspotObjects.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncLeads.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncObjects.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncOpportunitiesJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncOpportunity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncProfileMetadata.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncTeamFieldsJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncTeamMetadata.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"UpdateOpportunitySpecifications.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"UpdateStage.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"DealRisks","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mailbox","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MeetingBot","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Middleware","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"HandleHubspotRateLimit.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"RateLimited.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Streaming","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Team","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Telephony","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"User","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"BaseProcessingJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"DummyJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"ImportRecallAIRecordingsJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"ImportRemoteTrackJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Job.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JobDispatcher.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JobDispatcherInterface.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"PurgeSoftDeletedOpportunityJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SqsVisibilityControl.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Listeners","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mail","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Models","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Activity","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Ai","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"AskAnything","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Calendar","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Connection","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Crm","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Jobs","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"app","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Outline Section","depth":21,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"OUTLINE","depth":22,"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"OUTLINE","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Timeline Section","depth":21,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"TIMELINE","depth":22,"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"TIMELINE","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"MySQL Section","depth":21,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"MYSQL","depth":22,"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"MYSQL","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"MatchActivityCrmData.php, Editor Group 1","depth":28,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"RateLimitException.php, Editor Group 1","depth":28,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"HandleHubspotRateLimit.php, Editor Group 1","depth":28,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
3469369873221376634
|
790688386330300207
|
click
|
accessibility
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G)
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php
SaveTranscription.php
SetupLayout.php
SyncActivity.php
SyncFieldMetadata.php
SyncHubspotObjects.php
SyncLeads.php
SyncObjects.php
SyncOpportunitiesJob.php
SyncOpportunity.php
SyncProfileMetadata.php
SyncTeamFieldsJob.php
SyncTeamMetadata.php
UpdateOpportunitySpecifications.php
UpdateStage.php
DealRisks
Mailbox
MeetingBot
Middleware
HandleHubspotRateLimit.php
RateLimited.php
Streaming
Team
Telephony
User
BaseProcessingJob.php
DummyJob.php
ImportRecallAIRecordingsJob.php
ImportRemoteTrackJob.php
Job.php
JobDispatcher.php
JobDispatcherInterface.php
PurgeSoftDeletedOpportunityJob.php
SqsVisibilityControl.php
Listeners
Mail
Models
Activity
Ai
AskAnything
Calendar
Connection
Crm
Jobs
app
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
MySQL Section
MYSQL
MYSQL
MatchActivityCrmData.php, Editor Group 1
RateLimitException.php, Editor Group 1
HandleHubspotRateLimit.php, Editor Group 1...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
19573
|
836
|
10
|
2026-05-11T13:06:08.329810+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778504768329_m1.jpg...
|
Code
|
✻ [Claude Code] MatchActivityCrmDataTest.php (Matc ✻ [Claude Code] MatchActivityCrmDataTest.php (MatchActivityCrmDataTest.php) — app...
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 13 pending changes
13
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php
SaveTranscription.php
SetupLayout.php
...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Explorer (⇧⌘E)","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":true},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Search (⇧⌘F)","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Source Control (⌃⇧G) - 13 pending changes","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"13","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Run and Debug (⇧⌘D)","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Remote Explorer","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Extensions (⇧⌘X) - 2 require update","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Testing","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Claude Code","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"EXPLORER","depth":17,"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"EXPLORER","depth":18,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Explorer Section: app","depth":21,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXStaticText","text":"","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"Explorer Section: app","depth":22,"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"APP","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CheckAndRetryRemoteMatch.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateFollowupActivity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateNotes.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivitiesToNewOpportunity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivityCrmData.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"NoteObject.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SaveActivity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SaveTranscription.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SetupLayout.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"}]...
|
-5490557074852084900
|
6519545676781258018
|
click
|
accessibility
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 13 pending changes
13
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php
SaveTranscription.php
SetupLayout.php
...
|
19569
|
NULL
|
NULL
|
NULL
|
|
19577
|
836
|
11
|
2026-05-11T13:06:39.169302+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778504799169_m1.jpg...
|
Code
|
HandleHubspotRateLimit.php — app
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 13 pending changes
13
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php
SaveTranscription.php
SetupLayout.php
SyncActivity.php
SyncFieldMetadata.php
SyncHubspotObjects.php
SyncLeads.php
SyncObjects.php
SyncOpportunitiesJob.php
SyncOpportunity.php
SyncProfileMetadata.php
SyncTeamFieldsJob.php
SyncTeamMetadata.php
UpdateOpportunitySpecifications.php
UpdateStage.php
DealRisks
Mailbox
MeetingBot
Middleware
HandleHubspotRateLimit.php
RateLimited.php
Streaming
Team
Telephony
User
BaseProcessingJob.php
DummyJob.php
ImportRecallAIRecordingsJob.php
ImportRemoteTrackJob.php
Job.php
JobDispatcher.php
JobDispatcherInterface.php
PurgeSoftDeletedOpportunityJob.php
SqsVisibilityControl.php
Listeners
Mail
Models
Activity
Ai
AskAnything
Calendar
Connection
Crm
Jobs
app
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
MySQL Section
MYSQL
MYSQL
MatchActivityCrmData.php, Editor Group 1
RateLimitException.php, Editor Group 1
HandleHubspotRateLimit.php, Editor Group 1
Client.php, Editor Group 1
HubspotPaginationService.php, Editor Group 1
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Middleware;
use Illuminate\Support\Facades\Log;
use Jiminny\Exceptions\RateLimitException;
/**
* Job middleware that catches RateLimitException from HubSpot API calls
* and releases the job back to the queue with the appropriate delay.
*/
class HandleHubspotRateLimit
{
private const int MAX_RETRY_DELAY = 600;
private const int MIN_RETRY_DELAY = 1;
private const int JITTER_SECONDS = 5;
public function handle(object $job, callable $next): void
{
try {
$next($job);
} catch (RateLimitException $e) {
$delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));
// Add jitter to prevent thundering herd problem by randomizing retry times
$delay += random_int(0, self::JITTER_SECONDS);
$attempts = $job->attempts();
if ($attempts <= 3 || $attempts % 10 === 0) {
Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [
'job_class' => $job::class,
'attempts' => $attempts,
'retry_after' => $e->getRetryAfter(),
'delay' => $delay,
]);
}
$job->release($delay);
}
}
}
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Middleware;
use Illuminate\Support\Facades\Log;
use Jiminny\Exceptions\RateLimitException;
/**
* Job middleware that catches RateLimitException from HubSpot API calls
* and releases the job back to the queue with the appropriate delay.
*/
class HandleHubspotRateLimit
{
private const int MAX_RETRY_DELAY = 600;
private const int MIN_RETRY_DELAY = 1;
private const int JITTER_SECONDS = 5;
public function handle(object $job, callable $next): void
{
try {
$next($job);
} catch (RateLimitException $e) {
$delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));
// Add jitter to prevent thundering herd problem by randomizing retry times
$delay += random_int(0, self::JITTER_SECONDS);
$attempts = $job->attempts();
if ($attempts <= 3 || $attempts % 10 === 0) {
Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [
'job_class' => $job::class,
'attempts' => $attempts,
'retry_after' => $e->getRetryAfter(),
'delay' => $delay,
]);
}
$job->release($delay);
}
}
}
Review rate limit handli…, Editor Group 2
remote
app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...
JY-20725-handle-HS-search-rate-limit*
app (Git) - Synchronize Changes
Errors: 6, Warnings: 9, Infos: 2
6
9
2
Notifications
key, PHP extension: Premium features not active.
8.3, Language Level: 8.3
Sign In
Sign In
PHP
Editor Language Status: $(copilot) No inline suggestion available, Inline suggestions
LF
UTF-8
Spaces: 4
Ln 14, Col 29 (22 selected)
git-commit Lukas Kovalik (28 minutes ago)
Lukas Kovalik (28 minutes ago)
Diff editor
Clear
Review rate limit handling for HubSpot job queue
Session history
New session
Message actions
RateLimitException.php#9-9
RateLimitException.php#9-9
Reveiw the diff. Mostly
@app/Jobs/Crm/MatchActivityCrmData.php
,
@app/Exceptions/RateLimitException.php
,
@app/Jobs/Middleware/HandleHubspotRateLimit.php
,
@app/Services/Crm/Hubspot/Client.php
and
@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php
. The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?
Thought for 5s
Thought for 5s
I'll review the implementation carefully. Let me first check how
RateLimitException
is used elsewhere and look at the test files and
PaginationState
.
Bash
Find all usages of RateLimitException outside the changed files
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/app --include="*.php" | grep -v "HandleHubspotRateLimit\|MatchActivityCrmData\|Client.php\|RateLimitException.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:17:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:68: RateLimitException |
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:15:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:58: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:19:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:76: RateLimitException |
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:50: * @throws RateLimitException When rate limit is hit
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:195: // RateLimitException and other exceptions are re-thrown as-is
Read
PaginationState.php
PaginationState.php
Read
HandleHubspotRateLimitTest.php
HandleHubspotRateLimitTest.php
Bash
Check how RateLimitException is used in GenerateActionItemsJob
IN
grep -rn "RateLimitException\|LogicException\|RuntimeException" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -20
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
Bash
Find all catch blocks or instanceof checks for RateLimitException
IN
grep -rn "catch.*RateLimitException\|instanceof RateLimitException" /Users/lukas/jiminny/app/app --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:11: * Job middleware that catches RateLimitException from HubSpot API calls
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:24: } catch (RateLimitException $e) {
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:149: if (! $e instanceof RateLimitException) {
Bash
Find all test references to RateLimitException
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/tests --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:13:#[CoversClass(RateLimitException::class)]
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:14:class RateLimitExceptionTest extends TestCase
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:18: $exception = new RateLimitException();
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:28: $exception = new RateLimitException('Hubspot rate limit', 30, $previous);
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:52: $exception = new RateLimitException('test', $input);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:10:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:49: public function testPropagatesNonRateLimitExceptions(): void
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:103: throw new RateLimitException('rate limited', $retryAfter);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:150: throw new RateLimitException('rate limited', 1);
Bash
Check retry/failure handling in GenerateActionItemsJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -30
Copy code to clipboard...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Explorer (⇧⌘E)","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":true},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Search (⇧⌘F)","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Source Control (⌃⇧G) - 13 pending changes","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"13","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Run and Debug (⇧⌘D)","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Remote Explorer","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Extensions (⇧⌘X) - 2 require update","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Testing","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Claude Code","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"EXPLORER","depth":17,"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"EXPLORER","depth":18,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Explorer Section: app","depth":21,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXStaticText","text":"","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"Explorer Section: app","depth":22,"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"APP","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CheckAndRetryRemoteMatch.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateFollowupActivity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateNotes.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivitiesToNewOpportunity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivityCrmData.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"NoteObject.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SaveActivity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SaveTranscription.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SetupLayout.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncActivity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncFieldMetadata.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncHubspotObjects.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncLeads.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncObjects.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncOpportunitiesJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncOpportunity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncProfileMetadata.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncTeamFieldsJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncTeamMetadata.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"UpdateOpportunitySpecifications.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"UpdateStage.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"DealRisks","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mailbox","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MeetingBot","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Middleware","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"HandleHubspotRateLimit.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"RateLimited.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Streaming","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Team","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Telephony","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"User","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"BaseProcessingJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"DummyJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"ImportRecallAIRecordingsJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"ImportRemoteTrackJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Job.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JobDispatcher.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JobDispatcherInterface.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"PurgeSoftDeletedOpportunityJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SqsVisibilityControl.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Listeners","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mail","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Models","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Activity","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Ai","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"AskAnything","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Calendar","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Connection","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Crm","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Jobs","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"app","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Outline Section","depth":21,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"OUTLINE","depth":22,"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"OUTLINE","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Timeline Section","depth":21,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"TIMELINE","depth":22,"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"TIMELINE","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"MySQL Section","depth":21,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"MYSQL","depth":22,"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"MYSQL","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"MatchActivityCrmData.php, Editor Group 1","depth":28,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"RateLimitException.php, Editor Group 1","depth":28,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"HandleHubspotRateLimit.php, Editor Group 1","depth":28,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXRadioButton","text":"Client.php, Editor Group 1","depth":28,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"HubspotPaginationService.php, Editor Group 1","depth":28,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Middleware;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Exceptions\\RateLimitException;\n\n/**\n * Job middleware that catches RateLimitException from HubSpot API calls\n * and releases the job back to the queue with the appropriate delay.\n */\nclass HandleHubspotRateLimit\n{\n private const int MAX_RETRY_DELAY = 600;\n private const int MIN_RETRY_DELAY = 1;\n private const int JITTER_SECONDS = 5;\n\n public function handle(object $job, callable $next): void\n {\n try {\n $next($job);\n } catch (RateLimitException $e) {\n $delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));\n // Add jitter to prevent thundering herd problem by randomizing retry times\n $delay += random_int(0, self::JITTER_SECONDS);\n\n $attempts = $job->attempts();\n if ($attempts <= 3 || $attempts % 10 === 0) {\n Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [\n 'job_class' => $job::class,\n 'attempts' => $attempts,\n 'retry_after' => $e->getRetryAfter(),\n 'delay' => $delay,\n ]);\n }\n\n $job->release($delay);\n }\n }\n}","depth":28,"on_screen":true,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Middleware;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Exceptions\\RateLimitException;\n\n/**\n * Job middleware that catches RateLimitException from HubSpot API calls\n * and releases the job back to the queue with the appropriate delay.\n */\nclass HandleHubspotRateLimit\n{\n private const int MAX_RETRY_DELAY = 600;\n private const int MIN_RETRY_DELAY = 1;\n private const int JITTER_SECONDS = 5;\n\n public function handle(object $job, callable $next): void\n {\n try {\n $next($job);\n } catch (RateLimitException $e) {\n $delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));\n // Add jitter to prevent thundering herd problem by randomizing retry times\n $delay += random_int(0, self::JITTER_SECONDS);\n\n $attempts = $job->attempts();\n if ($attempts <= 3 || $attempts % 10 === 0) {\n Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [\n 'job_class' => $job::class,\n 'attempts' => $attempts,\n 'retry_after' => $e->getRetryAfter(),\n 'delay' => $delay,\n ]);\n }\n\n $job->release($delay);\n }\n }\n}","role_description":"editor","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Middleware;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Exceptions\\RateLimitException;\n\n/**\n * Job middleware that catches RateLimitException from HubSpot API calls\n * and releases the job back to the queue with the appropriate delay.\n */\nclass HandleHubspotRateLimit\n{\n private const int MAX_RETRY_DELAY = 600;\n private const int MIN_RETRY_DELAY = 1;\n private const int JITTER_SECONDS = 5;\n\n public function handle(object $job, callable $next): void\n {\n try {\n $next($job);\n } catch (RateLimitException $e) {\n $delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));\n // Add jitter to prevent thundering herd problem by randomizing retry times\n $delay += random_int(0, self::JITTER_SECONDS);\n\n $attempts = $job->attempts();\n if ($attempts <= 3 || $attempts % 10 === 0) {\n Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [\n 'job_class' => $job::class,\n 'attempts' => $attempts,\n 'retry_after' => $e->getRetryAfter(),\n 'delay' => $delay,\n ]);\n }\n\n $job->release($delay);\n }\n }\n}","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Review rate limit handli…, Editor Group 2","depth":28,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXButton","text":"remote","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JY-20725-handle-HS-search-rate-limit*","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"app (Git) - Synchronize Changes","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Errors: 6, Warnings: 9, Infos: 2","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"6","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"9","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Notifications","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"key, PHP extension: Premium features not active.","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"8.3, Language Level: 8.3","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sign In","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Sign In","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"PHP","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Editor Language Status: $(copilot) No inline suggestion available, Inline suggestions","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"LF","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"UTF-8","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Spaces: 4","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Ln 14, Col 29 (22 selected)","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"git-commit Lukas Kovalik (28 minutes ago)","depth":16,"bounds":{"left":0.98888886,"top":0.0,"width":0.01111114,"height":0.024444444},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.9923611,"top":0.0,"width":0.0076388717,"height":0.017777778},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Lukas Kovalik (28 minutes ago)","depth":17,"bounds":{"left":1.0,"top":0.0,"width":-0.003472209,"height":0.015555556},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Diff editor","depth":12,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Clear","depth":12,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Review rate limit handling for HubSpot job queue","depth":19,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Session history","depth":19,"on_screen":true,"help_text":"Session history","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New session","depth":19,"on_screen":true,"help_text":"New session","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Message actions","depth":24,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"RateLimitException.php#9-9","depth":23,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"RateLimitException.php#9-9","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Reveiw the diff. Mostly","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Jobs/Crm/MatchActivityCrmData.php","depth":26,"on_screen":false,"help_text":"Open app/Jobs/Crm/MatchActivityCrmData.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Exceptions/RateLimitException.php","depth":26,"on_screen":false,"help_text":"Open app/Exceptions/RateLimitException.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Jobs/Middleware/HandleHubspotRateLimit.php","depth":26,"on_screen":false,"help_text":"Open app/Jobs/Middleware/HandleHubspotRateLimit.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Services/Crm/Hubspot/Client.php","depth":26,"on_screen":false,"help_text":"Open app/Services/Crm/Hubspot/Client.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"and","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php","depth":26,"on_screen":false,"help_text":"Open app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":". The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Thought for 5s","depth":23,"on_screen":false,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thought for 5s","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"I'll review the implementation carefully. Let me first check how","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is used elsewhere and look at the test files and","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"PaginationState","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":".","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find all usages of RateLimitException outside the changed files","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"RateLimitException\" /Users/lukas/jiminny/app/app --include=\"*.php\" | grep -v \"HandleHubspotRateLimit\\|MatchActivityCrmData\\|Client.php\\|RateLimitException.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception\n/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:17:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:68: RateLimitException |\n/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:15:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:58: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception\n/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:19:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:76: RateLimitException |\n/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:8:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:50: * @throws RateLimitException When rate limit is hit\n/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:195: // RateLimitException and other exceptions are re-thrown as-is","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"PaginationState.php","depth":24,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"PaginationState.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"HandleHubspotRateLimitTest.php","depth":24,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"HandleHubspotRateLimitTest.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check how RateLimitException is used in GenerateActionItemsJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"RateLimitException\\|LogicException\\|RuntimeException\" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -20","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find all catch blocks or instanceof checks for RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"catch.*RateLimitException\\|instanceof RateLimitException\" /Users/lukas/jiminny/app/app --include=\"*.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:11: * Job middleware that catches RateLimitException from HubSpot API calls\n/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:24: } catch (RateLimitException $e) {\n/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:149: if (! $e instanceof RateLimitException) {","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find all test references to RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"RateLimitException\" /Users/lukas/jiminny/app/tests --include=\"*.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:8:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:13:#[CoversClass(RateLimitException::class)]\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:14:class RateLimitExceptionTest extends TestCase\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:18: $exception = new RateLimitException();\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:28: $exception = new RateLimitException('Hubspot rate limit', 30, $previous);\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:52: $exception = new RateLimitException('test', $input);\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:10:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:49: public function testPropagatesNonRateLimitExceptions(): void\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:103: throw new RateLimitException('rate limited', $retryAfter);\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:150: throw new RateLimitException('rate limited', 1);","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check retry/failure handling in GenerateActionItemsJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"RateLimitException\\|retryUntil\\|backoff\\|maxExceptions\\|maxTries\\|release\\|failed\" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -30","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-7108673231914143194
|
-8461678292826835613
|
idle
|
accessibility
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 13 pending changes
13
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php
SaveTranscription.php
SetupLayout.php
SyncActivity.php
SyncFieldMetadata.php
SyncHubspotObjects.php
SyncLeads.php
SyncObjects.php
SyncOpportunitiesJob.php
SyncOpportunity.php
SyncProfileMetadata.php
SyncTeamFieldsJob.php
SyncTeamMetadata.php
UpdateOpportunitySpecifications.php
UpdateStage.php
DealRisks
Mailbox
MeetingBot
Middleware
HandleHubspotRateLimit.php
RateLimited.php
Streaming
Team
Telephony
User
BaseProcessingJob.php
DummyJob.php
ImportRecallAIRecordingsJob.php
ImportRemoteTrackJob.php
Job.php
JobDispatcher.php
JobDispatcherInterface.php
PurgeSoftDeletedOpportunityJob.php
SqsVisibilityControl.php
Listeners
Mail
Models
Activity
Ai
AskAnything
Calendar
Connection
Crm
Jobs
app
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
MySQL Section
MYSQL
MYSQL
MatchActivityCrmData.php, Editor Group 1
RateLimitException.php, Editor Group 1
HandleHubspotRateLimit.php, Editor Group 1
Client.php, Editor Group 1
HubspotPaginationService.php, Editor Group 1
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Middleware;
use Illuminate\Support\Facades\Log;
use Jiminny\Exceptions\RateLimitException;
/**
* Job middleware that catches RateLimitException from HubSpot API calls
* and releases the job back to the queue with the appropriate delay.
*/
class HandleHubspotRateLimit
{
private const int MAX_RETRY_DELAY = 600;
private const int MIN_RETRY_DELAY = 1;
private const int JITTER_SECONDS = 5;
public function handle(object $job, callable $next): void
{
try {
$next($job);
} catch (RateLimitException $e) {
$delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));
// Add jitter to prevent thundering herd problem by randomizing retry times
$delay += random_int(0, self::JITTER_SECONDS);
$attempts = $job->attempts();
if ($attempts <= 3 || $attempts % 10 === 0) {
Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [
'job_class' => $job::class,
'attempts' => $attempts,
'retry_after' => $e->getRetryAfter(),
'delay' => $delay,
]);
}
$job->release($delay);
}
}
}
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Middleware;
use Illuminate\Support\Facades\Log;
use Jiminny\Exceptions\RateLimitException;
/**
* Job middleware that catches RateLimitException from HubSpot API calls
* and releases the job back to the queue with the appropriate delay.
*/
class HandleHubspotRateLimit
{
private const int MAX_RETRY_DELAY = 600;
private const int MIN_RETRY_DELAY = 1;
private const int JITTER_SECONDS = 5;
public function handle(object $job, callable $next): void
{
try {
$next($job);
} catch (RateLimitException $e) {
$delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));
// Add jitter to prevent thundering herd problem by randomizing retry times
$delay += random_int(0, self::JITTER_SECONDS);
$attempts = $job->attempts();
if ($attempts <= 3 || $attempts % 10 === 0) {
Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [
'job_class' => $job::class,
'attempts' => $attempts,
'retry_after' => $e->getRetryAfter(),
'delay' => $delay,
]);
}
$job->release($delay);
}
}
}
Review rate limit handli…, Editor Group 2
remote
app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...
JY-20725-handle-HS-search-rate-limit*
app (Git) - Synchronize Changes
Errors: 6, Warnings: 9, Infos: 2
6
9
2
Notifications
key, PHP extension: Premium features not active.
8.3, Language Level: 8.3
Sign In
Sign In
PHP
Editor Language Status: $(copilot) No inline suggestion available, Inline suggestions
LF
UTF-8
Spaces: 4
Ln 14, Col 29 (22 selected)
git-commit Lukas Kovalik (28 minutes ago)
Lukas Kovalik (28 minutes ago)
Diff editor
Clear
Review rate limit handling for HubSpot job queue
Session history
New session
Message actions
RateLimitException.php#9-9
RateLimitException.php#9-9
Reveiw the diff. Mostly
@app/Jobs/Crm/MatchActivityCrmData.php
,
@app/Exceptions/RateLimitException.php
,
@app/Jobs/Middleware/HandleHubspotRateLimit.php
,
@app/Services/Crm/Hubspot/Client.php
and
@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php
. The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?
Thought for 5s
Thought for 5s
I'll review the implementation carefully. Let me first check how
RateLimitException
is used elsewhere and look at the test files and
PaginationState
.
Bash
Find all usages of RateLimitException outside the changed files
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/app --include="*.php" | grep -v "HandleHubspotRateLimit\|MatchActivityCrmData\|Client.php\|RateLimitException.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:17:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:68: RateLimitException |
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:15:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:58: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:19:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:76: RateLimitException |
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:50: * @throws RateLimitException When rate limit is hit
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:195: // RateLimitException and other exceptions are re-thrown as-is
Read
PaginationState.php
PaginationState.php
Read
HandleHubspotRateLimitTest.php
HandleHubspotRateLimitTest.php
Bash
Check how RateLimitException is used in GenerateActionItemsJob
IN
grep -rn "RateLimitException\|LogicException\|RuntimeException" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -20
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
Bash
Find all catch blocks or instanceof checks for RateLimitException
IN
grep -rn "catch.*RateLimitException\|instanceof RateLimitException" /Users/lukas/jiminny/app/app --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:11: * Job middleware that catches RateLimitException from HubSpot API calls
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:24: } catch (RateLimitException $e) {
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:149: if (! $e instanceof RateLimitException) {
Bash
Find all test references to RateLimitException
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/tests --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:13:#[CoversClass(RateLimitException::class)]
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:14:class RateLimitExceptionTest extends TestCase
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:18: $exception = new RateLimitException();
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:28: $exception = new RateLimitException('Hubspot rate limit', 30, $previous);
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:52: $exception = new RateLimitException('test', $input);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:10:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:49: public function testPropagatesNonRateLimitExceptions(): void
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:103: throw new RateLimitException('rate limited', $retryAfter);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:150: throw new RateLimitException('rate limited', 1);
Bash
Check retry/failure handling in GenerateActionItemsJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -30
Copy code to clipboard...
|
NULL
|
/Users/lukas/jiminny/app/app/Jobs/Middleware/Handl /Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php...
|
NULL
|
NULL
|
|
19579
|
836
|
12
|
2026-05-11T13:06:47.230905+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778504807230_m1.jpg...
|
Code
|
HandleHubspotRateLimit.php — app
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 13 pending changes
13
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php
SaveTranscription.php
SetupLayout.php
SyncActivity.php
SyncFieldMetadata.php
SyncHubspotObjects.php
SyncLeads.php
SyncObjects.php
SyncOpportunitiesJob.php
SyncOpportunity.php
SyncProfileMetadata.php
SyncTeamFieldsJob.php
SyncTeamMetadata.php
UpdateOpportunitySpecifications.php
UpdateStage.php
DealRisks
Mailbox
MeetingBot
Middleware
HandleHubspotRateLimit.php
RateLimited.php
Streaming
Team
Telephony
User
BaseProcessingJob.php
DummyJob.php
ImportRecallAIRecordingsJob.php
ImportRemoteTrackJob.php
Job.php
JobDispatcher.php
JobDispatcherInterface.php
PurgeSoftDeletedOpportunityJob.php
SqsVisibilityControl.php
Listeners
Mail
Models
Activity
Ai
AskAnything
Calendar
Connection
Crm
Jobs
app
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
MySQL Section
MYSQL
MYSQL
MatchActivityCrmData.php, Editor Group 1
RateLimitException.php, Editor Group 1
HandleHubspotRateLimit.php, Editor Group 1
Client.php, Editor Group 1
HubspotPaginationService.php, Editor Group 1
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Middleware;
use Illuminate\Support\Facades\Log;
use Jiminny\Exceptions\RateLimitException;
/**
* Job middleware that catches RateLimitException from HubSpot API calls
* and releases the job back to the queue with the appropriate delay.
*/
class HandleHubspotRateLimit
{
private const int MAX_RETRY_DELAY = 600;
private const int MIN_RETRY_DELAY = 1;
private const int JITTER_SECONDS = 5;
public function handle(object $job, callable $next): void
{
try {
$next($job);
} catch (RateLimitException $e) {
$delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));
// Add jitter to prevent thundering herd problem by randomizing retry times
$delay += random_int(0, self::JITTER_SECONDS);
$attempts = $job->attempts();
if ($attempts <= 3 || $attempts % 10 === 0) {
Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [
'job_class' => $job::class,
'attempts' => $attempts,
'retry_after' => $e->getRetryAfter(),
'delay' => $delay,
]);
}
$job->release($delay);
}
}
}
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Middleware;
use Illuminate\Support\Facades\Log;
use Jiminny\Exceptions\RateLimitException;
/**
* Job middleware that catches RateLimitException from HubSpot API calls
* and releases the job back to the queue with the appropriate delay.
*/
class HandleHubspotRateLimit
{
private const int MAX_RETRY_DELAY = 600;
private const int MIN_RETRY_DELAY = 1;
private const int JITTER_SECONDS = 5;
public function handle(object $job, callable $next): void
{
try {
$next($job);
} catch (RateLimitException $e) {
$delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));
// Add jitter to prevent thundering herd problem by randomizing retry times
$delay += random_int(0, self::JITTER_SECONDS);
$attempts = $job->attempts();
if ($attempts <= 3 || $attempts % 10 === 0) {
Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [
'job_class' => $job::class,
'attempts' => $attempts,
'retry_after' => $e->getRetryAfter(),
'delay' => $delay,
]);
}
$job->release($delay);
}
}
}
Review rate limit handli…, Editor Group 2
remote
app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...
JY-20725-handle-HS-search-rate-limit*
app (Git) - Synchronize Changes
Errors: 6, Warnings: 9, Infos: 2
6
9
2
Notifications
key, PHP extension: Premium features not active.
8.3, Language Level: 8.3
Sign In
Sign In
PHP
Editor Language Status: $(copilot) No inline suggestion available, Inline suggestions
LF
UTF-8
Spaces: 4
Ln 14, Col 29 (22 selected)
git-commit Lukas Kovalik (28 minutes ago)
Lukas Kovalik (28 minutes ago)
Diff editor
Clear
Review rate limit handling for HubSpot job queue
Session history
New session
Message actions
RateLimitException.php#9-9
RateLimitException.php#9-9
Reveiw the diff. Mostly
@app/Jobs/Crm/MatchActivityCrmData.php
,
@app/Exceptions/RateLimitException.php
,
@app/Jobs/Middleware/HandleHubspotRateLimit.php
,
@app/Services/Crm/Hubspot/Client.php
and
@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php
. The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?
Thought for 5s
Thought for 5s
I'll review the implementation carefully. Let me first check how
RateLimitException
is used elsewhere and look at the test files and
PaginationState
.
Bash
Find all usages of RateLimitException outside the changed files
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/app --include="*.php" | grep -v "HandleHubspotRateLimit\|MatchActivityCrmData\|Client.php\|RateLimitException.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:17:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:68: RateLimitException |
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:15:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:58: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:19:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:76: RateLimitException |
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:50: * @throws RateLimitException When rate limit is hit
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:195: // RateLimitException and other exceptions are re-thrown as-is
Read
PaginationState.php
PaginationState.php
Read
HandleHubspotRateLimitTest.php
HandleHubspotRateLimitTest.php
Bash
Check how RateLimitException is used in GenerateActionItemsJob
IN
grep -rn "RateLimitException\|LogicException\|RuntimeException" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -20
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
Bash
Find all catch blocks or instanceof checks for RateLimitException
IN
grep -rn "catch.*RateLimitException\|instanceof RateLimitException" /Users/lukas/jiminny/app/app --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:11: * Job middleware that catches RateLimitException from HubSpot API calls
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:24: } catch (RateLimitException $e) {
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:149: if (! $e instanceof RateLimitException) {
Bash
Find all test references to RateLimitException
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/tests --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:13:#[CoversClass(RateLimitException::class)]
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:14:class RateLimitExceptionTest extends TestCase
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:18: $exception = new RateLimitException();
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:28: $exception = new RateLimitException('Hubspot rate limit', 30, $previous);
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:52: $exception = new RateLimitException('test', $input);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:10:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:49: public function testPropagatesNonRateLimitExceptions(): void
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:103: throw new RateLimitException('rate limited', $retryAfter);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:150: throw new RateLimitException('rate limited', 1);
Bash
Check retry/failure handling in GenerateActionItemsJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -30
Copy code to clipboard
OUT
13:use Jiminny\Exceptions\RateLimitException;
51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
56: $this->release(30);
Bash
Check retry/failure handling in GenerateAiCallScoringJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php | head -30
Copy code to clipboard
OUT
17:use Jiminny\Exceptions\RateLimitException;
68: RateLimitException |
75: $this->release(30);
Bash
Check retry config in MatchActivityCrmData
IN
grep -n "retryAfter\|RETRY_WINDOW\|retryUntil\|maxTries" /Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php
Copy code to clipboard
OUT
34: private const int RETRY_WINDOW_MINUTES = 30;
45: public function retryUntil(): \DateTimeInterface
47: return now()->addMinutes(self::RETRY_WINDOW_MINUTES);
77: return self::RETRY_WINDOW_MINUTES * 60 + 60;
Bash
Check the cache key format
IN
grep -n "getRateLimitCacheKey\|hubspot:ratelimit" /Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Client.php
Copy code to clipboard
OUT
78: $cacheKey = $this->getRateLimitCacheKey();
110: private function getRateLimitCacheKey(): string
112: return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());
Bash
Find other jobs that might use the rate limit middleware
IN
grep -rn "class.*Middleware\|HandleHubspotRateLimit" /Users/lukas/jiminny/app/app/Jobs --include="*.php" | grep -v "HandleHubspotRateLimit.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:18:use Jiminny\Jobs\Middleware\HandleHubspotRateLimit;
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:42: return [new HandleHubspotRateLimit()];
Read
HubspotClientInterface.php
HubspotClientInterface.php
Thought for 73s
Thought for 73s
Now I have a complete picture. Here's my full analysis:
Review Summary
Review Summary
RuntimeException vs LogicException — Safe ✓
RuntimeException
vs
LogicException
— Safe ✓
The change is semantically correct and won't break anything.
LogicException
is for programmer errors (invalid arguments, contract violations). A rate limit from an external API is a runtime condition —
RuntimeException
is the right parent. All callers catch
RateLimitException
by name explicitly (union catches in
GenerateActionItemsJob
,
GenerateAiCallScoringJob
,
SummarizeTranscriptionJob
,
GenerateAiActivityTypeJob
) or check
instanceof RateLimitException
— none relies on the parent class type, so nothing breaks.
Issue 1 — Circuit breaker stores stale delay (most important bug)
Issue 1 — Circuit breaker stores stale delay (most important bug)
Client.php:94
Client.php:94
Copy code to clipboard
Redis::setex($cacheKey, $retryAfter, (string) $retryAfter);
The TTL is
$retryAfter
seconds, but the
stored value
is also the original
$retryAfter
. If a second job reads this cache 20 seconds later, it throws
RateLimitException(retryAfter=30)
and gets delayed 30 more seconds — even though only 10 remain. In a spike of 100 jobs, each subsequent job inflates its wait.
Fix:
store the absolute expiry timestamp, reconstruct the remaining delay when reading:
Copy code to clipboard
// on 429:
Redis::setex($cacheKey, $retryAfter, (string) (time() + $retryAfter));
// in the cached-read branch:
$remaining = max(1, (int) $cachedRetryAfter - time());
throw new RateLimitException('Hubspot rate limit (cached circuit-breaker)', $remaining);
Issue 2 — retryUntil() window may expire under sustained rate limiting
Issue 2 —
retryUntil()
window may expire under sustained rate limiting
MatchActivityCrmData.php:45-47
MatchActivityCrmData.php:45-47
retryUntil()
is calculated as
now() + 30 min
at
dispatch time
and stored in the job payload. With
MAX_RETRY_DELAY = 600s
, you only get ~3 rate-limit-triggered releases before the 30-minute window closes and the job is permanently failed. For a heavy 429 spike (daily limit, parsed as 600s), this can easily happen.
Consider increasing
RETRY_WINDOW_MINUTES
to 60 or more, or making it configurable. The
uniqueFor()
value should be updated to match.
Issue 3 — Only search() uses the circuit breaker, but other methods can still hit 429
Issue 3 — Only
search()
uses the circuit breaker, but other methods can still hit 429
Client.php:76-108
Client.php:76-108
executeRequest()
is only called from
search()
. Methods like
getOpportunityById()
,
batchReadObjects()
,
getContactByEmail()
bypass it entirely. If HubSpot's 429 is account-wide (not search-endpoint-specific), those methods will keep firing even while the circuit breaker is supposedly open. This is likely fine because the search endpoint has its own tighter quota (5 RPS), but it's worth being explicit in a comment....
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Explorer (⇧⌘E)","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":true},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Search (⇧⌘F)","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Source Control (⌃⇧G) - 13 pending changes","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"13","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Run and Debug (⇧⌘D)","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Remote Explorer","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Extensions (⇧⌘X) - 2 require update","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Testing","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Claude Code","depth":19,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"EXPLORER","depth":17,"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"EXPLORER","depth":18,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Explorer Section: app","depth":21,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXStaticText","text":"","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"Explorer Section: app","depth":22,"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"APP","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CheckAndRetryRemoteMatch.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateFollowupActivity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateNotes.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivitiesToNewOpportunity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivityCrmData.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"NoteObject.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SaveActivity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SaveTranscription.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SetupLayout.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncActivity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncFieldMetadata.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncHubspotObjects.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncLeads.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncObjects.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncOpportunitiesJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncOpportunity.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncProfileMetadata.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncTeamFieldsJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncTeamMetadata.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"UpdateOpportunitySpecifications.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"UpdateStage.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"DealRisks","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mailbox","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MeetingBot","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Middleware","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"HandleHubspotRateLimit.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"RateLimited.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Streaming","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Team","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Telephony","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"User","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"BaseProcessingJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"DummyJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"ImportRecallAIRecordingsJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"ImportRemoteTrackJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Job.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JobDispatcher.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JobDispatcherInterface.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"PurgeSoftDeletedOpportunityJob.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SqsVisibilityControl.php","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Listeners","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mail","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Models","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Activity","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Ai","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"AskAnything","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Calendar","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Connection","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Crm","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Jobs","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"app","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Outline Section","depth":21,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"OUTLINE","depth":22,"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"OUTLINE","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Timeline Section","depth":21,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"TIMELINE","depth":22,"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"TIMELINE","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"MySQL Section","depth":21,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"MYSQL","depth":22,"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"MYSQL","depth":23,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"MatchActivityCrmData.php, Editor Group 1","depth":28,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"RateLimitException.php, Editor Group 1","depth":28,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"HandleHubspotRateLimit.php, Editor Group 1","depth":28,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXRadioButton","text":"Client.php, Editor Group 1","depth":28,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"HubspotPaginationService.php, Editor Group 1","depth":28,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Middleware;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Exceptions\\RateLimitException;\n\n/**\n * Job middleware that catches RateLimitException from HubSpot API calls\n * and releases the job back to the queue with the appropriate delay.\n */\nclass HandleHubspotRateLimit\n{\n private const int MAX_RETRY_DELAY = 600;\n private const int MIN_RETRY_DELAY = 1;\n private const int JITTER_SECONDS = 5;\n\n public function handle(object $job, callable $next): void\n {\n try {\n $next($job);\n } catch (RateLimitException $e) {\n $delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));\n // Add jitter to prevent thundering herd problem by randomizing retry times\n $delay += random_int(0, self::JITTER_SECONDS);\n\n $attempts = $job->attempts();\n if ($attempts <= 3 || $attempts % 10 === 0) {\n Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [\n 'job_class' => $job::class,\n 'attempts' => $attempts,\n 'retry_after' => $e->getRetryAfter(),\n 'delay' => $delay,\n ]);\n }\n\n $job->release($delay);\n }\n }\n}","depth":28,"on_screen":true,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Middleware;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Exceptions\\RateLimitException;\n\n/**\n * Job middleware that catches RateLimitException from HubSpot API calls\n * and releases the job back to the queue with the appropriate delay.\n */\nclass HandleHubspotRateLimit\n{\n private const int MAX_RETRY_DELAY = 600;\n private const int MIN_RETRY_DELAY = 1;\n private const int JITTER_SECONDS = 5;\n\n public function handle(object $job, callable $next): void\n {\n try {\n $next($job);\n } catch (RateLimitException $e) {\n $delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));\n // Add jitter to prevent thundering herd problem by randomizing retry times\n $delay += random_int(0, self::JITTER_SECONDS);\n\n $attempts = $job->attempts();\n if ($attempts <= 3 || $attempts % 10 === 0) {\n Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [\n 'job_class' => $job::class,\n 'attempts' => $attempts,\n 'retry_after' => $e->getRetryAfter(),\n 'delay' => $delay,\n ]);\n }\n\n $job->release($delay);\n }\n }\n}","role_description":"editor","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Middleware;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Exceptions\\RateLimitException;\n\n/**\n * Job middleware that catches RateLimitException from HubSpot API calls\n * and releases the job back to the queue with the appropriate delay.\n */\nclass HandleHubspotRateLimit\n{\n private const int MAX_RETRY_DELAY = 600;\n private const int MIN_RETRY_DELAY = 1;\n private const int JITTER_SECONDS = 5;\n\n public function handle(object $job, callable $next): void\n {\n try {\n $next($job);\n } catch (RateLimitException $e) {\n $delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));\n // Add jitter to prevent thundering herd problem by randomizing retry times\n $delay += random_int(0, self::JITTER_SECONDS);\n\n $attempts = $job->attempts();\n if ($attempts <= 3 || $attempts % 10 === 0) {\n Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [\n 'job_class' => $job::class,\n 'attempts' => $attempts,\n 'retry_after' => $e->getRetryAfter(),\n 'delay' => $delay,\n ]);\n }\n\n $job->release($delay);\n }\n }\n}","depth":29,"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Review rate limit handli…, Editor Group 2","depth":28,"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXButton","text":"remote","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JY-20725-handle-HS-search-rate-limit*","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"app (Git) - Synchronize Changes","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Errors: 6, Warnings: 9, Infos: 2","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"6","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"9","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Notifications","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"key, PHP extension: Premium features not active.","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"8.3, Language Level: 8.3","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sign In","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Sign In","depth":17,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"PHP","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Editor Language Status: $(copilot) No inline suggestion available, Inline suggestions","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"LF","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"UTF-8","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Spaces: 4","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Ln 14, Col 29 (22 selected)","depth":16,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"git-commit Lukas Kovalik (28 minutes ago)","depth":16,"bounds":{"left":0.98888886,"top":0.0,"width":0.01111114,"height":0.024444444},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.9923611,"top":0.0,"width":0.0076388717,"height":0.017777778},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Lukas Kovalik (28 minutes ago)","depth":17,"bounds":{"left":1.0,"top":0.0,"width":-0.003472209,"height":0.015555556},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Diff editor","depth":12,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Clear","depth":12,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Review rate limit handling for HubSpot job queue","depth":19,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Session history","depth":19,"on_screen":true,"help_text":"Session history","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New session","depth":19,"on_screen":true,"help_text":"New session","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Message actions","depth":24,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"RateLimitException.php#9-9","depth":23,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"RateLimitException.php#9-9","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Reveiw the diff. Mostly","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Jobs/Crm/MatchActivityCrmData.php","depth":26,"on_screen":false,"help_text":"Open app/Jobs/Crm/MatchActivityCrmData.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Exceptions/RateLimitException.php","depth":26,"on_screen":false,"help_text":"Open app/Exceptions/RateLimitException.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Jobs/Middleware/HandleHubspotRateLimit.php","depth":26,"on_screen":false,"help_text":"Open app/Jobs/Middleware/HandleHubspotRateLimit.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Services/Crm/Hubspot/Client.php","depth":26,"on_screen":false,"help_text":"Open app/Services/Crm/Hubspot/Client.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"and","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php","depth":26,"on_screen":false,"help_text":"Open app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":". The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Thought for 5s","depth":23,"on_screen":false,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thought for 5s","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"I'll review the implementation carefully. Let me first check how","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is used elsewhere and look at the test files and","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"PaginationState","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":".","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find all usages of RateLimitException outside the changed files","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"RateLimitException\" /Users/lukas/jiminny/app/app --include=\"*.php\" | grep -v \"HandleHubspotRateLimit\\|MatchActivityCrmData\\|Client.php\\|RateLimitException.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception\n/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:17:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:68: RateLimitException |\n/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:15:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:58: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception\n/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:19:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:76: RateLimitException |\n/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:8:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:50: * @throws RateLimitException When rate limit is hit\n/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:195: // RateLimitException and other exceptions are re-thrown as-is","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"PaginationState.php","depth":24,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"PaginationState.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"HandleHubspotRateLimitTest.php","depth":24,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"HandleHubspotRateLimitTest.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check how RateLimitException is used in GenerateActionItemsJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"RateLimitException\\|LogicException\\|RuntimeException\" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -20","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find all catch blocks or instanceof checks for RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"catch.*RateLimitException\\|instanceof RateLimitException\" /Users/lukas/jiminny/app/app --include=\"*.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:11: * Job middleware that catches RateLimitException from HubSpot API calls\n/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:24: } catch (RateLimitException $e) {\n/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:149: if (! $e instanceof RateLimitException) {","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find all test references to RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"RateLimitException\" /Users/lukas/jiminny/app/tests --include=\"*.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:8:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:13:#[CoversClass(RateLimitException::class)]\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:14:class RateLimitExceptionTest extends TestCase\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:18: $exception = new RateLimitException();\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:28: $exception = new RateLimitException('Hubspot rate limit', 30, $previous);\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:52: $exception = new RateLimitException('test', $input);\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:10:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:49: public function testPropagatesNonRateLimitExceptions(): void\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:103: throw new RateLimitException('rate limited', $retryAfter);\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:150: throw new RateLimitException('rate limited', 1);","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check retry/failure handling in GenerateActionItemsJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"RateLimitException\\|retryUntil\\|backoff\\|maxExceptions\\|maxTries\\|release\\|failed\" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -30","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"13:use Jiminny\\Exceptions\\RateLimitException;\n51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception\n56: $this->release(30);","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check retry/failure handling in GenerateAiCallScoringJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"RateLimitException\\|retryUntil\\|backoff\\|maxExceptions\\|maxTries\\|release\\|failed\" /Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php | head -30","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"17:use Jiminny\\Exceptions\\RateLimitException;\n68: RateLimitException |\n75: $this->release(30);","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check retry config in MatchActivityCrmData","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"retryAfter\\|RETRY_WINDOW\\|retryUntil\\|maxTries\" /Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"34: private const int RETRY_WINDOW_MINUTES = 30;\n45: public function retryUntil(): \\DateTimeInterface\n47: return now()->addMinutes(self::RETRY_WINDOW_MINUTES);\n77: return self::RETRY_WINDOW_MINUTES * 60 + 60;","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check the cache key format","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"getRateLimitCacheKey\\|hubspot:ratelimit\" /Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Client.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"78: $cacheKey = $this->getRateLimitCacheKey();\n110: private function getRateLimitCacheKey(): string\n112: return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find other jobs that might use the rate limit middleware","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"class.*Middleware\\|HandleHubspotRateLimit\" /Users/lukas/jiminny/app/app/Jobs --include=\"*.php\" | grep -v \"HandleHubspotRateLimit.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:18:use Jiminny\\Jobs\\Middleware\\HandleHubspotRateLimit;\n/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:42: return [new HandleHubspotRateLimit()];","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"HubspotClientInterface.php","depth":24,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"HubspotClientInterface.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Thought for 73s","depth":23,"on_screen":false,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thought for 73s","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Now I have a complete picture. Here's my full analysis:","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"Review Summary","depth":22,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"Review Summary","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"RuntimeException vs LogicException — Safe ✓","depth":22,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"RuntimeException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"vs","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"LogicException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"— Safe ✓","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"The change is semantically correct and won't break anything.","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"LogicException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is for programmer errors (invalid arguments, contract violations). A rate limit from an external API is a runtime condition —","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RuntimeException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is the right parent. All callers catch","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"by name explicitly (union catches in","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"GenerateActionItemsJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"GenerateAiCallScoringJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"SummarizeTranscriptionJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"GenerateAiActivityTypeJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":") or check","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"instanceof RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"— none relies on the parent class type, so nothing breaks.","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"Issue 1 — Circuit breaker stores stale delay (most important bug)","depth":22,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"Issue 1 — Circuit breaker stores stale delay (most important bug)","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"Client.php:94","depth":23,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Client.php:94","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":23,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Redis::setex($cacheKey, $retryAfter, (string) $retryAfter);","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"The TTL is","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"$retryAfter","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"seconds, but the","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"stored value","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is also the original","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"$retryAfter","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":". If a second job reads this cache 20 seconds later, it throws","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RateLimitException(retryAfter=30)","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"and gets delayed 30 more seconds — even though only 10 remain. In a spike of 100 jobs, each subsequent job inflates its wait.","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Fix:","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"store the absolute expiry timestamp, reconstruct the remaining delay when reading:","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":23,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"// on 429:\nRedis::setex($cacheKey, $retryAfter, (string) (time() + $retryAfter));\n\n// in the cached-read branch:\n$remaining = max(1, (int) $cachedRetryAfter - time());\nthrow new RateLimitException('Hubspot rate limit (cached circuit-breaker)', $remaining);","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"Issue 2 — retryUntil() window may expire under sustained rate limiting","depth":22,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"Issue 2 —","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"retryUntil()","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"window may expire under sustained rate limiting","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"MatchActivityCrmData.php:45-47","depth":23,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"MatchActivityCrmData.php:45-47","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"retryUntil()","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is calculated as","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"now() + 30 min","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"at","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"dispatch time","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"and stored in the job payload. With","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"MAX_RETRY_DELAY = 600s","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":", you only get ~3 rate-limit-triggered releases before the 30-minute window closes and the job is permanently failed. For a heavy 429 spike (daily limit, parsed as 600s), this can easily happen.","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Consider increasing","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RETRY_WINDOW_MINUTES","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"to 60 or more, or making it configurable. The","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"uniqueFor()","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"value should be updated to match.","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"Issue 3 — Only search() uses the circuit breaker, but other methods can still hit 429","depth":22,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"Issue 3 — Only","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"search()","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"uses the circuit breaker, but other methods can still hit 429","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"Client.php:76-108","depth":23,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Client.php:76-108","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"executeRequest()","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is only called from","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"search()","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":". Methods like","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"getOpportunityById()","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"batchReadObjects()","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"getContactByEmail()","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"bypass it entirely. If HubSpot's 429 is account-wide (not search-endpoint-specific), those methods will keep firing even while the circuit breaker is supposedly open. This is likely fine because the search endpoint has its own tighter quota (5 RPS), but it's worth being explicit in a comment.","depth":23,"on_screen":false,"role_description":"text"}]...
|
4070862420688658084
|
-8011811048671889597
|
visual_change
|
accessibility
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 13 pending changes
13
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php
SaveTranscription.php
SetupLayout.php
SyncActivity.php
SyncFieldMetadata.php
SyncHubspotObjects.php
SyncLeads.php
SyncObjects.php
SyncOpportunitiesJob.php
SyncOpportunity.php
SyncProfileMetadata.php
SyncTeamFieldsJob.php
SyncTeamMetadata.php
UpdateOpportunitySpecifications.php
UpdateStage.php
DealRisks
Mailbox
MeetingBot
Middleware
HandleHubspotRateLimit.php
RateLimited.php
Streaming
Team
Telephony
User
BaseProcessingJob.php
DummyJob.php
ImportRecallAIRecordingsJob.php
ImportRemoteTrackJob.php
Job.php
JobDispatcher.php
JobDispatcherInterface.php
PurgeSoftDeletedOpportunityJob.php
SqsVisibilityControl.php
Listeners
Mail
Models
Activity
Ai
AskAnything
Calendar
Connection
Crm
Jobs
app
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
MySQL Section
MYSQL
MYSQL
MatchActivityCrmData.php, Editor Group 1
RateLimitException.php, Editor Group 1
HandleHubspotRateLimit.php, Editor Group 1
Client.php, Editor Group 1
HubspotPaginationService.php, Editor Group 1
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Middleware;
use Illuminate\Support\Facades\Log;
use Jiminny\Exceptions\RateLimitException;
/**
* Job middleware that catches RateLimitException from HubSpot API calls
* and releases the job back to the queue with the appropriate delay.
*/
class HandleHubspotRateLimit
{
private const int MAX_RETRY_DELAY = 600;
private const int MIN_RETRY_DELAY = 1;
private const int JITTER_SECONDS = 5;
public function handle(object $job, callable $next): void
{
try {
$next($job);
} catch (RateLimitException $e) {
$delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));
// Add jitter to prevent thundering herd problem by randomizing retry times
$delay += random_int(0, self::JITTER_SECONDS);
$attempts = $job->attempts();
if ($attempts <= 3 || $attempts % 10 === 0) {
Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [
'job_class' => $job::class,
'attempts' => $attempts,
'retry_after' => $e->getRetryAfter(),
'delay' => $delay,
]);
}
$job->release($delay);
}
}
}
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Middleware;
use Illuminate\Support\Facades\Log;
use Jiminny\Exceptions\RateLimitException;
/**
* Job middleware that catches RateLimitException from HubSpot API calls
* and releases the job back to the queue with the appropriate delay.
*/
class HandleHubspotRateLimit
{
private const int MAX_RETRY_DELAY = 600;
private const int MIN_RETRY_DELAY = 1;
private const int JITTER_SECONDS = 5;
public function handle(object $job, callable $next): void
{
try {
$next($job);
} catch (RateLimitException $e) {
$delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));
// Add jitter to prevent thundering herd problem by randomizing retry times
$delay += random_int(0, self::JITTER_SECONDS);
$attempts = $job->attempts();
if ($attempts <= 3 || $attempts % 10 === 0) {
Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [
'job_class' => $job::class,
'attempts' => $attempts,
'retry_after' => $e->getRetryAfter(),
'delay' => $delay,
]);
}
$job->release($delay);
}
}
}
Review rate limit handli…, Editor Group 2
remote
app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...
JY-20725-handle-HS-search-rate-limit*
app (Git) - Synchronize Changes
Errors: 6, Warnings: 9, Infos: 2
6
9
2
Notifications
key, PHP extension: Premium features not active.
8.3, Language Level: 8.3
Sign In
Sign In
PHP
Editor Language Status: $(copilot) No inline suggestion available, Inline suggestions
LF
UTF-8
Spaces: 4
Ln 14, Col 29 (22 selected)
git-commit Lukas Kovalik (28 minutes ago)
Lukas Kovalik (28 minutes ago)
Diff editor
Clear
Review rate limit handling for HubSpot job queue
Session history
New session
Message actions
RateLimitException.php#9-9
RateLimitException.php#9-9
Reveiw the diff. Mostly
@app/Jobs/Crm/MatchActivityCrmData.php
,
@app/Exceptions/RateLimitException.php
,
@app/Jobs/Middleware/HandleHubspotRateLimit.php
,
@app/Services/Crm/Hubspot/Client.php
and
@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php
. The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?
Thought for 5s
Thought for 5s
I'll review the implementation carefully. Let me first check how
RateLimitException
is used elsewhere and look at the test files and
PaginationState
.
Bash
Find all usages of RateLimitException outside the changed files
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/app --include="*.php" | grep -v "HandleHubspotRateLimit\|MatchActivityCrmData\|Client.php\|RateLimitException.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:17:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:68: RateLimitException |
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:15:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:58: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:19:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:76: RateLimitException |
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:50: * @throws RateLimitException When rate limit is hit
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:195: // RateLimitException and other exceptions are re-thrown as-is
Read
PaginationState.php
PaginationState.php
Read
HandleHubspotRateLimitTest.php
HandleHubspotRateLimitTest.php
Bash
Check how RateLimitException is used in GenerateActionItemsJob
IN
grep -rn "RateLimitException\|LogicException\|RuntimeException" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -20
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
Bash
Find all catch blocks or instanceof checks for RateLimitException
IN
grep -rn "catch.*RateLimitException\|instanceof RateLimitException" /Users/lukas/jiminny/app/app --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:11: * Job middleware that catches RateLimitException from HubSpot API calls
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:24: } catch (RateLimitException $e) {
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:149: if (! $e instanceof RateLimitException) {
Bash
Find all test references to RateLimitException
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/tests --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:13:#[CoversClass(RateLimitException::class)]
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:14:class RateLimitExceptionTest extends TestCase
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:18: $exception = new RateLimitException();
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:28: $exception = new RateLimitException('Hubspot rate limit', 30, $previous);
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:52: $exception = new RateLimitException('test', $input);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:10:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:49: public function testPropagatesNonRateLimitExceptions(): void
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:103: throw new RateLimitException('rate limited', $retryAfter);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:150: throw new RateLimitException('rate limited', 1);
Bash
Check retry/failure handling in GenerateActionItemsJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -30
Copy code to clipboard
OUT
13:use Jiminny\Exceptions\RateLimitException;
51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
56: $this->release(30);
Bash
Check retry/failure handling in GenerateAiCallScoringJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php | head -30
Copy code to clipboard
OUT
17:use Jiminny\Exceptions\RateLimitException;
68: RateLimitException |
75: $this->release(30);
Bash
Check retry config in MatchActivityCrmData
IN
grep -n "retryAfter\|RETRY_WINDOW\|retryUntil\|maxTries" /Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php
Copy code to clipboard
OUT
34: private const int RETRY_WINDOW_MINUTES = 30;
45: public function retryUntil(): \DateTimeInterface
47: return now()->addMinutes(self::RETRY_WINDOW_MINUTES);
77: return self::RETRY_WINDOW_MINUTES * 60 + 60;
Bash
Check the cache key format
IN
grep -n "getRateLimitCacheKey\|hubspot:ratelimit" /Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Client.php
Copy code to clipboard
OUT
78: $cacheKey = $this->getRateLimitCacheKey();
110: private function getRateLimitCacheKey(): string
112: return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());
Bash
Find other jobs that might use the rate limit middleware
IN
grep -rn "class.*Middleware\|HandleHubspotRateLimit" /Users/lukas/jiminny/app/app/Jobs --include="*.php" | grep -v "HandleHubspotRateLimit.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:18:use Jiminny\Jobs\Middleware\HandleHubspotRateLimit;
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:42: return [new HandleHubspotRateLimit()];
Read
HubspotClientInterface.php
HubspotClientInterface.php
Thought for 73s
Thought for 73s
Now I have a complete picture. Here's my full analysis:
Review Summary
Review Summary
RuntimeException vs LogicException — Safe ✓
RuntimeException
vs
LogicException
— Safe ✓
The change is semantically correct and won't break anything.
LogicException
is for programmer errors (invalid arguments, contract violations). A rate limit from an external API is a runtime condition —
RuntimeException
is the right parent. All callers catch
RateLimitException
by name explicitly (union catches in
GenerateActionItemsJob
,
GenerateAiCallScoringJob
,
SummarizeTranscriptionJob
,
GenerateAiActivityTypeJob
) or check
instanceof RateLimitException
— none relies on the parent class type, so nothing breaks.
Issue 1 — Circuit breaker stores stale delay (most important bug)
Issue 1 — Circuit breaker stores stale delay (most important bug)
Client.php:94
Client.php:94
Copy code to clipboard
Redis::setex($cacheKey, $retryAfter, (string) $retryAfter);
The TTL is
$retryAfter
seconds, but the
stored value
is also the original
$retryAfter
. If a second job reads this cache 20 seconds later, it throws
RateLimitException(retryAfter=30)
and gets delayed 30 more seconds — even though only 10 remain. In a spike of 100 jobs, each subsequent job inflates its wait.
Fix:
store the absolute expiry timestamp, reconstruct the remaining delay when reading:
Copy code to clipboard
// on 429:
Redis::setex($cacheKey, $retryAfter, (string) (time() + $retryAfter));
// in the cached-read branch:
$remaining = max(1, (int) $cachedRetryAfter - time());
throw new RateLimitException('Hubspot rate limit (cached circuit-breaker)', $remaining);
Issue 2 — retryUntil() window may expire under sustained rate limiting
Issue 2 —
retryUntil()
window may expire under sustained rate limiting
MatchActivityCrmData.php:45-47
MatchActivityCrmData.php:45-47
retryUntil()
is calculated as
now() + 30 min
at
dispatch time
and stored in the job payload. With
MAX_RETRY_DELAY = 600s
, you only get ~3 rate-limit-triggered releases before the 30-minute window closes and the job is permanently failed. For a heavy 429 spike (daily limit, parsed as 600s), this can easily happen.
Consider increasing
RETRY_WINDOW_MINUTES
to 60 or more, or making it configurable. The
uniqueFor()
value should be updated to match.
Issue 3 — Only search() uses the circuit breaker, but other methods can still hit 429
Issue 3 — Only
search()
uses the circuit breaker, but other methods can still hit 429
Client.php:76-108
Client.php:76-108
executeRequest()
is only called from
search()
. Methods like
getOpportunityById()
,
batchReadObjects()
,
getContactByEmail()
bypass it entirely. If HubSpot's 429 is account-wide (not search-endpoint-specific), those methods will keep firing even while the circuit breaker is supposedly open. This is likely fine because the search endpoint has its own tighter quota (5 RPS), but it's worth being explicit in a comment....
|
19577
|
/Users/lukas/jiminny/app/app/Jobs/Middleware/Handl /Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php...
|
NULL
|
NULL
|
|
19580
|
836
|
13
|
2026-05-11T13:06:50.290336+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778504810290_m1.jpg...
|
Slack
|
releases (Channel) - Jiminny Inc - 2 new items - S releases (Channel) - Jiminny Inc - 2 new items - Slack...
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Switch workspaces… (Jiminny Inc) Has new messages
Switch workspaces… (Jiminny Inc) Has new messages
Home
Home
DMs
DMs
Activity
Activity
Files
Files
Later
Later
More…
More
Unreads
Threads
Huddles
Drafts & sent
1
Directories
jiminny-x-integration-app
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
curiosity_lab
engineering
general
jiminny-bg
platform-tickets
product_launches
random
releases
sofia-office
support
thank-yous
the_people_of_jiminny
Aneliya Angelova
Galya Dimitrova
Petko Kashinski
Stefka Stoyanova
Vasil Vasilev
Nikolay Ivanov
Aneliya Angelova
,
Nikolay Yankov
,
Steliyan Georgiev
Stoyan Tanev
Ves
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Files
Files
Bookmarks
Bookmarks
Add and Edit Channel Tabs
Canvas
List
Folder...
|
[{"role":"AXPopUpButton","text [{"role":"AXPopUpButton","text":"Switch workspaces… (Jiminny Inc) Has new messages","depth":14,"bounds":{"left":0.51180553,"top":0.08111111,"width":0.025,"height":0.04},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"Home","depth":14,"bounds":{"left":0.50625,"top":0.14,"width":0.036111113,"height":0.075555556},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Home","depth":16,"bounds":{"left":0.5138889,"top":0.19222222,"width":0.020833334,"height":0.015555556},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"DMs","depth":14,"bounds":{"left":0.50625,"top":0.21555555,"width":0.036111113,"height":0.075555556},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"DMs","depth":16,"bounds":{"left":0.5159722,"top":0.26777777,"width":0.016666668,"height":0.015555556},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Activity","depth":14,"bounds":{"left":0.50625,"top":0.2911111,"width":0.036111113,"height":0.075555556},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Activity","depth":16,"bounds":{"left":0.51111114,"top":0.34333333,"width":0.027083334,"height":0.015555556},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.51111114,"top":0.34333333,"width":0.0055555557,"height":0.015555556}},{"char_start":1,"char_count":7,"bounds":{"left":0.5159722,"top":0.34333333,"width":0.022222223,"height":0.015555556}}],"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":14,"bounds":{"left":0.50625,"top":0.36666667,"width":0.036111113,"height":0.075555556},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":16,"bounds":{"left":0.51666665,"top":0.4188889,"width":0.015972223,"height":0.015555556},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.51666665,"top":0.4188889,"width":0.004166667,"height":0.015555556}},{"char_start":1,"char_count":4,"bounds":{"left":0.5208333,"top":0.4188889,"width":0.011805556,"height":0.015555556}}],"role_description":"text"},{"role":"AXRadioButton","text":"Later","depth":14,"bounds":{"left":0.50625,"top":0.4422222,"width":0.036111113,"height":0.075555556},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Later","depth":16,"bounds":{"left":0.5152778,"top":0.49444443,"width":0.018055556,"height":0.015555556},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"More…","depth":14,"bounds":{"left":0.50625,"top":0.5177778,"width":0.036111113,"height":0.075555556},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More","depth":16,"bounds":{"left":0.5152778,"top":0.57,"width":0.01875,"height":0.015555556},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Unreads","depth":21,"bounds":{"left":0.57708335,"top":0.12777779,"width":0.039583333,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Threads","depth":21,"bounds":{"left":0.57708335,"top":0.12777779,"width":0.036805555,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Huddles","depth":21,"bounds":{"left":0.57708335,"top":0.12777779,"width":0.038194444,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Drafts & sent","depth":21,"bounds":{"left":0.57708335,"top":0.12777779,"width":0.06111111,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":21,"bounds":{"left":0.68472224,"top":0.12777779,"width":0.0055555557,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Directories","depth":21,"bounds":{"left":0.57708335,"top":0.12777779,"width":0.050694443,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"jiminny-x-integration-app","depth":23,"bounds":{"left":0.58819443,"top":0.12777779,"width":0.09166667,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"platform-inner-team","depth":23,"bounds":{"left":0.58819443,"top":0.12777779,"width":0.093055554,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"ai-chapter","depth":23,"bounds":{"left":0.58819443,"top":0.12777779,"width":0.046527777,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"alerts","depth":23,"bounds":{"left":0.58819443,"top":0.12777779,"width":0.025694445,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"backend","depth":23,"bounds":{"left":0.58819443,"top":0.12777779,"width":0.038194444,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"bugs","depth":23,"bounds":{"left":0.58819443,"top":0.12777779,"width":0.022222223,"height":0.0011111111},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"confusion-clinic","depth":23,"bounds":{"left":0.58819443,"top":0.12777779,"width":0.072222225,"height":0.012222222},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"curiosity_lab","depth":23,"bounds":{"left":0.58819443,"top":0.15111111,"width":0.057638887,"height":0.02},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.58819443,"top":0.15111111,"width":0.0048611113,"height":0.02}},{"char_start":1,"char_count":12,"bounds":{"left":0.59305555,"top":0.15111111,"width":0.05277778,"height":0.02}}],"role_description":"text"},{"role":"AXStaticText","text":"engineering","depth":23,"bounds":{"left":0.58819443,"top":0.18222222,"width":0.054166667,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"general","depth":23,"bounds":{"left":0.58819443,"top":0.21333334,"width":0.034027778,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"jiminny-bg","depth":23,"bounds":{"left":0.58819443,"top":0.24444444,"width":0.048611112,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"platform-tickets","depth":23,"bounds":{"left":0.58819443,"top":0.27555555,"width":0.072916664,"height":0.02},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.58819443,"top":0.27555555,"width":0.00625,"height":0.02}},{"char_start":1,"char_count":15,"bounds":{"left":0.59444445,"top":0.27555555,"width":0.06666667,"height":0.02}}],"role_description":"text"},{"role":"AXStaticText","text":"product_launches","depth":23,"bounds":{"left":0.58819443,"top":0.30666667,"width":0.08055556,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"random","depth":23,"bounds":{"left":0.58819443,"top":0.33777776,"width":0.035416666,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"releases","depth":23,"bounds":{"left":0.58819443,"top":0.36888888,"width":0.036805555,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"sofia-office","depth":23,"bounds":{"left":0.58819443,"top":0.4,"width":0.05138889,"height":0.02},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.58819443,"top":0.4,"width":0.0048611113,"height":0.02}},{"char_start":1,"char_count":11,"bounds":{"left":0.59305555,"top":0.4,"width":0.045833334,"height":0.02}}],"role_description":"text"},{"role":"AXStaticText","text":"support","depth":23,"bounds":{"left":0.58819443,"top":0.4311111,"width":0.036805555,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"thank-yous","depth":23,"bounds":{"left":0.58819443,"top":0.46222222,"width":0.05138889,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"the_people_of_jiminny","depth":23,"bounds":{"left":0.58819443,"top":0.49333334,"width":0.094444446,"height":0.02},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.58819443,"top":0.49333334,"width":0.004166667,"height":0.02}},{"char_start":1,"char_count":20,"bounds":{"left":0.5923611,"top":0.49333334,"width":0.09861111,"height":0.02}}],"role_description":"text"},{"role":"AXStaticText","text":"Aneliya Angelova","depth":23,"bounds":{"left":0.58819443,"top":0.56666666,"width":0.07847222,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Galya Dimitrova","depth":23,"bounds":{"left":0.58819443,"top":0.5977778,"width":0.07361111,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Petko Kashinski","depth":23,"bounds":{"left":0.58819443,"top":0.6288889,"width":0.072222225,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Stefka Stoyanova","depth":23,"bounds":{"left":0.58819443,"top":0.66,"width":0.079166666,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Vasil Vasilev","depth":23,"bounds":{"left":0.58819443,"top":0.6911111,"width":0.055555556,"height":0.02},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.58819443,"top":0.6911111,"width":0.00625,"height":0.02}},{"char_start":1,"char_count":12,"bounds":{"left":0.59444445,"top":0.6911111,"width":0.048611112,"height":0.02}}],"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Ivanov","depth":23,"bounds":{"left":0.58819443,"top":0.7222222,"width":0.06736111,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Aneliya Angelova","depth":23,"bounds":{"left":0.58819443,"top":0.75333333,"width":0.07847222,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"bounds":{"left":0.6666667,"top":0.75333333,"width":0.013194445,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Nikolay Yankov","depth":23,"bounds":{"left":0.6715278,"top":0.75333333,"width":0.029861111,"height":0.02},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.6715278,"top":0.75333333,"width":0.008333334,"height":0.02}},{"char_start":1,"char_count":13,"bounds":{"left":0.6798611,"top":0.75333333,"width":0.060416665,"height":0.02}}],"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Steliyan Georgiev","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Stoyan Tanev","depth":23,"bounds":{"left":0.58819443,"top":0.78444445,"width":0.060416665,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Ves","depth":23,"bounds":{"left":0.58819443,"top":0.8155556,"width":0.016666668,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Lukas Kovalik","depth":23,"bounds":{"left":0.58819443,"top":0.8466667,"width":0.061805554,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"you","depth":23,"bounds":{"left":0.65555555,"top":0.8466667,"width":0.013194445,"height":0.02},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.65555555,"top":0.8466667,"width":0.0048611113,"height":0.02}},{"char_start":1,"char_count":2,"bounds":{"left":0.66041666,"top":0.8466667,"width":0.011805556,"height":0.02}}],"role_description":"text"},{"role":"AXStaticText","text":"Jira Cloud","depth":23,"bounds":{"left":0.58819443,"top":0.92,"width":0.045833334,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Toast","depth":23,"bounds":{"left":0.58819443,"top":0.95111114,"width":0.024305556,"height":0.02},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Google Calendar","depth":23,"bounds":{"left":0.58819443,"top":0.9822222,"width":0.06388889,"height":0.012222222},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Messages","depth":17,"bounds":{"left":0.71319443,"top":0.12777779,"width":0.06458333,"height":0.04222222},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXStaticText","text":"Messages","depth":19,"bounds":{"left":0.7326389,"top":0.14,"width":0.039583333,"height":0.017777778},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Files","depth":17,"bounds":{"left":0.7798611,"top":0.12777779,"width":0.04375,"height":0.04222222},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Files","depth":19,"bounds":{"left":0.79930556,"top":0.14,"width":0.01875,"height":0.017777778},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.79930556,"top":0.14,"width":0.0055555557,"height":0.017777778}},{"char_start":1,"char_count":4,"bounds":{"left":0.8048611,"top":0.14,"width":0.013194445,"height":0.017777778}}],"role_description":"text"},{"role":"AXRadioButton","text":"Bookmarks","depth":17,"bounds":{"left":0.8263889,"top":0.12777779,"width":0.07083333,"height":0.04222222},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Bookmarks","depth":19,"bounds":{"left":0.84583336,"top":0.14,"width":0.045833334,"height":0.017777778},"on_screen":true,"role_description":"text"},{"role":"AXPopUpButton","text":"Add and Edit Channel Tabs","depth":17,"bounds":{"left":0.8993056,"top":0.12777779,"width":0.022916667,"height":0.04222222},"on_screen":true,"role_description":"pop-up button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Canvas","depth":17,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"List","depth":17,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Folder","depth":17,"on_screen":false,"role_description":"text"}]...
|
-2305280786088541883
|
-3515343397103624541
|
visual_change
|
hybrid
|
NULL
|
Switch workspaces… (Jiminny Inc) Has new messages
Switch workspaces… (Jiminny Inc) Has new messages
Home
Home
DMs
DMs
Activity
Activity
Files
Files
Later
Later
More…
More
Unreads
Threads
Huddles
Drafts & sent
1
Directories
jiminny-x-integration-app
platform-inner-team
ai-chapter
alerts
backend
bugs
confusion-clinic
curiosity_lab
engineering
general
jiminny-bg
platform-tickets
product_launches
random
releases
sofia-office
support
thank-yous
the_people_of_jiminny
Aneliya Angelova
Galya Dimitrova
Petko Kashinski
Stefka Stoyanova
Vasil Vasilev
Nikolay Ivanov
Aneliya Angelova
,
Nikolay Yankov
,
Steliyan Georgiev
Stoyan Tanev
Ves
Lukas Kovalik
you
Jira Cloud
Toast
Google Calendar
Messages
Messages
Files
Files
Bookmarks
Bookmarks
Add and Edit Channel Tabs
Canvas
List
Folder
SlackFileEditViewGoHistoryWindowHelpAPPDOCKER- ₴81DEV (docker)₴2APP (-zsh)-zsh* @param string SobjectType The object type('deals''companies''contacts''cal)* @param array<string, mixed> Spayload Thesearch payload with filters, sorts, prope* @return array The search response with'results''total'*'paging'keys* @throws RateLimitException When rate limit is hit* @throws HubspotException On API errors* @return array The search response with 'results', 'total', 'paging' keys*/public function search(string SobjectType, array Spayload): arrayend diff4) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation)begin diff --/home/jiminny/app/Console/Commands/JiminnyDebugCommand.php+++/home/jiminny/app/Console/Commands/JiminnyDebugCommand.php-359,11+359,11 0ScrmService = ScrmResolver->prepareCrmService);-//-/1for ($i = 0; si < 3; Si++) {if (Si % 250) {Sthis->info("Syncing opportunity {Si}");Sthis->info("Matching contact {$i}");-1/-1/.+++++ScrmService->syncOpportunity('374720564');if ($i % 25=0{//Sthis->info("Syncing opportunity {$i}");Sthis->info("Matching contact {$i}");////}ScrmService->syncOpportunity('374720564');$crmService->matchByName('Robot');end diffFixed 4 of 5666 files in 146.870 seconds, 60.00 MB memory usedWhat's next:Try Docker Debug for seamless, persistent debugging tools in any containeror image →Learn more at https://docs.docker.com/go/debug-cli/lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-lirHomeDMsActivityFilesLater..•More§ [Platform] Refinemen... now100% <478• Mon 11 May 16:06:49ED[Platform] Refinement •now - 16:00-17:00Ci Join Google MeetJiminny ...# contusion-clinic# curiosity_lab# engineering# general# jiminny-bg# platform-tickets# product_launches# random# releases# sofia-office# support# thank-yous# the_people_of jimi...•MessagesC FilesBookmarks+^ Direct messages8. Aneliya Angelova /®. Galya DimitrovaPetko Kashinski&. Stefka StoyanovaVasil Vasilev&. Nikolay IvanovAneliya Angelova, ...Stoyan Tanev• VesE Lukas Kovalik y... 020832): RemoveToday ~ ok 4.0 and 4.1 models(#506) (steliyan-g)NewGitHub APP 2:13 PM9 new commits pushed to master by ilian-jiminny861859d2 - Stop sending signals to datadog forincresed/ decreased workers.23ad2bb1 - Drop usage of RunForSeconds.3aedca4a - Generage Workerld on the fly.86cb0855 - ignore-missing-request-id-on-transcript Handle wrong format for assemblytranscriptions, this happends for old activitiesthat had a different provider and were updatedto point to Assembly when the providers weredeleted49ca4dfe - ignore-missing-request-id-on-transcript added log importShow morejiminny/app| Added by GitHubCircleCI APP 2:38 PMDeployment Successful!Project: appWhen:05/11/202611:38:14Tag:View Job::: AppsS Jira CloudToastGanala CalaMessage #releases+..•...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
19582
|
836
|
14
|
2026-05-11T13:06:56.341407+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778504816341_m1.jpg...
|
PhpStorm
|
faVsco.js – MatchActivityCrmDataTest.php
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
SlackFileEditViewGoHistoryWindowHelpAPPDOCKER0 ₴1D SlackFileEditViewGoHistoryWindowHelpAPPDOCKER0 ₴1DEV (docker)₴2APP (-zsh)-zsh* @param string SobjectType The object type('deals''companies''contacts''cal)* @param array<string, mixed>Spayload Thesearch payload with filters, sorts, prop‹* @return array The search response with'results''total'*'paging'keys* @throws RateLimitException When rate limit is hit* @throws HubspotException On API errors** @return array The search response with 'results', 'total', 'paging' keys*/public function search(string SobjectType, array Spayload): arrayend diff4) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation)begin diff --/home/jiminny/app/Console/Commands/JiminnyDebugCommand.php+++/home/jiminny/app/Console/Commands/JiminnyDebugCommand.php-359,11+359,11 @ScrmService = ScrmResolver->prepareCrmService);-//-/1for ($i = 0; si < 3; Si++) {if (Si % 250) {Sthis->info("Syncing opportunity {Si}");Sthis->info("Matching contact {$i}");-1/-1/.+++++ScrmService->syncOpportunity('374720564');if ($i % 25=0{//Sthis->info("Syncing opportunity {$i}");Sthis->info("Matching contact {$i}");////}ScrmService->syncOpportunity('374720564');$crmService->matchByName('Robot');end diffFixed 4 of 5666 files in 146.870 seconds, 60.00 MB memory usedWhat's next:Try Docker Debug for seamless, persistent debugging tools in any containeror image →Learn more at https://docs.docker.com/go/debug-cli/lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-lirHomeDMsActivityFilesLater..•More(abl•[Platform) Refinemen... now100%8• Mon 11 May 16:06:56→[Platform] Refinement •now - 16:00-17:00Ci Join Google MeetJiminny ...# contusion-clinic# curiosity_lab# engineering# general# jiminny-bg# platform-tickets# product_launches# random# releases# sofia-office# support# thank-yous# the_people_of_jimi...•MessagesC FilesBookmarks+^ Direct messagesP. Aneliya Angelova®. Galya DimitrovaPetko Kashinski&. Stefka StoyanovaVasil Vasilev&. Nikolay IvanovAneliya Angelova, ...Stoyan Tanev• VesE Lukas Kovalik y... 020832): RemoveToday ~ ok 4.0 and 4.1 models(#506) (steliyan-g)NewGitHub APP 2:13 PM9 new commits pushed to master by ilian-jiminny861859d2 - Stop sending signals to datadog forincresed/ decreased workers.23ad2bb1 - Drop usage of RunForSeconds.3aedca4a - Generage Workerld on the fly.86cb0855 - ignore-missing-request-id-on-transcript Handle wrong format for assemblytranscriptions, this happends for old activitiesthat had a different provider and were updatedto point to Assembly when the providers weredeleted49ca4dfe - ignore-missing-request-id-on-transcript added log importShow morejiminny/app| Added by GitHubCircleCI APP 2:38 PMDeployment Successful!Project: appWhen:05/11/202611:38:14Tag:View JobE:: AppsS Jira CloudToastGanala Cala112Message #releases+..•...
|
NULL
|
8306201434055705382
|
NULL
|
visual_change
|
ocr
|
NULL
|
SlackFileEditViewGoHistoryWindowHelpAPPDOCKER0 ₴1D SlackFileEditViewGoHistoryWindowHelpAPPDOCKER0 ₴1DEV (docker)₴2APP (-zsh)-zsh* @param string SobjectType The object type('deals''companies''contacts''cal)* @param array<string, mixed>Spayload Thesearch payload with filters, sorts, prop‹* @return array The search response with'results''total'*'paging'keys* @throws RateLimitException When rate limit is hit* @throws HubspotException On API errors** @return array The search response with 'results', 'total', 'paging' keys*/public function search(string SobjectType, array Spayload): arrayend diff4) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation)begin diff --/home/jiminny/app/Console/Commands/JiminnyDebugCommand.php+++/home/jiminny/app/Console/Commands/JiminnyDebugCommand.php-359,11+359,11 @ScrmService = ScrmResolver->prepareCrmService);-//-/1for ($i = 0; si < 3; Si++) {if (Si % 250) {Sthis->info("Syncing opportunity {Si}");Sthis->info("Matching contact {$i}");-1/-1/.+++++ScrmService->syncOpportunity('374720564');if ($i % 25=0{//Sthis->info("Syncing opportunity {$i}");Sthis->info("Matching contact {$i}");////}ScrmService->syncOpportunity('374720564');$crmService->matchByName('Robot');end diffFixed 4 of 5666 files in 146.870 seconds, 60.00 MB memory usedWhat's next:Try Docker Debug for seamless, persistent debugging tools in any containeror image →Learn more at https://docs.docker.com/go/debug-cli/lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-lirHomeDMsActivityFilesLater..•More(abl•[Platform) Refinemen... now100%8• Mon 11 May 16:06:56→[Platform] Refinement •now - 16:00-17:00Ci Join Google MeetJiminny ...# contusion-clinic# curiosity_lab# engineering# general# jiminny-bg# platform-tickets# product_launches# random# releases# sofia-office# support# thank-yous# the_people_of_jimi...•MessagesC FilesBookmarks+^ Direct messagesP. Aneliya Angelova®. Galya DimitrovaPetko Kashinski&. Stefka StoyanovaVasil Vasilev&. Nikolay IvanovAneliya Angelova, ...Stoyan Tanev• VesE Lukas Kovalik y... 020832): RemoveToday ~ ok 4.0 and 4.1 models(#506) (steliyan-g)NewGitHub APP 2:13 PM9 new commits pushed to master by ilian-jiminny861859d2 - Stop sending signals to datadog forincresed/ decreased workers.23ad2bb1 - Drop usage of RunForSeconds.3aedca4a - Generage Workerld on the fly.86cb0855 - ignore-missing-request-id-on-transcript Handle wrong format for assemblytranscriptions, this happends for old activitiesthat had a different provider and were updatedto point to Assembly when the providers weredeleted49ca4dfe - ignore-missing-request-id-on-transcript added log importShow morejiminny/app| Added by GitHubCircleCI APP 2:38 PMDeployment Successful!Project: appWhen:05/11/202611:38:14Tag:View JobE:: AppsS Jira CloudToastGanala Cala112Message #releases+..•...
|
19580
|
NULL
|
NULL
|
NULL
|
|
19545
|
837
|
0
|
2026-05-11T13:02:33.360993+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778504553360_m2.jpg...
|
Code
|
Review rate limit handli… — app
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 12 pending changes
12
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php
SaveTranscription.php
SetupLayout.php...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Explorer (⇧⌘E)","depth":19,"bounds":{"left":0.0,"top":0.047885075,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":true},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.057462092,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Search (⇧⌘F)","depth":19,"bounds":{"left":0.0,"top":0.08619314,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.09577015,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Source Control (⌃⇧G) - 12 pending changes","depth":19,"bounds":{"left":0.0,"top":0.1245012,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.13407822,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"12","depth":22,"bounds":{"left":0.00831117,"top":0.1452514,"width":0.003656915,"height":0.008778931},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.008643617,"top":0.14604948,"width":0.0016622341,"height":0.007980846}},{"char_start":1,"char_count":1,"bounds":{"left":0.009973404,"top":0.14604948,"width":0.0023271276,"height":0.007980846}}],"role_description":"text"},{"role":"AXRadioButton","text":"Run and Debug (⇧⌘D)","depth":19,"bounds":{"left":0.0,"top":0.16280925,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.17238627,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Remote Explorer","depth":19,"bounds":{"left":0.0,"top":0.20111732,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.21069433,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Extensions (⇧⌘X) - 2 require update","depth":19,"bounds":{"left":0.0,"top":0.23942538,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.2490024,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":22,"bounds":{"left":0.009640957,"top":0.2601756,"width":0.0019946808,"height":0.008778931},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Testing","depth":19,"bounds":{"left":0.0,"top":0.27773345,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.28731045,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Claude Code","depth":19,"bounds":{"left":0.0,"top":0.3160415,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"EXPLORER","depth":17,"bounds":{"left":0.022606382,"top":0.047885075,"width":0.018949468,"height":0.02793296},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"EXPLORER","depth":18,"bounds":{"left":0.022606382,"top":0.056664005,"width":0.018949468,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.022606382,"top":0.056664005,"width":0.0023271276,"height":0.0103751}},{"char_start":1,"char_count":7,"bounds":{"left":0.024933511,"top":0.056664005,"width":0.01662234,"height":0.0103751}}],"role_description":"text"},{"role":"AXButton","text":"Explorer Section: app","depth":21,"bounds":{"left":0.015957447,"top":0.07581804,"width":0.09940159,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.07821229,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"Explorer Section: app","depth":22,"bounds":{"left":0.022606382,"top":0.07581804,"width":0.0076462766,"height":0.017557861},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"APP","depth":23,"bounds":{"left":0.022606382,"top":0.079010375,"width":0.0076462766,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.0933759,"width":0.0063164895,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CheckAndRetryRemoteMatch.php","depth":27,"bounds":{"left":0.033909574,"top":0.0933759,"width":0.068484046,"height":0.011173184},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.0933759,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":27,"bounds":{"left":0.036901597,"top":0.0933759,"width":0.06549202,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.10853951,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateFollowupActivity.php","depth":27,"bounds":{"left":0.033909574,"top":0.110135674,"width":0.054853722,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.11093376,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":25,"bounds":{"left":0.036901597,"top":0.11093376,"width":0.051861703,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.12609737,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateNotes.php","depth":27,"bounds":{"left":0.033909574,"top":0.12769353,"width":0.034242023,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.12849163,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.036901597,"top":0.12849163,"width":0.03125,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.14365523,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivitiesToNewOpportunity.php","depth":27,"bounds":{"left":0.033909574,"top":0.1452514,"width":0.07712766,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.14604948,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":34,"bounds":{"left":0.037898935,"top":0.14604948,"width":0.07347074,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.16121309,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivityCrmData.php","depth":27,"bounds":{"left":0.033909574,"top":0.16280925,"width":0.054521278,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.16360734,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":23,"bounds":{"left":0.037898935,"top":0.16360734,"width":0.050531916,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.17877094,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"NoteObject.php","depth":27,"bounds":{"left":0.033909574,"top":0.18036711,"width":0.031914894,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.1811652,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":13,"bounds":{"left":0.03723404,"top":0.1811652,"width":0.028922873,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.1963288,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SaveActivity.php","depth":27,"bounds":{"left":0.033909574,"top":0.19792499,"width":0.03324468,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.19872306,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":15,"bounds":{"left":0.03656915,"top":0.19872306,"width":0.030585106,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.21388668,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SaveTranscription.php","depth":27,"bounds":{"left":0.033909574,"top":0.21548285,"width":0.04454787,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.21628092,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":20,"bounds":{"left":0.03656915,"top":0.21628092,"width":0.042220745,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.23144454,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SetupLayout.php","depth":27,"bounds":{"left":0.033909574,"top":0.2330407,"width":0.034242023,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.23383878,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.03656915,"top":0.23383878,"width":0.031914894,"height":0.011971269}}],"role_description":"text"}]...
|
8976933207943764064
|
8824825740873369001
|
click
|
accessibility
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 12 pending changes
12
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php
SaveTranscription.php
SetupLayout.php...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
19546
|
837
|
1
|
2026-05-11T13:02:34.770143+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778504554770_m2.jpg...
|
Code
|
Review rate limit handli… — app
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 12 pending changes
12
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php
SaveTranscription.php
SetupLayout.php
SyncActivity.php
SyncFieldMetadata.php
SyncHubspotObjects.php
SyncLeads.php
SyncObjects.php
SyncOpportunitiesJob.php
SyncOpportunity.php
SyncProfileMetadata.php
SyncTeamFieldsJob.php
SyncTeamMetadata.php
UpdateOpportunitySpecifications.php
UpdateStage.php
DealRisks
Mailbox
MeetingBot
Middleware
HandleHubspotRateLimit.php
RateLimited.php
Streaming
Team
Telephony
User
BaseProcessingJob.php
DummyJob.php
ImportRecallAIRecordingsJob.php
ImportRemoteTrackJob.php
Job.php
JobDispatcher.php
JobDispatcherInterface.php
PurgeSoftDeletedOpportunityJob.php
SqsVisibilityControl.php
Listeners
Mail
Models
Activity
Ai
AskAnything
Calendar
Connection
Crm
Jobs
app
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
MySQL Section
MYSQL
MYSQL
MatchActivityCrmData.php, Editor Group 1
RateLimitException.php, Editor Group 1
HandleHubspotRateLimit.php, Editor Group 1
Client.php, Editor Group 1
HubspotPaginationService.php, Editor Group 1
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Middleware;
use Illuminate\Support\Facades\Log;
use Jiminny\Exceptions\RateLimitException;
/**
* Job middleware that catches RateLimitException from HubSpot API calls
* and releases the job back to the queue with the appropriate delay.
*/
class HandleHubspotRateLimit
{
private const int MAX_RETRY_DELAY = 600;
private const int MIN_RETRY_DELAY = 1;
private const int JITTER_SECONDS = 5;
public function handle(object $job, callable $next): void
{
try {
$next($job);
} catch (RateLimitException $e) {
$delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));
// Add jitter to prevent thundering herd problem by randomizing retry times
$delay += random_int(0, self::JITTER_SECONDS);
$attempts = $job->attempts();
if ($attempts <= 3 || $attempts % 10 === 0) {
Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [
'job_class' => $job::class,
'attempts' => $attempts,
'retry_after' => $e->getRetryAfter(),
'delay' => $delay,
]);
}
$job->release($delay);
}
}
}
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Middleware;
use Illuminate\Support\Facades\Log;
use Jiminny\Exceptions\RateLimitException;
/**
* Job middleware that catches RateLimitException from HubSpot API calls
* and releases the job back to the queue with the appropriate delay.
*/
class HandleHubspotRateLimit
{
private const int MAX_RETRY_DELAY = 600;
private const int MIN_RETRY_DELAY = 1;
private const int JITTER_SECONDS = 5;
public function handle(object $job, callable $next): void
{
try {
$next($job);
} catch (RateLimitException $e) {
$delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));
// Add jitter to prevent thundering herd problem by randomizing retry times
$delay += random_int(0, self::JITTER_SECONDS);
$attempts = $job->attempts();
if ($attempts <= 3 || $attempts % 10 === 0) {
Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [
'job_class' => $job::class,
'attempts' => $attempts,
'retry_after' => $e->getRetryAfter(),
'delay' => $delay,
]);
}
$job->release($delay);
}
}
}
Review rate limit handli…, Editor Group 2
remote
app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...
JY-20725-handle-HS-search-rate-limit*
app (Git) - Synchronize Changes
Errors: 6, Warnings: 9, Infos: 2
6
9
2
Notifications
key, PHP extension: Premium features not active.
Sign In
Sign In
Diff editor
Clear
Review rate limit handling for HubSpot job queue
Session history
New session
Message actions
RateLimitException.php#9-9
RateLimitException.php#9-9
Reveiw the diff. Mostly
@app/Jobs/Crm/MatchActivityCrmData.php
,
@app/Exceptions/RateLimitException.php
,
@app/Jobs/Middleware/HandleHubspotRateLimit.php
,
@app/Services/Crm/Hubspot/Client.php
and
@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php
. The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?
Thought for 5s
Thought for 5s
I'll review the implementation carefully. Let me first check how
RateLimitException
is used elsewhere and look at the test files and
PaginationState
.
Bash
Find all usages of RateLimitException outside the changed files
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/app --include="*.php" | grep -v "HandleHubspotRateLimit\|MatchActivityCrmData\|Client.php\|RateLimitException.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:17:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:68: RateLimitException |
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:15:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:58: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:19:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:76: RateLimitException |
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:50: * @throws RateLimitException When rate limit is hit
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:195: // RateLimitException and other exceptions are re-thrown as-is
Read
PaginationState.php
PaginationState.php
Read
HandleHubspotRateLimitTest.php
HandleHubspotRateLimitTest.php
Bash
Check how RateLimitException is used in GenerateActionItemsJob
IN
grep -rn "RateLimitException\|LogicException\|RuntimeException" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -20
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
Bash
Find all catch blocks or instanceof checks for RateLimitException
IN
grep -rn "catch.*RateLimitException\|instanceof RateLimitException" /Users/lukas/jiminny/app/app --include="*.php"
Copy code to clipboard
OUT...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Explorer (⇧⌘E)","depth":19,"bounds":{"left":0.0,"top":0.047885075,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":true},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.057462092,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Search (⇧⌘F)","depth":19,"bounds":{"left":0.0,"top":0.08619314,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.09577015,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Source Control (⌃⇧G) - 12 pending changes","depth":19,"bounds":{"left":0.0,"top":0.1245012,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.13407822,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"12","depth":22,"bounds":{"left":0.00831117,"top":0.1452514,"width":0.003656915,"height":0.008778931},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.008643617,"top":0.14604948,"width":0.0016622341,"height":0.007980846}},{"char_start":1,"char_count":1,"bounds":{"left":0.009973404,"top":0.14604948,"width":0.0023271276,"height":0.007980846}}],"role_description":"text"},{"role":"AXRadioButton","text":"Run and Debug (⇧⌘D)","depth":19,"bounds":{"left":0.0,"top":0.16280925,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.17238627,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Remote Explorer","depth":19,"bounds":{"left":0.0,"top":0.20111732,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.21069433,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Extensions (⇧⌘X) - 2 require update","depth":19,"bounds":{"left":0.0,"top":0.23942538,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.2490024,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":22,"bounds":{"left":0.009640957,"top":0.2601756,"width":0.0019946808,"height":0.008778931},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Testing","depth":19,"bounds":{"left":0.0,"top":0.27773345,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.28731045,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Claude Code","depth":19,"bounds":{"left":0.0,"top":0.3160415,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"EXPLORER","depth":17,"bounds":{"left":0.022606382,"top":0.047885075,"width":0.018949468,"height":0.02793296},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"EXPLORER","depth":18,"bounds":{"left":0.022606382,"top":0.056664005,"width":0.018949468,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.022606382,"top":0.056664005,"width":0.0023271276,"height":0.0103751}},{"char_start":1,"char_count":7,"bounds":{"left":0.024933511,"top":0.056664005,"width":0.01662234,"height":0.0103751}}],"role_description":"text"},{"role":"AXButton","text":"Explorer Section: app","depth":21,"bounds":{"left":0.015957447,"top":0.07581804,"width":0.09940159,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.07821229,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"Explorer Section: app","depth":22,"bounds":{"left":0.022606382,"top":0.07581804,"width":0.0076462766,"height":0.017557861},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"APP","depth":23,"bounds":{"left":0.022606382,"top":0.079010375,"width":0.0076462766,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.0933759,"width":0.0063164895,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CheckAndRetryRemoteMatch.php","depth":27,"bounds":{"left":0.033909574,"top":0.0933759,"width":0.068484046,"height":0.011173184},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.0933759,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":27,"bounds":{"left":0.036901597,"top":0.0933759,"width":0.06549202,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.10853951,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateFollowupActivity.php","depth":27,"bounds":{"left":0.033909574,"top":0.110135674,"width":0.054853722,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.11093376,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":25,"bounds":{"left":0.036901597,"top":0.11093376,"width":0.051861703,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.12609737,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateNotes.php","depth":27,"bounds":{"left":0.033909574,"top":0.12769353,"width":0.034242023,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.12849163,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.036901597,"top":0.12849163,"width":0.03125,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.14365523,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivitiesToNewOpportunity.php","depth":27,"bounds":{"left":0.033909574,"top":0.1452514,"width":0.07712766,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.14604948,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":34,"bounds":{"left":0.037898935,"top":0.14604948,"width":0.07347074,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.16121309,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivityCrmData.php","depth":27,"bounds":{"left":0.033909574,"top":0.16280925,"width":0.054521278,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.16360734,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":23,"bounds":{"left":0.037898935,"top":0.16360734,"width":0.050531916,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.17877094,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"NoteObject.php","depth":27,"bounds":{"left":0.033909574,"top":0.18036711,"width":0.031914894,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.1811652,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":13,"bounds":{"left":0.03723404,"top":0.1811652,"width":0.028922873,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.1963288,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SaveActivity.php","depth":27,"bounds":{"left":0.033909574,"top":0.19792499,"width":0.03324468,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.19872306,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":15,"bounds":{"left":0.03656915,"top":0.19872306,"width":0.030585106,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.21388668,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SaveTranscription.php","depth":27,"bounds":{"left":0.033909574,"top":0.21548285,"width":0.04454787,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.21628092,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":20,"bounds":{"left":0.03656915,"top":0.21628092,"width":0.042220745,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.23144454,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SetupLayout.php","depth":27,"bounds":{"left":0.033909574,"top":0.2330407,"width":0.034242023,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.23383878,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.03656915,"top":0.23383878,"width":0.031914894,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.2490024,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncActivity.php","depth":27,"bounds":{"left":0.033909574,"top":0.25059855,"width":0.03357713,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.25139666,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":15,"bounds":{"left":0.03656915,"top":0.25139666,"width":0.030917553,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.26656026,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncFieldMetadata.php","depth":27,"bounds":{"left":0.033909574,"top":0.26815644,"width":0.047539894,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.26895452,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":20,"bounds":{"left":0.03656915,"top":0.26895452,"width":0.04488032,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.28411812,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncHubspotObjects.php","depth":27,"bounds":{"left":0.033909574,"top":0.2857143,"width":0.051861703,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.28651237,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":21,"bounds":{"left":0.03656915,"top":0.28651237,"width":0.04920213,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.30167598,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncLeads.php","depth":27,"bounds":{"left":0.033909574,"top":0.30327216,"width":0.030917553,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.30407023,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":12,"bounds":{"left":0.03656915,"top":0.30407023,"width":0.02825798,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.31923383,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncObjects.php","depth":27,"bounds":{"left":0.033909574,"top":0.32083002,"width":0.034574468,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.3216281,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.03656915,"top":0.3216281,"width":0.031914894,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.3367917,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncOpportunitiesJob.php","depth":27,"bounds":{"left":0.033909574,"top":0.33838788,"width":0.053856384,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.33918595,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":23,"bounds":{"left":0.03656915,"top":0.33918595,"width":0.05119681,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.35434955,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncOpportunity.php","depth":27,"bounds":{"left":0.033909574,"top":0.35594574,"width":0.04288564,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.3567438,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":18,"bounds":{"left":0.03656915,"top":0.3567438,"width":0.040226065,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.3719074,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncProfileMetadata.php","depth":27,"bounds":{"left":0.033909574,"top":0.3735036,"width":0.05086436,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.37430167,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":22,"bounds":{"left":0.03656915,"top":0.37430167,"width":0.048204787,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.38946527,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncTeamFieldsJob.php","depth":27,"bounds":{"left":0.033909574,"top":0.39106146,"width":0.04886968,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.39185953,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":20,"bounds":{"left":0.03656915,"top":0.39185953,"width":0.046210106,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.40702313,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncTeamMetadata.php","depth":27,"bounds":{"left":0.033909574,"top":0.4086193,"width":0.048537236,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.4094174,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":19,"bounds":{"left":0.03656915,"top":0.4094174,"width":0.045877658,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.424581,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"UpdateOpportunitySpecifications.php","depth":27,"bounds":{"left":0.033909574,"top":0.42617717,"width":0.076130316,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.42697525,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":34,"bounds":{"left":0.03723404,"top":0.42697525,"width":0.0731383,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.44213888,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"UpdateStage.php","depth":27,"bounds":{"left":0.033909574,"top":0.44373503,"width":0.03523936,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.4445331,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.03723404,"top":0.4445331,"width":0.032247342,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.4612929,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"DealRisks","depth":27,"bounds":{"left":0.03125,"top":0.4612929,"width":0.019614361,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.46209097,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":8,"bounds":{"left":0.034574468,"top":0.46209097,"width":0.016289894,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.47885075,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mailbox","depth":27,"bounds":{"left":0.03125,"top":0.47885075,"width":0.015625,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.47964883,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":6,"bounds":{"left":0.03523936,"top":0.47964883,"width":0.011635638,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.4964086,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MeetingBot","depth":27,"bounds":{"left":0.03125,"top":0.4964086,"width":0.023271276,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.49720672,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":9,"bounds":{"left":0.03523936,"top":0.49720672,"width":0.019281914,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.5139665,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Middleware","depth":27,"bounds":{"left":0.03125,"top":0.5139665,"width":0.023271276,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.51476455,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":9,"bounds":{"left":0.03523936,"top":0.51476455,"width":0.019281914,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.52992815,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"HandleHubspotRateLimit.php","depth":27,"bounds":{"left":0.033909574,"top":0.53152436,"width":0.059175532,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.5323224,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":25,"bounds":{"left":0.03723404,"top":0.5323224,"width":0.05618351,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.547486,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"RateLimited.php","depth":27,"bounds":{"left":0.033909574,"top":0.5490822,"width":0.032912236,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.54988027,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.036901597,"top":0.54988027,"width":0.029920213,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.5666401,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Streaming","depth":27,"bounds":{"left":0.03125,"top":0.5666401,"width":0.020611702,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.5674381,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":8,"bounds":{"left":0.033909574,"top":0.5674381,"width":0.017952127,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.58419794,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Team","depth":27,"bounds":{"left":0.03125,"top":0.58419794,"width":0.010970744,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.584996,"width":0.0023271276,"height":0.011971269}},{"char_start":1,"char_count":3,"bounds":{"left":0.03357713,"top":0.584996,"width":0.008643617,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.6017558,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Telephony","depth":27,"bounds":{"left":0.03125,"top":0.6017558,"width":0.020611702,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.60255384,"width":0.0023271276,"height":0.011971269}},{"char_start":1,"char_count":8,"bounds":{"left":0.03357713,"top":0.60255384,"width":0.018284574,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.61931366,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"User","depth":27,"bounds":{"left":0.03125,"top":0.61931366,"width":0.00930851,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.6201117,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":3,"bounds":{"left":0.034574468,"top":0.6201117,"width":0.0063164895,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.63527536,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"BaseProcessingJob.php","depth":27,"bounds":{"left":0.03125,"top":0.6368715,"width":0.048537236,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.63766956,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":20,"bounds":{"left":0.034242023,"top":0.63766956,"width":0.045545213,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.6528332,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"DummyJob.php","depth":27,"bounds":{"left":0.03125,"top":0.6544294,"width":0.03158245,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.6552275,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":11,"bounds":{"left":0.034574468,"top":0.6552275,"width":0.02825798,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.6703911,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"ImportRecallAIRecordingsJob.php","depth":27,"bounds":{"left":0.03125,"top":0.67198724,"width":0.068484046,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.67278534,"width":0.0013297872,"height":0.011971269}},{"char_start":1,"char_count":30,"bounds":{"left":0.032579787,"top":0.67278534,"width":0.06715426,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.68794894,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"ImportRemoteTrackJob.php","depth":27,"bounds":{"left":0.03125,"top":0.6895451,"width":0.055518616,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.6903432,"width":0.0013297872,"height":0.011971269}},{"char_start":1,"char_count":23,"bounds":{"left":0.032579787,"top":0.6903432,"width":0.054521278,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.7055068,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Job.php","depth":27,"bounds":{"left":0.03125,"top":0.70710295,"width":0.016289894,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.70790106,"width":0.0023271276,"height":0.011971269}},{"char_start":1,"char_count":6,"bounds":{"left":0.03357713,"top":0.70790106,"width":0.014295213,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.72306466,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JobDispatcher.php","depth":27,"bounds":{"left":0.03125,"top":0.7246608,"width":0.037898935,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.7254589,"width":0.0023271276,"height":0.011971269}},{"char_start":1,"char_count":16,"bounds":{"left":0.03357713,"top":0.7254589,"width":0.035904255,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.7406225,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JobDispatcherInterface.php","depth":27,"bounds":{"left":0.03125,"top":0.7422187,"width":0.05618351,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.7430168,"width":0.0023271276,"height":0.011971269}},{"char_start":1,"char_count":25,"bounds":{"left":0.03357713,"top":0.7430168,"width":0.05418883,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.7581804,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"PurgeSoftDeletedOpportunityJob.php","depth":27,"bounds":{"left":0.03125,"top":0.75977653,"width":0.076130316,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.77573824,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SqsVisibilityControl.php","depth":27,"bounds":{"left":0.03125,"top":0.7773344,"width":0.047872342,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.022273935,"top":0.79489225,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Listeners","depth":27,"bounds":{"left":0.028590426,"top":0.79489225,"width":0.018284574,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.022273935,"top":0.8124501,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mail","depth":27,"bounds":{"left":0.028590426,"top":0.8124501,"width":0.00831117,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.022273935,"top":0.830008,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Models","depth":27,"bounds":{"left":0.028590426,"top":0.830008,"width":0.01462766,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.8475658,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Activity","depth":27,"bounds":{"left":0.03125,"top":0.8475658,"width":0.014960106,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.8651237,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Ai","depth":27,"bounds":{"left":0.03125,"top":0.8651237,"width":0.0039893617,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.88268155,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"AskAnything","depth":27,"bounds":{"left":0.03125,"top":0.88268155,"width":0.025265958,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.9002394,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Calendar","depth":27,"bounds":{"left":0.03125,"top":0.9002394,"width":0.017952127,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.91779727,"width":0.005319149,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Connection","depth":27,"bounds":{"left":0.03125,"top":0.91779727,"width":0.022938829,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.13088587,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Crm","depth":27,"bounds":{"left":0.03125,"top":0.13088587,"width":0.00831117,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.022273935,"top":0.11332801,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Jobs","depth":27,"bounds":{"left":0.028590426,"top":0.11332801,"width":0.009640957,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.019614361,"top":0.09577015,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"app","depth":27,"bounds":{"left":0.025930852,"top":0.09577015,"width":0.0076462766,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.10605053,"top":0.096568234,"width":0.004654255,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Outline Section","depth":21,"bounds":{"left":0.015957447,"top":0.92976856,"width":0.09940159,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.9321628,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"OUTLINE","depth":22,"bounds":{"left":0.022606382,"top":0.92976856,"width":0.01662234,"height":0.017557861},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"OUTLINE","depth":23,"bounds":{"left":0.022606382,"top":0.933759,"width":0.01662234,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Timeline Section","depth":21,"bounds":{"left":0.015957447,"top":0.9473264,"width":0.09940159,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.9497207,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"TIMELINE","depth":22,"bounds":{"left":0.022606382,"top":0.9473264,"width":0.01761968,"height":0.017557861},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"TIMELINE","depth":23,"bounds":{"left":0.022606382,"top":0.95131683,"width":0.01761968,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"MySQL Section","depth":21,"bounds":{"left":0.015957447,"top":0.9648843,"width":0.09940159,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.96727854,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"MYSQL","depth":22,"bounds":{"left":0.022606382,"top":0.9648843,"width":0.013297873,"height":0.017557861},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"MYSQL","depth":23,"bounds":{"left":0.022606382,"top":0.9688747,"width":0.013297873,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"MatchActivityCrmData.php, Editor Group 1","depth":28,"bounds":{"left":0.11569149,"top":0.047885075,"width":0.07480053,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"RateLimitException.php, Editor Group 1","depth":28,"bounds":{"left":0.19015957,"top":0.047885075,"width":0.06815159,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"HandleHubspotRateLimit.php, Editor Group 1","depth":28,"bounds":{"left":0.25797874,"top":0.047885075,"width":0.080119684,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXRadioButton","text":"Client.php, Editor Group 1","depth":28,"bounds":{"left":0.33776596,"top":0.047885075,"width":0.045545213,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"HubspotPaginationService.php, Editor Group 1","depth":28,"bounds":{"left":0.38297874,"top":0.047885075,"width":0.08277926,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.12832446,"top":0.07821229,"width":0.0056515955,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.14328457,"top":0.07821229,"width":0.0056515955,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.171875,"top":0.07821229,"width":0.0056515955,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.24401596,"top":0.07821229,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.24933511,"top":0.07821229,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Middleware;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Exceptions\\RateLimitException;\n\n/**\n * Job middleware that catches RateLimitException from HubSpot API calls\n * and releases the job back to the queue with the appropriate delay.\n */\nclass HandleHubspotRateLimit\n{\n private const int MAX_RETRY_DELAY = 600;\n private const int MIN_RETRY_DELAY = 1;\n private const int JITTER_SECONDS = 5;\n\n public function handle(object $job, callable $next): void\n {\n try {\n $next($job);\n } catch (RateLimitException $e) {\n $delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));\n // Add jitter to prevent thundering herd problem by randomizing retry times\n $delay += random_int(0, self::JITTER_SECONDS);\n\n $attempts = $job->attempts();\n if ($attempts <= 3 || $attempts % 10 === 0) {\n Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [\n 'job_class' => $job::class,\n 'attempts' => $attempts,\n 'retry_after' => $e->getRetryAfter(),\n 'delay' => $delay,\n ]);\n }\n\n $job->release($delay);\n }\n }\n}","depth":28,"bounds":{"left":0.13763298,"top":0.27613726,"width":0.23803191,"height":0.014365523},"on_screen":true,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Middleware;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Exceptions\\RateLimitException;\n\n/**\n * Job middleware that catches RateLimitException from HubSpot API calls\n * and releases the job back to the queue with the appropriate delay.\n */\nclass HandleHubspotRateLimit\n{\n private const int MAX_RETRY_DELAY = 600;\n private const int MIN_RETRY_DELAY = 1;\n private const int JITTER_SECONDS = 5;\n\n public function handle(object $job, callable $next): void\n {\n try {\n $next($job);\n } catch (RateLimitException $e) {\n $delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));\n // Add jitter to prevent thundering herd problem by randomizing retry times\n $delay += random_int(0, self::JITTER_SECONDS);\n\n $attempts = $job->attempts();\n if ($attempts <= 3 || $attempts % 10 === 0) {\n Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [\n 'job_class' => $job::class,\n 'attempts' => $attempts,\n 'retry_after' => $e->getRetryAfter(),\n 'delay' => $delay,\n ]);\n }\n\n $job->release($delay);\n }\n }\n}","role_description":"editor","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Middleware;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Exceptions\\RateLimitException;\n\n/**\n * Job middleware that catches RateLimitException from HubSpot API calls\n * and releases the job back to the queue with the appropriate delay.\n */\nclass HandleHubspotRateLimit\n{\n private const int MAX_RETRY_DELAY = 600;\n private const int MIN_RETRY_DELAY = 1;\n private const int JITTER_SECONDS = 5;\n\n public function handle(object $job, callable $next): void\n {\n try {\n $next($job);\n } catch (RateLimitException $e) {\n $delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));\n // Add jitter to prevent thundering herd problem by randomizing retry times\n $delay += random_int(0, self::JITTER_SECONDS);\n\n $attempts = $job->attempts();\n if ($attempts <= 3 || $attempts % 10 === 0) {\n Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [\n 'job_class' => $job::class,\n 'attempts' => $attempts,\n 'retry_after' => $e->getRetryAfter(),\n 'delay' => $delay,\n ]);\n }\n\n $job->release($delay);\n }\n }\n}","depth":29,"bounds":{"left":0.13763298,"top":0.27613726,"width":0.23803191,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Review rate limit handli…, Editor Group 2","depth":28,"bounds":{"left":0.5578458,"top":0.047885075,"width":0.07014628,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXButton","text":"remote","depth":16,"bounds":{"left":0.0006648936,"top":0.98244214,"width":0.010638298,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...","depth":16,"bounds":{"left":0.012965426,"top":0.98244214,"width":0.084773935,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.013962766,"top":0.9848364,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JY-20725-handle-HS-search-rate-limit*","depth":17,"bounds":{"left":0.019281914,"top":0.9856345,"width":0.0774601,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"app (Git) - Synchronize Changes","depth":16,"bounds":{"left":0.09740692,"top":0.98244214,"width":0.0076462766,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Errors: 6, Warnings: 9, Infos: 2","depth":16,"bounds":{"left":0.107380316,"top":0.98244214,"width":0.032579787,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.109042555,"top":0.9848364,"width":0.0056515955,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"6","depth":17,"bounds":{"left":0.1143617,"top":0.9856345,"width":0.004986702,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.11934841,"top":0.9848364,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"9","depth":17,"bounds":{"left":0.124667555,"top":0.9856345,"width":0.004654255,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.12932181,"top":0.9848364,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":17,"bounds":{"left":0.13464096,"top":0.9856345,"width":0.003656915,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Notifications","depth":16,"bounds":{"left":0.9886968,"top":0.98244214,"width":0.010638298,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"key, PHP extension: Premium features not active.","depth":16,"bounds":{"left":0.9790558,"top":0.98244214,"width":0.008643617,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sign In","depth":16,"bounds":{"left":0.9544548,"top":0.98244214,"width":0.022606382,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.95611703,"top":0.9848364,"width":0.0056515955,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Sign In","depth":17,"bounds":{"left":0.96143615,"top":0.9856345,"width":0.013962766,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Diff editor","depth":12,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Clear","depth":12,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Review rate limit handling for HubSpot job queue","depth":19,"bounds":{"left":0.56017286,"top":0.08060654,"width":0.099734046,"height":0.022346368},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Session history","depth":19,"bounds":{"left":0.9780585,"top":0.08060654,"width":0.00930851,"height":0.022346368},"on_screen":true,"help_text":"Session history","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New session","depth":19,"bounds":{"left":0.9886968,"top":0.08060654,"width":0.00930851,"height":0.022346368},"on_screen":true,"help_text":"New session","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Message actions","depth":24,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"RateLimitException.php#9-9","depth":23,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"RateLimitException.php#9-9","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Reveiw the diff. Mostly","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Jobs/Crm/MatchActivityCrmData.php","depth":26,"on_screen":false,"help_text":"Open app/Jobs/Crm/MatchActivityCrmData.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Exceptions/RateLimitException.php","depth":26,"on_screen":false,"help_text":"Open app/Exceptions/RateLimitException.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Jobs/Middleware/HandleHubspotRateLimit.php","depth":26,"on_screen":false,"help_text":"Open app/Jobs/Middleware/HandleHubspotRateLimit.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Services/Crm/Hubspot/Client.php","depth":26,"on_screen":false,"help_text":"Open app/Services/Crm/Hubspot/Client.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"and","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php","depth":26,"on_screen":false,"help_text":"Open app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":". The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Thought for 5s","depth":23,"on_screen":false,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thought for 5s","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"I'll review the implementation carefully. Let me first check how","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is used elsewhere and look at the test files and","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"PaginationState","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":".","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find all usages of RateLimitException outside the changed files","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"RateLimitException\" /Users/lukas/jiminny/app/app --include=\"*.php\" | grep -v \"HandleHubspotRateLimit\\|MatchActivityCrmData\\|Client.php\\|RateLimitException.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception\n/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:17:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:68: RateLimitException |\n/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:15:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:58: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception\n/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:19:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:76: RateLimitException |\n/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:8:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:50: * @throws RateLimitException When rate limit is hit\n/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:195: // RateLimitException and other exceptions are re-thrown as-is","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"PaginationState.php","depth":24,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"PaginationState.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"HandleHubspotRateLimitTest.php","depth":24,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"HandleHubspotRateLimitTest.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check how RateLimitException is used in GenerateActionItemsJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"RateLimitException\\|LogicException\\|RuntimeException\" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -20","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find all catch blocks or instanceof checks for RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"catch.*RateLimitException\\|instanceof RateLimitException\" /Users/lukas/jiminny/app/app --include=\"*.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"}]...
|
1522493859083133280
|
-8459417744144288281
|
visual_change
|
accessibility
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 12 pending changes
12
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php
SaveTranscription.php
SetupLayout.php
SyncActivity.php
SyncFieldMetadata.php
SyncHubspotObjects.php
SyncLeads.php
SyncObjects.php
SyncOpportunitiesJob.php
SyncOpportunity.php
SyncProfileMetadata.php
SyncTeamFieldsJob.php
SyncTeamMetadata.php
UpdateOpportunitySpecifications.php
UpdateStage.php
DealRisks
Mailbox
MeetingBot
Middleware
HandleHubspotRateLimit.php
RateLimited.php
Streaming
Team
Telephony
User
BaseProcessingJob.php
DummyJob.php
ImportRecallAIRecordingsJob.php
ImportRemoteTrackJob.php
Job.php
JobDispatcher.php
JobDispatcherInterface.php
PurgeSoftDeletedOpportunityJob.php
SqsVisibilityControl.php
Listeners
Mail
Models
Activity
Ai
AskAnything
Calendar
Connection
Crm
Jobs
app
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
MySQL Section
MYSQL
MYSQL
MatchActivityCrmData.php, Editor Group 1
RateLimitException.php, Editor Group 1
HandleHubspotRateLimit.php, Editor Group 1
Client.php, Editor Group 1
HubspotPaginationService.php, Editor Group 1
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Middleware;
use Illuminate\Support\Facades\Log;
use Jiminny\Exceptions\RateLimitException;
/**
* Job middleware that catches RateLimitException from HubSpot API calls
* and releases the job back to the queue with the appropriate delay.
*/
class HandleHubspotRateLimit
{
private const int MAX_RETRY_DELAY = 600;
private const int MIN_RETRY_DELAY = 1;
private const int JITTER_SECONDS = 5;
public function handle(object $job, callable $next): void
{
try {
$next($job);
} catch (RateLimitException $e) {
$delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));
// Add jitter to prevent thundering herd problem by randomizing retry times
$delay += random_int(0, self::JITTER_SECONDS);
$attempts = $job->attempts();
if ($attempts <= 3 || $attempts % 10 === 0) {
Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [
'job_class' => $job::class,
'attempts' => $attempts,
'retry_after' => $e->getRetryAfter(),
'delay' => $delay,
]);
}
$job->release($delay);
}
}
}
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Middleware;
use Illuminate\Support\Facades\Log;
use Jiminny\Exceptions\RateLimitException;
/**
* Job middleware that catches RateLimitException from HubSpot API calls
* and releases the job back to the queue with the appropriate delay.
*/
class HandleHubspotRateLimit
{
private const int MAX_RETRY_DELAY = 600;
private const int MIN_RETRY_DELAY = 1;
private const int JITTER_SECONDS = 5;
public function handle(object $job, callable $next): void
{
try {
$next($job);
} catch (RateLimitException $e) {
$delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));
// Add jitter to prevent thundering herd problem by randomizing retry times
$delay += random_int(0, self::JITTER_SECONDS);
$attempts = $job->attempts();
if ($attempts <= 3 || $attempts % 10 === 0) {
Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [
'job_class' => $job::class,
'attempts' => $attempts,
'retry_after' => $e->getRetryAfter(),
'delay' => $delay,
]);
}
$job->release($delay);
}
}
}
Review rate limit handli…, Editor Group 2
remote
app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...
JY-20725-handle-HS-search-rate-limit*
app (Git) - Synchronize Changes
Errors: 6, Warnings: 9, Infos: 2
6
9
2
Notifications
key, PHP extension: Premium features not active.
Sign In
Sign In
Diff editor
Clear
Review rate limit handling for HubSpot job queue
Session history
New session
Message actions
RateLimitException.php#9-9
RateLimitException.php#9-9
Reveiw the diff. Mostly
@app/Jobs/Crm/MatchActivityCrmData.php
,
@app/Exceptions/RateLimitException.php
,
@app/Jobs/Middleware/HandleHubspotRateLimit.php
,
@app/Services/Crm/Hubspot/Client.php
and
@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php
. The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?
Thought for 5s
Thought for 5s
I'll review the implementation carefully. Let me first check how
RateLimitException
is used elsewhere and look at the test files and
PaginationState
.
Bash
Find all usages of RateLimitException outside the changed files
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/app --include="*.php" | grep -v "HandleHubspotRateLimit\|MatchActivityCrmData\|Client.php\|RateLimitException.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:17:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:68: RateLimitException |
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:15:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:58: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:19:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:76: RateLimitException |
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:50: * @throws RateLimitException When rate limit is hit
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:195: // RateLimitException and other exceptions are re-thrown as-is
Read
PaginationState.php
PaginationState.php
Read
HandleHubspotRateLimitTest.php
HandleHubspotRateLimitTest.php
Bash
Check how RateLimitException is used in GenerateActionItemsJob
IN
grep -rn "RateLimitException\|LogicException\|RuntimeException" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -20
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
Bash
Find all catch blocks or instanceof checks for RateLimitException
IN
grep -rn "catch.*RateLimitException\|instanceof RateLimitException" /Users/lukas/jiminny/app/app --include="*.php"
Copy code to clipboard
OUT...
|
19545
|
NULL
|
NULL
|
NULL
|
|
19547
|
837
|
2
|
2026-05-11T13:02:37.813474+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778504557813_m2.jpg...
|
Code
|
Review rate limit handli… — app
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 12 pending changes
12
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php
SaveTranscription.php
SetupLayout.php
SyncActivity.php
SyncFieldMetadata.php
SyncHubspotObjects.php
SyncLeads.php
SyncObjects.php
SyncOpportunitiesJob.php
SyncOpportunity.php
SyncProfileMetadata.php
SyncTeamFieldsJob.php
SyncTeamMetadata.php
UpdateOpportunitySpecifications.php
UpdateStage.php
DealRisks
Mailbox
MeetingBot
Middleware
HandleHubspotRateLimit.php
RateLimited.php
Streaming
Team
Telephony
User
BaseProcessingJob.php
DummyJob.php
ImportRecallAIRecordingsJob.php
ImportRemoteTrackJob.php
Job.php
JobDispatcher.php
JobDispatcherInterface.php
PurgeSoftDeletedOpportunityJob.php
SqsVisibilityControl.php
Listeners
Mail
Models
Activity
Ai
AskAnything
Calendar
Connection
Crm
Jobs
app
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
MySQL Section
MYSQL
MYSQL
MatchActivityCrmData.php, Editor Group 1
RateLimitException.php, Editor Group 1
HandleHubspotRateLimit.php, Editor Group 1
Client.php, Editor Group 1
HubspotPaginationService.php, Editor Group 1
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Middleware;
use Illuminate\Support\Facades\Log;
use Jiminny\Exceptions\RateLimitException;
/**
* Job middleware that catches RateLimitException from HubSpot API calls
* and releases the job back to the queue with the appropriate delay.
*/
class HandleHubspotRateLimit
{
private const int MAX_RETRY_DELAY = 600;
private const int MIN_RETRY_DELAY = 1;
private const int JITTER_SECONDS = 5;
public function handle(object $job, callable $next): void
{
try {
$next($job);
} catch (RateLimitException $e) {
$delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));
// Add jitter to prevent thundering herd problem by randomizing retry times
$delay += random_int(0, self::JITTER_SECONDS);
$attempts = $job->attempts();
if ($attempts <= 3 || $attempts % 10 === 0) {
Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [
'job_class' => $job::class,
'attempts' => $attempts,
'retry_after' => $e->getRetryAfter(),
'delay' => $delay,
]);
}
$job->release($delay);
}
}
}
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Middleware;
use Illuminate\Support\Facades\Log;
use Jiminny\Exceptions\RateLimitException;
/**
* Job middleware that catches RateLimitException from HubSpot API calls
* and releases the job back to the queue with the appropriate delay.
*/
class HandleHubspotRateLimit
{
private const int MAX_RETRY_DELAY = 600;
private const int MIN_RETRY_DELAY = 1;
private const int JITTER_SECONDS = 5;
public function handle(object $job, callable $next): void
{
try {
$next($job);
} catch (RateLimitException $e) {
$delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));
// Add jitter to prevent thundering herd problem by randomizing retry times
$delay += random_int(0, self::JITTER_SECONDS);
$attempts = $job->attempts();
if ($attempts <= 3 || $attempts % 10 === 0) {
Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [
'job_class' => $job::class,
'attempts' => $attempts,
'retry_after' => $e->getRetryAfter(),
'delay' => $delay,
]);
}
$job->release($delay);
}
}
}
Review rate limit handli…, Editor Group 2
remote
app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...
JY-20725-handle-HS-search-rate-limit*
app (Git) - Synchronize Changes
Errors: 6, Warnings: 9, Infos: 2
6
9
2
Notifications
key, PHP extension: Premium features not active.
Sign In
Sign In
Diff editor
Clear
Review rate limit handling for HubSpot job queue
Session history
New session
Message actions
RateLimitException.php#9-9
RateLimitException.php#9-9
Reveiw the diff. Mostly
@app/Jobs/Crm/MatchActivityCrmData.php
,
@app/Exceptions/RateLimitException.php
,
@app/Jobs/Middleware/HandleHubspotRateLimit.php
,
@app/Services/Crm/Hubspot/Client.php
and
@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php
. The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?
Thought for 5s
Thought for 5s
I'll review the implementation carefully. Let me first check how
RateLimitException
is used elsewhere and look at the test files and
PaginationState
.
Bash
Find all usages of RateLimitException outside the changed files
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/app --include="*.php" | grep -v "HandleHubspotRateLimit\|MatchActivityCrmData\|Client.php\|RateLimitException.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:17:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:68: RateLimitException |
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:15:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:58: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:19:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:76: RateLimitException |
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:50: * @throws RateLimitException When rate limit is hit
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:195: // RateLimitException and other exceptions are re-thrown as-is
Read
PaginationState.php
PaginationState.php
Read
HandleHubspotRateLimitTest.php
HandleHubspotRateLimitTest.php
Bash
Check how RateLimitException is used in GenerateActionItemsJob
IN
grep -rn "RateLimitException\|LogicException\|RuntimeException" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -20
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
Bash
Find all catch blocks or instanceof checks for RateLimitException
IN
grep -rn "catch.*RateLimitException\|instanceof RateLimitException" /Users/lukas/jiminny/app/app --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:11: * Job middleware that catches RateLimitException from HubSpot API calls
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:24: } catch (RateLimitException $e) {
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:149: if (! $e instanceof RateLimitException) {
Bash
Find all test references to RateLimitException
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/tests --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:13:#[CoversClass(RateLimitException::class)]
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:14:class RateLimitExceptionTest extends TestCase
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:18: $exception = new RateLimitException();
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:28: $exception = new RateLimitException('Hubspot rate limit', 30, $previous);
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:52: $exception = new RateLimitException('test', $input);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:10:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:49: public function testPropagatesNonRateLimitExceptions(): void
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:103: throw new RateLimitException('rate limited', $retryAfter);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:150: throw new RateLimitException('rate limited', 1);
Bash
Check retry/failure handling in GenerateActionItemsJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -30
Copy code to clipboard
OUT
13:use Jiminny\Exceptions\RateLimitException;
51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
56: $this->release(30);
Bash
Check retry/failure handling in GenerateAiCallScoringJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php | head -30
Copy code to clipboard
OUT
17:use Jiminny\Exceptions\RateLimitException;
68: RateLimitException |
75: $this->release(30);
Bash
Check retry config in MatchActivityCrmData
IN
grep -n "retryAfter\|RETRY_WINDOW\|retryUntil\|maxTries" /Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php
Copy code to clipboard
OUT
34: private const int RETRY_WINDOW_MINUTES = 30;
45: public function retryUntil(): \DateTimeInterface
47: return now()->addMinutes(self::RETRY_WINDOW_MINUTES);
77: return self::RETRY_WINDOW_MINUTES * 60 + 60;
Bash
Check the cache key format
IN
grep -n "getRateLimitCacheKey\|hubspot:ratelimit" /Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Client.php
Copy code to clipboard
OUT
78: $cacheKey = $this->getRateLimitCacheKey();
110: private function getRateLimitCacheKey(): string
112: return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());
Bash
Find other jobs that might use the rate limit middleware
IN
grep -rn "class.*Middleware\|HandleHubspotRateLimit" /Users/lukas/jiminny/app/app/Jobs --include="*.php" | grep -v "HandleHubspotRateLimit.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:18:use Jiminny\Jobs\Middleware\HandleHubspotRateLimit;
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:42: return [new HandleHubspotRateLimit()];
Read
HubspotClientInterface.php
HubspotClientInterface.php
Thought for 73s
Thought for 73s
Now I have a complete picture. Here's my full analysis:
Review Summary
Review Summary
RuntimeException vs LogicException — Safe ✓
RuntimeException
vs
LogicException
— Safe ✓
The change is semantically correct and won't break anything.
LogicException
is for programmer errors (invalid arguments, contract violations). A rate limit from an external API is a runtime condition —
RuntimeException
is the right parent. All callers catch
RateLimitException
by name explicitly (union catches in
GenerateActionItemsJob
,
GenerateAiCallScoringJob
,
SummarizeTranscriptionJob
,
GenerateAiActivityTypeJob
) or check
instanceof RateLimitException
— none relies on the parent class type, so nothing breaks.
Issue 1 — Circuit breaker stores stale delay (most important bug)
Issue 1 — Circuit breaker stores stale delay (most important bug)...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Explorer (⇧⌘E)","depth":19,"bounds":{"left":0.0,"top":0.047885075,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":true},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.057462092,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Search (⇧⌘F)","depth":19,"bounds":{"left":0.0,"top":0.08619314,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.09577015,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Source Control (⌃⇧G) - 12 pending changes","depth":19,"bounds":{"left":0.0,"top":0.1245012,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.13407822,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"12","depth":22,"bounds":{"left":0.00831117,"top":0.1452514,"width":0.003656915,"height":0.008778931},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.008643617,"top":0.14604948,"width":0.0016622341,"height":0.007980846}},{"char_start":1,"char_count":1,"bounds":{"left":0.009973404,"top":0.14604948,"width":0.0023271276,"height":0.007980846}}],"role_description":"text"},{"role":"AXRadioButton","text":"Run and Debug (⇧⌘D)","depth":19,"bounds":{"left":0.0,"top":0.16280925,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.17238627,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Remote Explorer","depth":19,"bounds":{"left":0.0,"top":0.20111732,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.21069433,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Extensions (⇧⌘X) - 2 require update","depth":19,"bounds":{"left":0.0,"top":0.23942538,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.2490024,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":22,"bounds":{"left":0.009640957,"top":0.2601756,"width":0.0019946808,"height":0.008778931},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Testing","depth":19,"bounds":{"left":0.0,"top":0.27773345,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.28731045,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Claude Code","depth":19,"bounds":{"left":0.0,"top":0.3160415,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"EXPLORER","depth":17,"bounds":{"left":0.022606382,"top":0.047885075,"width":0.018949468,"height":0.02793296},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"EXPLORER","depth":18,"bounds":{"left":0.022606382,"top":0.056664005,"width":0.018949468,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.022606382,"top":0.056664005,"width":0.0023271276,"height":0.0103751}},{"char_start":1,"char_count":7,"bounds":{"left":0.024933511,"top":0.056664005,"width":0.01662234,"height":0.0103751}}],"role_description":"text"},{"role":"AXButton","text":"Explorer Section: app","depth":21,"bounds":{"left":0.015957447,"top":0.07581804,"width":0.09940159,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.07821229,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"Explorer Section: app","depth":22,"bounds":{"left":0.022606382,"top":0.07581804,"width":0.0076462766,"height":0.017557861},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"APP","depth":23,"bounds":{"left":0.022606382,"top":0.079010375,"width":0.0076462766,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.0933759,"width":0.0063164895,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CheckAndRetryRemoteMatch.php","depth":27,"bounds":{"left":0.033909574,"top":0.0933759,"width":0.068484046,"height":0.011173184},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.0933759,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":27,"bounds":{"left":0.036901597,"top":0.0933759,"width":0.06549202,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.10853951,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateFollowupActivity.php","depth":27,"bounds":{"left":0.033909574,"top":0.110135674,"width":0.054853722,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.11093376,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":25,"bounds":{"left":0.036901597,"top":0.11093376,"width":0.051861703,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.12609737,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateNotes.php","depth":27,"bounds":{"left":0.033909574,"top":0.12769353,"width":0.034242023,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.12849163,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.036901597,"top":0.12849163,"width":0.03125,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.14365523,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivitiesToNewOpportunity.php","depth":27,"bounds":{"left":0.033909574,"top":0.1452514,"width":0.07712766,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.14604948,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":34,"bounds":{"left":0.037898935,"top":0.14604948,"width":0.07347074,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.16121309,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivityCrmData.php","depth":27,"bounds":{"left":0.033909574,"top":0.16280925,"width":0.054521278,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.16360734,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":23,"bounds":{"left":0.037898935,"top":0.16360734,"width":0.050531916,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.17877094,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"NoteObject.php","depth":27,"bounds":{"left":0.033909574,"top":0.18036711,"width":0.031914894,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.1811652,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":13,"bounds":{"left":0.03723404,"top":0.1811652,"width":0.028922873,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.1963288,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SaveActivity.php","depth":27,"bounds":{"left":0.033909574,"top":0.19792499,"width":0.03324468,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.19872306,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":15,"bounds":{"left":0.03656915,"top":0.19872306,"width":0.030585106,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.21388668,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SaveTranscription.php","depth":27,"bounds":{"left":0.033909574,"top":0.21548285,"width":0.04454787,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.21628092,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":20,"bounds":{"left":0.03656915,"top":0.21628092,"width":0.042220745,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.23144454,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SetupLayout.php","depth":27,"bounds":{"left":0.033909574,"top":0.2330407,"width":0.034242023,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.23383878,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.03656915,"top":0.23383878,"width":0.031914894,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.2490024,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncActivity.php","depth":27,"bounds":{"left":0.033909574,"top":0.25059855,"width":0.03357713,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.25139666,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":15,"bounds":{"left":0.03656915,"top":0.25139666,"width":0.030917553,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.26656026,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncFieldMetadata.php","depth":27,"bounds":{"left":0.033909574,"top":0.26815644,"width":0.047539894,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.26895452,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":20,"bounds":{"left":0.03656915,"top":0.26895452,"width":0.04488032,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.28411812,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncHubspotObjects.php","depth":27,"bounds":{"left":0.033909574,"top":0.2857143,"width":0.051861703,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.28651237,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":21,"bounds":{"left":0.03656915,"top":0.28651237,"width":0.04920213,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.30167598,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncLeads.php","depth":27,"bounds":{"left":0.033909574,"top":0.30327216,"width":0.030917553,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.30407023,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":12,"bounds":{"left":0.03656915,"top":0.30407023,"width":0.02825798,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.31923383,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncObjects.php","depth":27,"bounds":{"left":0.033909574,"top":0.32083002,"width":0.034574468,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.3216281,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.03656915,"top":0.3216281,"width":0.031914894,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.3367917,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncOpportunitiesJob.php","depth":27,"bounds":{"left":0.033909574,"top":0.33838788,"width":0.053856384,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.33918595,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":23,"bounds":{"left":0.03656915,"top":0.33918595,"width":0.05119681,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.35434955,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncOpportunity.php","depth":27,"bounds":{"left":0.033909574,"top":0.35594574,"width":0.04288564,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.3567438,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":18,"bounds":{"left":0.03656915,"top":0.3567438,"width":0.040226065,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.3719074,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncProfileMetadata.php","depth":27,"bounds":{"left":0.033909574,"top":0.3735036,"width":0.05086436,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.37430167,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":22,"bounds":{"left":0.03656915,"top":0.37430167,"width":0.048204787,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.38946527,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncTeamFieldsJob.php","depth":27,"bounds":{"left":0.033909574,"top":0.39106146,"width":0.04886968,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.39185953,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":20,"bounds":{"left":0.03656915,"top":0.39185953,"width":0.046210106,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.40702313,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncTeamMetadata.php","depth":27,"bounds":{"left":0.033909574,"top":0.4086193,"width":0.048537236,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.4094174,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":19,"bounds":{"left":0.03656915,"top":0.4094174,"width":0.045877658,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.424581,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"UpdateOpportunitySpecifications.php","depth":27,"bounds":{"left":0.033909574,"top":0.42617717,"width":0.076130316,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.42697525,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":34,"bounds":{"left":0.03723404,"top":0.42697525,"width":0.0731383,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.44213888,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"UpdateStage.php","depth":27,"bounds":{"left":0.033909574,"top":0.44373503,"width":0.03523936,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.4445331,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.03723404,"top":0.4445331,"width":0.032247342,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.4612929,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"DealRisks","depth":27,"bounds":{"left":0.03125,"top":0.4612929,"width":0.019614361,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.46209097,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":8,"bounds":{"left":0.034574468,"top":0.46209097,"width":0.016289894,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.47885075,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mailbox","depth":27,"bounds":{"left":0.03125,"top":0.47885075,"width":0.015625,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.47964883,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":6,"bounds":{"left":0.03523936,"top":0.47964883,"width":0.011635638,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.4964086,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MeetingBot","depth":27,"bounds":{"left":0.03125,"top":0.4964086,"width":0.023271276,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.49720672,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":9,"bounds":{"left":0.03523936,"top":0.49720672,"width":0.019281914,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.5139665,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Middleware","depth":27,"bounds":{"left":0.03125,"top":0.5139665,"width":0.023271276,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.51476455,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":9,"bounds":{"left":0.03523936,"top":0.51476455,"width":0.019281914,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.52992815,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"HandleHubspotRateLimit.php","depth":27,"bounds":{"left":0.033909574,"top":0.53152436,"width":0.059175532,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.5323224,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":25,"bounds":{"left":0.03723404,"top":0.5323224,"width":0.05618351,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.547486,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"RateLimited.php","depth":27,"bounds":{"left":0.033909574,"top":0.5490822,"width":0.032912236,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.54988027,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.036901597,"top":0.54988027,"width":0.029920213,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.5666401,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Streaming","depth":27,"bounds":{"left":0.03125,"top":0.5666401,"width":0.020611702,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.5674381,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":8,"bounds":{"left":0.033909574,"top":0.5674381,"width":0.017952127,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.58419794,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Team","depth":27,"bounds":{"left":0.03125,"top":0.58419794,"width":0.010970744,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.584996,"width":0.0023271276,"height":0.011971269}},{"char_start":1,"char_count":3,"bounds":{"left":0.03357713,"top":0.584996,"width":0.008643617,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.6017558,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Telephony","depth":27,"bounds":{"left":0.03125,"top":0.6017558,"width":0.020611702,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.60255384,"width":0.0023271276,"height":0.011971269}},{"char_start":1,"char_count":8,"bounds":{"left":0.03357713,"top":0.60255384,"width":0.018284574,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.61931366,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"User","depth":27,"bounds":{"left":0.03125,"top":0.61931366,"width":0.00930851,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.6201117,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":3,"bounds":{"left":0.034574468,"top":0.6201117,"width":0.0063164895,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.63527536,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"BaseProcessingJob.php","depth":27,"bounds":{"left":0.03125,"top":0.6368715,"width":0.048537236,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.63766956,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":20,"bounds":{"left":0.034242023,"top":0.63766956,"width":0.045545213,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.6528332,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"DummyJob.php","depth":27,"bounds":{"left":0.03125,"top":0.6544294,"width":0.03158245,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.6552275,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":11,"bounds":{"left":0.034574468,"top":0.6552275,"width":0.02825798,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.6703911,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"ImportRecallAIRecordingsJob.php","depth":27,"bounds":{"left":0.03125,"top":0.67198724,"width":0.068484046,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.67278534,"width":0.0013297872,"height":0.011971269}},{"char_start":1,"char_count":30,"bounds":{"left":0.032579787,"top":0.67278534,"width":0.06715426,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.68794894,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"ImportRemoteTrackJob.php","depth":27,"bounds":{"left":0.03125,"top":0.6895451,"width":0.055518616,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.6903432,"width":0.0013297872,"height":0.011971269}},{"char_start":1,"char_count":23,"bounds":{"left":0.032579787,"top":0.6903432,"width":0.054521278,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.7055068,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Job.php","depth":27,"bounds":{"left":0.03125,"top":0.70710295,"width":0.016289894,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.70790106,"width":0.0023271276,"height":0.011971269}},{"char_start":1,"char_count":6,"bounds":{"left":0.03357713,"top":0.70790106,"width":0.014295213,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.72306466,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JobDispatcher.php","depth":27,"bounds":{"left":0.03125,"top":0.7246608,"width":0.037898935,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.7254589,"width":0.0023271276,"height":0.011971269}},{"char_start":1,"char_count":16,"bounds":{"left":0.03357713,"top":0.7254589,"width":0.035904255,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.7406225,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JobDispatcherInterface.php","depth":27,"bounds":{"left":0.03125,"top":0.7422187,"width":0.05618351,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.7430168,"width":0.0023271276,"height":0.011971269}},{"char_start":1,"char_count":25,"bounds":{"left":0.03357713,"top":0.7430168,"width":0.05418883,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.7581804,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"PurgeSoftDeletedOpportunityJob.php","depth":27,"bounds":{"left":0.03125,"top":0.75977653,"width":0.076130316,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.77573824,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SqsVisibilityControl.php","depth":27,"bounds":{"left":0.03125,"top":0.7773344,"width":0.047872342,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.022273935,"top":0.79489225,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Listeners","depth":27,"bounds":{"left":0.028590426,"top":0.79489225,"width":0.018284574,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.022273935,"top":0.8124501,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mail","depth":27,"bounds":{"left":0.028590426,"top":0.8124501,"width":0.00831117,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.022273935,"top":0.830008,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Models","depth":27,"bounds":{"left":0.028590426,"top":0.830008,"width":0.01462766,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.8475658,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Activity","depth":27,"bounds":{"left":0.03125,"top":0.8475658,"width":0.014960106,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.8651237,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Ai","depth":27,"bounds":{"left":0.03125,"top":0.8651237,"width":0.0039893617,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.88268155,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"AskAnything","depth":27,"bounds":{"left":0.03125,"top":0.88268155,"width":0.025265958,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.9002394,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Calendar","depth":27,"bounds":{"left":0.03125,"top":0.9002394,"width":0.017952127,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.91779727,"width":0.005319149,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Connection","depth":27,"bounds":{"left":0.03125,"top":0.91779727,"width":0.022938829,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.13088587,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Crm","depth":27,"bounds":{"left":0.03125,"top":0.13088587,"width":0.00831117,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.022273935,"top":0.11332801,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Jobs","depth":27,"bounds":{"left":0.028590426,"top":0.11332801,"width":0.009640957,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.019614361,"top":0.09577015,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"app","depth":27,"bounds":{"left":0.025930852,"top":0.09577015,"width":0.0076462766,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.10605053,"top":0.096568234,"width":0.004654255,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Outline Section","depth":21,"bounds":{"left":0.015957447,"top":0.92976856,"width":0.09940159,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.9321628,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"OUTLINE","depth":22,"bounds":{"left":0.022606382,"top":0.92976856,"width":0.01662234,"height":0.017557861},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"OUTLINE","depth":23,"bounds":{"left":0.022606382,"top":0.933759,"width":0.01662234,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Timeline Section","depth":21,"bounds":{"left":0.015957447,"top":0.9473264,"width":0.09940159,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.9497207,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"TIMELINE","depth":22,"bounds":{"left":0.022606382,"top":0.9473264,"width":0.01761968,"height":0.017557861},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"TIMELINE","depth":23,"bounds":{"left":0.022606382,"top":0.95131683,"width":0.01761968,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"MySQL Section","depth":21,"bounds":{"left":0.015957447,"top":0.9648843,"width":0.09940159,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.96727854,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"MYSQL","depth":22,"bounds":{"left":0.022606382,"top":0.9648843,"width":0.013297873,"height":0.017557861},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"MYSQL","depth":23,"bounds":{"left":0.022606382,"top":0.9688747,"width":0.013297873,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"MatchActivityCrmData.php, Editor Group 1","depth":28,"bounds":{"left":0.11569149,"top":0.047885075,"width":0.07480053,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"RateLimitException.php, Editor Group 1","depth":28,"bounds":{"left":0.19015957,"top":0.047885075,"width":0.06815159,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"HandleHubspotRateLimit.php, Editor Group 1","depth":28,"bounds":{"left":0.25797874,"top":0.047885075,"width":0.080119684,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXRadioButton","text":"Client.php, Editor Group 1","depth":28,"bounds":{"left":0.33776596,"top":0.047885075,"width":0.045545213,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"HubspotPaginationService.php, Editor Group 1","depth":28,"bounds":{"left":0.38297874,"top":0.047885075,"width":0.08277926,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.12832446,"top":0.07821229,"width":0.0056515955,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.14328457,"top":0.07821229,"width":0.0056515955,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.171875,"top":0.07821229,"width":0.0056515955,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.24401596,"top":0.07821229,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.24933511,"top":0.07821229,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Middleware;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Exceptions\\RateLimitException;\n\n/**\n * Job middleware that catches RateLimitException from HubSpot API calls\n * and releases the job back to the queue with the appropriate delay.\n */\nclass HandleHubspotRateLimit\n{\n private const int MAX_RETRY_DELAY = 600;\n private const int MIN_RETRY_DELAY = 1;\n private const int JITTER_SECONDS = 5;\n\n public function handle(object $job, callable $next): void\n {\n try {\n $next($job);\n } catch (RateLimitException $e) {\n $delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));\n // Add jitter to prevent thundering herd problem by randomizing retry times\n $delay += random_int(0, self::JITTER_SECONDS);\n\n $attempts = $job->attempts();\n if ($attempts <= 3 || $attempts % 10 === 0) {\n Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [\n 'job_class' => $job::class,\n 'attempts' => $attempts,\n 'retry_after' => $e->getRetryAfter(),\n 'delay' => $delay,\n ]);\n }\n\n $job->release($delay);\n }\n }\n}","depth":28,"bounds":{"left":0.13763298,"top":0.27613726,"width":0.23803191,"height":0.014365523},"on_screen":true,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Middleware;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Exceptions\\RateLimitException;\n\n/**\n * Job middleware that catches RateLimitException from HubSpot API calls\n * and releases the job back to the queue with the appropriate delay.\n */\nclass HandleHubspotRateLimit\n{\n private const int MAX_RETRY_DELAY = 600;\n private const int MIN_RETRY_DELAY = 1;\n private const int JITTER_SECONDS = 5;\n\n public function handle(object $job, callable $next): void\n {\n try {\n $next($job);\n } catch (RateLimitException $e) {\n $delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));\n // Add jitter to prevent thundering herd problem by randomizing retry times\n $delay += random_int(0, self::JITTER_SECONDS);\n\n $attempts = $job->attempts();\n if ($attempts <= 3 || $attempts % 10 === 0) {\n Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [\n 'job_class' => $job::class,\n 'attempts' => $attempts,\n 'retry_after' => $e->getRetryAfter(),\n 'delay' => $delay,\n ]);\n }\n\n $job->release($delay);\n }\n }\n}","role_description":"editor","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Middleware;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Exceptions\\RateLimitException;\n\n/**\n * Job middleware that catches RateLimitException from HubSpot API calls\n * and releases the job back to the queue with the appropriate delay.\n */\nclass HandleHubspotRateLimit\n{\n private const int MAX_RETRY_DELAY = 600;\n private const int MIN_RETRY_DELAY = 1;\n private const int JITTER_SECONDS = 5;\n\n public function handle(object $job, callable $next): void\n {\n try {\n $next($job);\n } catch (RateLimitException $e) {\n $delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));\n // Add jitter to prevent thundering herd problem by randomizing retry times\n $delay += random_int(0, self::JITTER_SECONDS);\n\n $attempts = $job->attempts();\n if ($attempts <= 3 || $attempts % 10 === 0) {\n Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [\n 'job_class' => $job::class,\n 'attempts' => $attempts,\n 'retry_after' => $e->getRetryAfter(),\n 'delay' => $delay,\n ]);\n }\n\n $job->release($delay);\n }\n }\n}","depth":29,"bounds":{"left":0.13763298,"top":0.27613726,"width":0.23803191,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Review rate limit handli…, Editor Group 2","depth":28,"bounds":{"left":0.5578458,"top":0.047885075,"width":0.07014628,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXButton","text":"remote","depth":16,"bounds":{"left":0.0006648936,"top":0.98244214,"width":0.010638298,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...","depth":16,"bounds":{"left":0.012965426,"top":0.98244214,"width":0.084773935,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.013962766,"top":0.9848364,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JY-20725-handle-HS-search-rate-limit*","depth":17,"bounds":{"left":0.019281914,"top":0.9856345,"width":0.0774601,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"app (Git) - Synchronize Changes","depth":16,"bounds":{"left":0.09740692,"top":0.98244214,"width":0.0076462766,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Errors: 6, Warnings: 9, Infos: 2","depth":16,"bounds":{"left":0.107380316,"top":0.98244214,"width":0.032579787,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.109042555,"top":0.9848364,"width":0.0056515955,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"6","depth":17,"bounds":{"left":0.1143617,"top":0.9856345,"width":0.004986702,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.11934841,"top":0.9848364,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"9","depth":17,"bounds":{"left":0.124667555,"top":0.9856345,"width":0.004654255,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.12932181,"top":0.9848364,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":17,"bounds":{"left":0.13464096,"top":0.9856345,"width":0.003656915,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Notifications","depth":16,"bounds":{"left":0.9886968,"top":0.98244214,"width":0.010638298,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"key, PHP extension: Premium features not active.","depth":16,"bounds":{"left":0.9790558,"top":0.98244214,"width":0.008643617,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sign In","depth":16,"bounds":{"left":0.9544548,"top":0.98244214,"width":0.022606382,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.95611703,"top":0.9848364,"width":0.0056515955,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Sign In","depth":17,"bounds":{"left":0.96143615,"top":0.9856345,"width":0.013962766,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Diff editor","depth":12,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Clear","depth":12,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Review rate limit handling for HubSpot job queue","depth":19,"bounds":{"left":0.56017286,"top":0.08060654,"width":0.099734046,"height":0.022346368},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Session history","depth":19,"bounds":{"left":0.9780585,"top":0.08060654,"width":0.00930851,"height":0.022346368},"on_screen":true,"help_text":"Session history","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New session","depth":19,"bounds":{"left":0.9886968,"top":0.08060654,"width":0.00930851,"height":0.022346368},"on_screen":true,"help_text":"New session","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Message actions","depth":24,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"RateLimitException.php#9-9","depth":23,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"RateLimitException.php#9-9","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Reveiw the diff. Mostly","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Jobs/Crm/MatchActivityCrmData.php","depth":26,"on_screen":false,"help_text":"Open app/Jobs/Crm/MatchActivityCrmData.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Exceptions/RateLimitException.php","depth":26,"on_screen":false,"help_text":"Open app/Exceptions/RateLimitException.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Jobs/Middleware/HandleHubspotRateLimit.php","depth":26,"on_screen":false,"help_text":"Open app/Jobs/Middleware/HandleHubspotRateLimit.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Services/Crm/Hubspot/Client.php","depth":26,"on_screen":false,"help_text":"Open app/Services/Crm/Hubspot/Client.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"and","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php","depth":26,"on_screen":false,"help_text":"Open app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":". The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Thought for 5s","depth":23,"on_screen":false,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thought for 5s","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"I'll review the implementation carefully. Let me first check how","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is used elsewhere and look at the test files and","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"PaginationState","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":".","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find all usages of RateLimitException outside the changed files","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"RateLimitException\" /Users/lukas/jiminny/app/app --include=\"*.php\" | grep -v \"HandleHubspotRateLimit\\|MatchActivityCrmData\\|Client.php\\|RateLimitException.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception\n/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:17:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:68: RateLimitException |\n/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:15:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:58: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception\n/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:19:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:76: RateLimitException |\n/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:8:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:50: * @throws RateLimitException When rate limit is hit\n/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:195: // RateLimitException and other exceptions are re-thrown as-is","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"PaginationState.php","depth":24,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"PaginationState.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"HandleHubspotRateLimitTest.php","depth":24,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"HandleHubspotRateLimitTest.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check how RateLimitException is used in GenerateActionItemsJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"RateLimitException\\|LogicException\\|RuntimeException\" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -20","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find all catch blocks or instanceof checks for RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"catch.*RateLimitException\\|instanceof RateLimitException\" /Users/lukas/jiminny/app/app --include=\"*.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:11: * Job middleware that catches RateLimitException from HubSpot API calls\n/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:24: } catch (RateLimitException $e) {\n/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:149: if (! $e instanceof RateLimitException) {","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find all test references to RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"RateLimitException\" /Users/lukas/jiminny/app/tests --include=\"*.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:8:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:13:#[CoversClass(RateLimitException::class)]\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:14:class RateLimitExceptionTest extends TestCase\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:18: $exception = new RateLimitException();\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:28: $exception = new RateLimitException('Hubspot rate limit', 30, $previous);\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:52: $exception = new RateLimitException('test', $input);\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:10:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:49: public function testPropagatesNonRateLimitExceptions(): void\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:103: throw new RateLimitException('rate limited', $retryAfter);\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:150: throw new RateLimitException('rate limited', 1);","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check retry/failure handling in GenerateActionItemsJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"RateLimitException\\|retryUntil\\|backoff\\|maxExceptions\\|maxTries\\|release\\|failed\" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -30","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"13:use Jiminny\\Exceptions\\RateLimitException;\n51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception\n56: $this->release(30);","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check retry/failure handling in GenerateAiCallScoringJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"RateLimitException\\|retryUntil\\|backoff\\|maxExceptions\\|maxTries\\|release\\|failed\" /Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php | head -30","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"17:use Jiminny\\Exceptions\\RateLimitException;\n68: RateLimitException |\n75: $this->release(30);","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check retry config in MatchActivityCrmData","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"retryAfter\\|RETRY_WINDOW\\|retryUntil\\|maxTries\" /Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"34: private const int RETRY_WINDOW_MINUTES = 30;\n45: public function retryUntil(): \\DateTimeInterface\n47: return now()->addMinutes(self::RETRY_WINDOW_MINUTES);\n77: return self::RETRY_WINDOW_MINUTES * 60 + 60;","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check the cache key format","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"getRateLimitCacheKey\\|hubspot:ratelimit\" /Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Client.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"78: $cacheKey = $this->getRateLimitCacheKey();\n110: private function getRateLimitCacheKey(): string\n112: return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find other jobs that might use the rate limit middleware","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"class.*Middleware\\|HandleHubspotRateLimit\" /Users/lukas/jiminny/app/app/Jobs --include=\"*.php\" | grep -v \"HandleHubspotRateLimit.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:18:use Jiminny\\Jobs\\Middleware\\HandleHubspotRateLimit;\n/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:42: return [new HandleHubspotRateLimit()];","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"HubspotClientInterface.php","depth":24,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"HubspotClientInterface.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Thought for 73s","depth":23,"on_screen":false,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thought for 73s","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Now I have a complete picture. Here's my full analysis:","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"Review Summary","depth":22,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"Review Summary","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"RuntimeException vs LogicException — Safe ✓","depth":22,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"RuntimeException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"vs","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"LogicException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"— Safe ✓","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"The change is semantically correct and won't break anything.","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"LogicException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is for programmer errors (invalid arguments, contract violations). A rate limit from an external API is a runtime condition —","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RuntimeException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is the right parent. All callers catch","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"by name explicitly (union catches in","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"GenerateActionItemsJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"GenerateAiCallScoringJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"SummarizeTranscriptionJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"GenerateAiActivityTypeJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":") or check","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"instanceof RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"— none relies on the parent class type, so nothing breaks.","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"Issue 1 — Circuit breaker stores stale delay (most important bug)","depth":22,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"Issue 1 — Circuit breaker stores stale delay (most important bug)","depth":23,"on_screen":false,"role_description":"text"}]...
|
-4737174288306400896
|
-7290746955249175357
|
visual_change
|
accessibility
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 12 pending changes
12
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php
SaveTranscription.php
SetupLayout.php
SyncActivity.php
SyncFieldMetadata.php
SyncHubspotObjects.php
SyncLeads.php
SyncObjects.php
SyncOpportunitiesJob.php
SyncOpportunity.php
SyncProfileMetadata.php
SyncTeamFieldsJob.php
SyncTeamMetadata.php
UpdateOpportunitySpecifications.php
UpdateStage.php
DealRisks
Mailbox
MeetingBot
Middleware
HandleHubspotRateLimit.php
RateLimited.php
Streaming
Team
Telephony
User
BaseProcessingJob.php
DummyJob.php
ImportRecallAIRecordingsJob.php
ImportRemoteTrackJob.php
Job.php
JobDispatcher.php
JobDispatcherInterface.php
PurgeSoftDeletedOpportunityJob.php
SqsVisibilityControl.php
Listeners
Mail
Models
Activity
Ai
AskAnything
Calendar
Connection
Crm
Jobs
app
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
MySQL Section
MYSQL
MYSQL
MatchActivityCrmData.php, Editor Group 1
RateLimitException.php, Editor Group 1
HandleHubspotRateLimit.php, Editor Group 1
Client.php, Editor Group 1
HubspotPaginationService.php, Editor Group 1
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Middleware;
use Illuminate\Support\Facades\Log;
use Jiminny\Exceptions\RateLimitException;
/**
* Job middleware that catches RateLimitException from HubSpot API calls
* and releases the job back to the queue with the appropriate delay.
*/
class HandleHubspotRateLimit
{
private const int MAX_RETRY_DELAY = 600;
private const int MIN_RETRY_DELAY = 1;
private const int JITTER_SECONDS = 5;
public function handle(object $job, callable $next): void
{
try {
$next($job);
} catch (RateLimitException $e) {
$delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));
// Add jitter to prevent thundering herd problem by randomizing retry times
$delay += random_int(0, self::JITTER_SECONDS);
$attempts = $job->attempts();
if ($attempts <= 3 || $attempts % 10 === 0) {
Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [
'job_class' => $job::class,
'attempts' => $attempts,
'retry_after' => $e->getRetryAfter(),
'delay' => $delay,
]);
}
$job->release($delay);
}
}
}
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Middleware;
use Illuminate\Support\Facades\Log;
use Jiminny\Exceptions\RateLimitException;
/**
* Job middleware that catches RateLimitException from HubSpot API calls
* and releases the job back to the queue with the appropriate delay.
*/
class HandleHubspotRateLimit
{
private const int MAX_RETRY_DELAY = 600;
private const int MIN_RETRY_DELAY = 1;
private const int JITTER_SECONDS = 5;
public function handle(object $job, callable $next): void
{
try {
$next($job);
} catch (RateLimitException $e) {
$delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));
// Add jitter to prevent thundering herd problem by randomizing retry times
$delay += random_int(0, self::JITTER_SECONDS);
$attempts = $job->attempts();
if ($attempts <= 3 || $attempts % 10 === 0) {
Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [
'job_class' => $job::class,
'attempts' => $attempts,
'retry_after' => $e->getRetryAfter(),
'delay' => $delay,
]);
}
$job->release($delay);
}
}
}
Review rate limit handli…, Editor Group 2
remote
app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...
JY-20725-handle-HS-search-rate-limit*
app (Git) - Synchronize Changes
Errors: 6, Warnings: 9, Infos: 2
6
9
2
Notifications
key, PHP extension: Premium features not active.
Sign In
Sign In
Diff editor
Clear
Review rate limit handling for HubSpot job queue
Session history
New session
Message actions
RateLimitException.php#9-9
RateLimitException.php#9-9
Reveiw the diff. Mostly
@app/Jobs/Crm/MatchActivityCrmData.php
,
@app/Exceptions/RateLimitException.php
,
@app/Jobs/Middleware/HandleHubspotRateLimit.php
,
@app/Services/Crm/Hubspot/Client.php
and
@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php
. The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?
Thought for 5s
Thought for 5s
I'll review the implementation carefully. Let me first check how
RateLimitException
is used elsewhere and look at the test files and
PaginationState
.
Bash
Find all usages of RateLimitException outside the changed files
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/app --include="*.php" | grep -v "HandleHubspotRateLimit\|MatchActivityCrmData\|Client.php\|RateLimitException.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:17:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:68: RateLimitException |
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:15:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:58: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:19:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:76: RateLimitException |
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:50: * @throws RateLimitException When rate limit is hit
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:195: // RateLimitException and other exceptions are re-thrown as-is
Read
PaginationState.php
PaginationState.php
Read
HandleHubspotRateLimitTest.php
HandleHubspotRateLimitTest.php
Bash
Check how RateLimitException is used in GenerateActionItemsJob
IN
grep -rn "RateLimitException\|LogicException\|RuntimeException" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -20
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
Bash
Find all catch blocks or instanceof checks for RateLimitException
IN
grep -rn "catch.*RateLimitException\|instanceof RateLimitException" /Users/lukas/jiminny/app/app --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:11: * Job middleware that catches RateLimitException from HubSpot API calls
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:24: } catch (RateLimitException $e) {
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:149: if (! $e instanceof RateLimitException) {
Bash
Find all test references to RateLimitException
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/tests --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:13:#[CoversClass(RateLimitException::class)]
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:14:class RateLimitExceptionTest extends TestCase
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:18: $exception = new RateLimitException();
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:28: $exception = new RateLimitException('Hubspot rate limit', 30, $previous);
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:52: $exception = new RateLimitException('test', $input);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:10:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:49: public function testPropagatesNonRateLimitExceptions(): void
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:103: throw new RateLimitException('rate limited', $retryAfter);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:150: throw new RateLimitException('rate limited', 1);
Bash
Check retry/failure handling in GenerateActionItemsJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -30
Copy code to clipboard
OUT
13:use Jiminny\Exceptions\RateLimitException;
51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
56: $this->release(30);
Bash
Check retry/failure handling in GenerateAiCallScoringJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php | head -30
Copy code to clipboard
OUT
17:use Jiminny\Exceptions\RateLimitException;
68: RateLimitException |
75: $this->release(30);
Bash
Check retry config in MatchActivityCrmData
IN
grep -n "retryAfter\|RETRY_WINDOW\|retryUntil\|maxTries" /Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php
Copy code to clipboard
OUT
34: private const int RETRY_WINDOW_MINUTES = 30;
45: public function retryUntil(): \DateTimeInterface
47: return now()->addMinutes(self::RETRY_WINDOW_MINUTES);
77: return self::RETRY_WINDOW_MINUTES * 60 + 60;
Bash
Check the cache key format
IN
grep -n "getRateLimitCacheKey\|hubspot:ratelimit" /Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Client.php
Copy code to clipboard
OUT
78: $cacheKey = $this->getRateLimitCacheKey();
110: private function getRateLimitCacheKey(): string
112: return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());
Bash
Find other jobs that might use the rate limit middleware
IN
grep -rn "class.*Middleware\|HandleHubspotRateLimit" /Users/lukas/jiminny/app/app/Jobs --include="*.php" | grep -v "HandleHubspotRateLimit.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:18:use Jiminny\Jobs\Middleware\HandleHubspotRateLimit;
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:42: return [new HandleHubspotRateLimit()];
Read
HubspotClientInterface.php
HubspotClientInterface.php
Thought for 73s
Thought for 73s
Now I have a complete picture. Here's my full analysis:
Review Summary
Review Summary
RuntimeException vs LogicException — Safe ✓
RuntimeException
vs
LogicException
— Safe ✓
The change is semantically correct and won't break anything.
LogicException
is for programmer errors (invalid arguments, contract violations). A rate limit from an external API is a runtime condition —
RuntimeException
is the right parent. All callers catch
RateLimitException
by name explicitly (union catches in
GenerateActionItemsJob
,
GenerateAiCallScoringJob
,
SummarizeTranscriptionJob
,
GenerateAiActivityTypeJob
) or check
instanceof RateLimitException
— none relies on the parent class type, so nothing breaks.
Issue 1 — Circuit breaker stores stale delay (most important bug)
Issue 1 — Circuit breaker stores stale delay (most important bug)...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
19549
|
837
|
3
|
2026-05-11T13:03:08.231296+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778504588231_m2.jpg...
|
Code
|
Review rate limit handli… — app
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G)
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php
SaveTranscription.php
SetupLayout.php
SyncActivity.php
SyncFieldMetadata.php
SyncHubspotObjects.php
SyncLeads.php
SyncObjects.php
SyncOpportunitiesJob.php
SyncOpportunity.php
SyncProfileMetadata.php
SyncTeamFieldsJob.php
SyncTeamMetadata.php
UpdateOpportunitySpecifications.php
UpdateStage.php
DealRisks
Mailbox
MeetingBot
Middleware
HandleHubspotRateLimit.php
RateLimited.php
Streaming
Team
Telephony
User
BaseProcessingJob.php
DummyJob.php
ImportRecallAIRecordingsJob.php
ImportRemoteTrackJob.php
Job.php
JobDispatcher.php
JobDispatcherInterface.php
PurgeSoftDeletedOpportunityJob.php
SqsVisibilityControl.php
Listeners
Mail
Models
Activity
Ai
AskAnything
Calendar
Connection
Crm
Jobs
app
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
MySQL Section
MYSQL
MYSQL
MatchActivityCrmData.php, Editor Group 1
RateLimitException.php, Editor Group 1
HandleHubspotRateLimit.php, Editor Group 1
Client.php, Editor Group 1
HubspotPaginationService.php, Editor Group 1
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Middleware;
use Illuminate\Support\Facades\Log;
use Jiminny\Exceptions\RateLimitException;
/**
* Job middleware that catches RateLimitException from HubSpot API calls
* and releases the job back to the queue with the appropriate delay.
*/
class HandleHubspotRateLimit
{
private const int MAX_RETRY_DELAY = 600;
private const int MIN_RETRY_DELAY = 1;
private const int JITTER_SECONDS = 5;
public function handle(object $job, callable $next): void
{
try {
$next($job);
} catch (RateLimitException $e) {
$delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));
// Add jitter to prevent thundering herd problem by randomizing retry times
$delay += random_int(0, self::JITTER_SECONDS);
$attempts = $job->attempts();
if ($attempts <= 3 || $attempts % 10 === 0) {
Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [
'job_class' => $job::class,
'attempts' => $attempts,
'retry_after' => $e->getRetryAfter(),
'delay' => $delay,
]);
}
$job->release($delay);
}
}
}
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Middleware;
use Illuminate\Support\Facades\Log;
use Jiminny\Exceptions\RateLimitException;
/**
* Job middleware that catches RateLimitException from HubSpot API calls
* and releases the job back to the queue with the appropriate delay.
*/
class HandleHubspotRateLimit
{
private const int MAX_RETRY_DELAY = 600;
private const int MIN_RETRY_DELAY = 1;
private const int JITTER_SECONDS = 5;
public function handle(object $job, callable $next): void
{
try {
$next($job);
} catch (RateLimitException $e) {
$delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));
// Add jitter to prevent thundering herd problem by randomizing retry times
$delay += random_int(0, self::JITTER_SECONDS);
$attempts = $job->attempts();
if ($attempts <= 3 || $attempts % 10 === 0) {
Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [
'job_class' => $job::class,
'attempts' => $attempts,
'retry_after' => $e->getRetryAfter(),
'delay' => $delay,
]);
}
$job->release($delay);
}
}
}
Review rate limit handli…, Editor Group 2
remote
app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...
JY-20725-handle-HS-search-rate-limit*
app (Git) - Synchronize Changes
Errors: 6, Warnings: 9, Infos: 2
6
9
2
Notifications
key, PHP extension: Premium features not active.
Sign In
Sign In
Diff editor
Clear
Review rate limit handling for HubSpot job queue
Session history
New session
Message actions
RateLimitException.php#9-9
RateLimitException.php#9-9
Reveiw the diff. Mostly
@app/Jobs/Crm/MatchActivityCrmData.php
,
@app/Exceptions/RateLimitException.php
,
@app/Jobs/Middleware/HandleHubspotRateLimit.php
,
@app/Services/Crm/Hubspot/Client.php
and
@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php
. The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?
Thought for 5s
Thought for 5s
I'll review the implementation carefully. Let me first check how
RateLimitException
is used elsewhere and look at the test files and
PaginationState
.
Bash
Find all usages of RateLimitException outside the changed files
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/app --include="*.php" | grep -v "HandleHubspotRateLimit\|MatchActivityCrmData\|Client.php\|RateLimitException.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:17:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:68: RateLimitException |
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:15:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:58: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:19:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:76: RateLimitException |
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:50: * @throws RateLimitException When rate limit is hit
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:195: // RateLimitException and other exceptions are re-thrown as-is
Read
PaginationState.php
PaginationState.php
Read
HandleHubspotRateLimitTest.php
HandleHubspotRateLimitTest.php
Bash
Check how RateLimitException is used in GenerateActionItemsJob
IN
grep -rn "RateLimitException\|LogicException\|RuntimeException" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -20
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
Bash
Find all catch blocks or instanceof checks for RateLimitException
IN
grep -rn "catch.*RateLimitException\|instanceof RateLimitException" /Users/lukas/jiminny/app/app --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:11: * Job middleware that catches RateLimitException from HubSpot API calls
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:24: } catch (RateLimitException $e) {
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:149: if (! $e instanceof RateLimitException) {
Bash
Find all test references to RateLimitException
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/tests --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:13:#[CoversClass(RateLimitException::class)]
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:14:class RateLimitExceptionTest extends TestCase
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:18: $exception = new RateLimitException();
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:28: $exception = new RateLimitException('Hubspot rate limit', 30, $previous);
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:52: $exception = new RateLimitException('test', $input);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:10:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:49: public function testPropagatesNonRateLimitExceptions(): void
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:103: throw new RateLimitException('rate limited', $retryAfter);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:150: throw new RateLimitException('rate limited', 1);
Bash
Check retry/failure handling in GenerateActionItemsJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -30
Copy code to clipboard
OUT
13:use Jiminny\Exceptions\RateLimitException;
51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
56: $this->release(30);
Bash
Check retry/failure handling in GenerateAiCallScoringJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php | head -30
Copy code to clipboard
OUT
17:use Jiminny\Exceptions\RateLimitException;
68: RateLimitException |
75: $this->release(30);
Bash
Check retry config in MatchActivityCrmData
IN
grep -n "retryAfter\|RETRY_WINDOW\|retryUntil\|maxTries" /Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php
Copy code to clipboard
OUT
34: private const int RETRY_WINDOW_MINUTES = 30;
45: public function retryUntil(): \DateTimeInterface
47: return now()->addMinutes(self::RETRY_WINDOW_MINUTES);
77: return self::RETRY_WINDOW_MINUTES * 60 + 60;
Bash
Check the cache key format
IN
grep -n "getRateLimitCacheKey\|hubspot:ratelimit" /Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Client.php
Copy code to clipboard
OUT
78: $cacheKey = $this->getRateLimitCacheKey();
110: private function getRateLimitCacheKey(): string
112: return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());
Bash
Find other jobs that might use the rate limit middleware
IN
grep -rn "class.*Middleware\|HandleHubspotRateLimit" /Users/lukas/jiminny/app/app/Jobs --include="*.php" | grep -v "HandleHubspotRateLimit.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:18:use Jiminny\Jobs\Middleware\HandleHubspotRateLimit;
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:42: return [new HandleHubspotRateLimit()];
Read
HubspotClientInterface.php
HubspotClientInterface.php
Thought for 73s
Thought for 73s
Now I have a complete picture. Here's my full analysis:
Review Summary
Review Summary
RuntimeException vs LogicException — Safe ✓
RuntimeException
vs
LogicException
— Safe ✓...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Explorer (⇧⌘E)","depth":19,"bounds":{"left":0.0,"top":0.047885075,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":true},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.057462092,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Search (⇧⌘F)","depth":19,"bounds":{"left":0.0,"top":0.08619314,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.09577015,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Source Control (⌃⇧G)","depth":19,"bounds":{"left":0.0,"top":0.1245012,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.13407822,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Run and Debug (⇧⌘D)","depth":19,"bounds":{"left":0.0,"top":0.16280925,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.17238627,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Remote Explorer","depth":19,"bounds":{"left":0.0,"top":0.20111732,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.21069433,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Extensions (⇧⌘X) - 2 require update","depth":19,"bounds":{"left":0.0,"top":0.23942538,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.2490024,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":22,"bounds":{"left":0.009640957,"top":0.2601756,"width":0.0019946808,"height":0.008778931},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Testing","depth":19,"bounds":{"left":0.0,"top":0.27773345,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.28731045,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Claude Code","depth":19,"bounds":{"left":0.0,"top":0.3160415,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"EXPLORER","depth":17,"bounds":{"left":0.022606382,"top":0.047885075,"width":0.018949468,"height":0.02793296},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"EXPLORER","depth":18,"bounds":{"left":0.022606382,"top":0.056664005,"width":0.018949468,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.022606382,"top":0.056664005,"width":0.0023271276,"height":0.0103751}},{"char_start":1,"char_count":7,"bounds":{"left":0.024933511,"top":0.056664005,"width":0.01662234,"height":0.0103751}}],"role_description":"text"},{"role":"AXButton","text":"Explorer Section: app","depth":21,"bounds":{"left":0.015957447,"top":0.07581804,"width":0.09940159,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.07821229,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"Explorer Section: app","depth":22,"bounds":{"left":0.022606382,"top":0.07581804,"width":0.0076462766,"height":0.017557861},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"APP","depth":23,"bounds":{"left":0.022606382,"top":0.079010375,"width":0.0076462766,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.0933759,"width":0.0063164895,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CheckAndRetryRemoteMatch.php","depth":27,"bounds":{"left":0.033909574,"top":0.0933759,"width":0.068484046,"height":0.011173184},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.0933759,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":27,"bounds":{"left":0.036901597,"top":0.0933759,"width":0.06549202,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.10853951,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateFollowupActivity.php","depth":27,"bounds":{"left":0.033909574,"top":0.110135674,"width":0.054853722,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.11093376,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":25,"bounds":{"left":0.036901597,"top":0.11093376,"width":0.051861703,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.12609737,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateNotes.php","depth":27,"bounds":{"left":0.033909574,"top":0.12769353,"width":0.034242023,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.12849163,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.036901597,"top":0.12849163,"width":0.03125,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.14365523,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivitiesToNewOpportunity.php","depth":27,"bounds":{"left":0.033909574,"top":0.1452514,"width":0.07712766,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.14604948,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":34,"bounds":{"left":0.037898935,"top":0.14604948,"width":0.07347074,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.16121309,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivityCrmData.php","depth":27,"bounds":{"left":0.033909574,"top":0.16280925,"width":0.054521278,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.16360734,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":23,"bounds":{"left":0.037898935,"top":0.16360734,"width":0.050531916,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.17877094,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"NoteObject.php","depth":27,"bounds":{"left":0.033909574,"top":0.18036711,"width":0.031914894,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.1811652,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":13,"bounds":{"left":0.03723404,"top":0.1811652,"width":0.028922873,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.1963288,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SaveActivity.php","depth":27,"bounds":{"left":0.033909574,"top":0.19792499,"width":0.03324468,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.19872306,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":15,"bounds":{"left":0.03656915,"top":0.19872306,"width":0.030585106,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.21388668,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SaveTranscription.php","depth":27,"bounds":{"left":0.033909574,"top":0.21548285,"width":0.04454787,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.21628092,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":20,"bounds":{"left":0.03656915,"top":0.21628092,"width":0.042220745,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.23144454,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SetupLayout.php","depth":27,"bounds":{"left":0.033909574,"top":0.2330407,"width":0.034242023,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.23383878,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.03656915,"top":0.23383878,"width":0.031914894,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.2490024,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncActivity.php","depth":27,"bounds":{"left":0.033909574,"top":0.25059855,"width":0.03357713,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.25139666,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":15,"bounds":{"left":0.03656915,"top":0.25139666,"width":0.030917553,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.26656026,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncFieldMetadata.php","depth":27,"bounds":{"left":0.033909574,"top":0.26815644,"width":0.047539894,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.26895452,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":20,"bounds":{"left":0.03656915,"top":0.26895452,"width":0.04488032,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.28411812,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncHubspotObjects.php","depth":27,"bounds":{"left":0.033909574,"top":0.2857143,"width":0.051861703,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.28651237,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":21,"bounds":{"left":0.03656915,"top":0.28651237,"width":0.04920213,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.30167598,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncLeads.php","depth":27,"bounds":{"left":0.033909574,"top":0.30327216,"width":0.030917553,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.30407023,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":12,"bounds":{"left":0.03656915,"top":0.30407023,"width":0.02825798,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.31923383,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncObjects.php","depth":27,"bounds":{"left":0.033909574,"top":0.32083002,"width":0.034574468,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.3216281,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.03656915,"top":0.3216281,"width":0.031914894,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.3367917,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncOpportunitiesJob.php","depth":27,"bounds":{"left":0.033909574,"top":0.33838788,"width":0.053856384,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.33918595,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":23,"bounds":{"left":0.03656915,"top":0.33918595,"width":0.05119681,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.35434955,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncOpportunity.php","depth":27,"bounds":{"left":0.033909574,"top":0.35594574,"width":0.04288564,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.3567438,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":18,"bounds":{"left":0.03656915,"top":0.3567438,"width":0.040226065,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.3719074,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncProfileMetadata.php","depth":27,"bounds":{"left":0.033909574,"top":0.3735036,"width":0.05086436,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.37430167,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":22,"bounds":{"left":0.03656915,"top":0.37430167,"width":0.048204787,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.38946527,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncTeamFieldsJob.php","depth":27,"bounds":{"left":0.033909574,"top":0.39106146,"width":0.04886968,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.39185953,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":20,"bounds":{"left":0.03656915,"top":0.39185953,"width":0.046210106,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.40702313,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncTeamMetadata.php","depth":27,"bounds":{"left":0.033909574,"top":0.4086193,"width":0.048537236,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.4094174,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":19,"bounds":{"left":0.03656915,"top":0.4094174,"width":0.045877658,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.424581,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"UpdateOpportunitySpecifications.php","depth":27,"bounds":{"left":0.033909574,"top":0.42617717,"width":0.076130316,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.42697525,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":34,"bounds":{"left":0.03723404,"top":0.42697525,"width":0.0731383,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.44213888,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"UpdateStage.php","depth":27,"bounds":{"left":0.033909574,"top":0.44373503,"width":0.03523936,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.4445331,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.03723404,"top":0.4445331,"width":0.032247342,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.4612929,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"DealRisks","depth":27,"bounds":{"left":0.03125,"top":0.4612929,"width":0.019614361,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.46209097,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":8,"bounds":{"left":0.034574468,"top":0.46209097,"width":0.016289894,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.47885075,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mailbox","depth":27,"bounds":{"left":0.03125,"top":0.47885075,"width":0.015625,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.47964883,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":6,"bounds":{"left":0.03523936,"top":0.47964883,"width":0.011635638,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.4964086,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MeetingBot","depth":27,"bounds":{"left":0.03125,"top":0.4964086,"width":0.023271276,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.49720672,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":9,"bounds":{"left":0.03523936,"top":0.49720672,"width":0.019281914,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.5139665,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Middleware","depth":27,"bounds":{"left":0.03125,"top":0.5139665,"width":0.023271276,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.51476455,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":9,"bounds":{"left":0.03523936,"top":0.51476455,"width":0.019281914,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.52992815,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"HandleHubspotRateLimit.php","depth":27,"bounds":{"left":0.033909574,"top":0.53152436,"width":0.059175532,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.5323224,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":25,"bounds":{"left":0.03723404,"top":0.5323224,"width":0.05618351,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.547486,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"RateLimited.php","depth":27,"bounds":{"left":0.033909574,"top":0.5490822,"width":0.032912236,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.54988027,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.036901597,"top":0.54988027,"width":0.029920213,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.5666401,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Streaming","depth":27,"bounds":{"left":0.03125,"top":0.5666401,"width":0.020611702,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.5674381,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":8,"bounds":{"left":0.033909574,"top":0.5674381,"width":0.017952127,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.58419794,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Team","depth":27,"bounds":{"left":0.03125,"top":0.58419794,"width":0.010970744,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.584996,"width":0.0023271276,"height":0.011971269}},{"char_start":1,"char_count":3,"bounds":{"left":0.03357713,"top":0.584996,"width":0.008643617,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.6017558,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Telephony","depth":27,"bounds":{"left":0.03125,"top":0.6017558,"width":0.020611702,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.60255384,"width":0.0023271276,"height":0.011971269}},{"char_start":1,"char_count":8,"bounds":{"left":0.03357713,"top":0.60255384,"width":0.018284574,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.61931366,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"User","depth":27,"bounds":{"left":0.03125,"top":0.61931366,"width":0.00930851,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.6201117,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":3,"bounds":{"left":0.034574468,"top":0.6201117,"width":0.0063164895,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.63527536,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"BaseProcessingJob.php","depth":27,"bounds":{"left":0.03125,"top":0.6368715,"width":0.048537236,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.63766956,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":20,"bounds":{"left":0.034242023,"top":0.63766956,"width":0.045545213,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.6528332,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"DummyJob.php","depth":27,"bounds":{"left":0.03125,"top":0.6544294,"width":0.03158245,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.6552275,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":11,"bounds":{"left":0.034574468,"top":0.6552275,"width":0.02825798,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.6703911,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"ImportRecallAIRecordingsJob.php","depth":27,"bounds":{"left":0.03125,"top":0.67198724,"width":0.068484046,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.67278534,"width":0.0013297872,"height":0.011971269}},{"char_start":1,"char_count":30,"bounds":{"left":0.032579787,"top":0.67278534,"width":0.06715426,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.68794894,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"ImportRemoteTrackJob.php","depth":27,"bounds":{"left":0.03125,"top":0.6895451,"width":0.055518616,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.6903432,"width":0.0013297872,"height":0.011971269}},{"char_start":1,"char_count":23,"bounds":{"left":0.032579787,"top":0.6903432,"width":0.054521278,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.7055068,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Job.php","depth":27,"bounds":{"left":0.03125,"top":0.70710295,"width":0.016289894,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.70790106,"width":0.0023271276,"height":0.011971269}},{"char_start":1,"char_count":6,"bounds":{"left":0.03357713,"top":0.70790106,"width":0.014295213,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.72306466,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JobDispatcher.php","depth":27,"bounds":{"left":0.03125,"top":0.7246608,"width":0.037898935,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.7254589,"width":0.0023271276,"height":0.011971269}},{"char_start":1,"char_count":16,"bounds":{"left":0.03357713,"top":0.7254589,"width":0.035904255,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.7406225,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JobDispatcherInterface.php","depth":27,"bounds":{"left":0.03125,"top":0.7422187,"width":0.05618351,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.7430168,"width":0.0023271276,"height":0.011971269}},{"char_start":1,"char_count":25,"bounds":{"left":0.03357713,"top":0.7430168,"width":0.05418883,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.7581804,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"PurgeSoftDeletedOpportunityJob.php","depth":27,"bounds":{"left":0.03125,"top":0.75977653,"width":0.076130316,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.77573824,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SqsVisibilityControl.php","depth":27,"bounds":{"left":0.03125,"top":0.7773344,"width":0.047872342,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.022273935,"top":0.79489225,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Listeners","depth":27,"bounds":{"left":0.028590426,"top":0.79489225,"width":0.018284574,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.022273935,"top":0.8124501,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mail","depth":27,"bounds":{"left":0.028590426,"top":0.8124501,"width":0.00831117,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.022273935,"top":0.830008,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Models","depth":27,"bounds":{"left":0.028590426,"top":0.830008,"width":0.01462766,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.8475658,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Activity","depth":27,"bounds":{"left":0.03125,"top":0.8475658,"width":0.014960106,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.8651237,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Ai","depth":27,"bounds":{"left":0.03125,"top":0.8651237,"width":0.0039893617,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.88268155,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"AskAnything","depth":27,"bounds":{"left":0.03125,"top":0.88268155,"width":0.025265958,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.9002394,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Calendar","depth":27,"bounds":{"left":0.03125,"top":0.9002394,"width":0.017952127,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.91779727,"width":0.005319149,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Connection","depth":27,"bounds":{"left":0.03125,"top":0.91779727,"width":0.022938829,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.13088587,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Crm","depth":27,"bounds":{"left":0.03125,"top":0.13088587,"width":0.00831117,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.022273935,"top":0.11332801,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Jobs","depth":27,"bounds":{"left":0.028590426,"top":0.11332801,"width":0.009640957,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.019614361,"top":0.09577015,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"app","depth":27,"bounds":{"left":0.025930852,"top":0.09577015,"width":0.0076462766,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.10605053,"top":0.096568234,"width":0.004654255,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Outline Section","depth":21,"bounds":{"left":0.015957447,"top":0.92976856,"width":0.09940159,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.9321628,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"OUTLINE","depth":22,"bounds":{"left":0.022606382,"top":0.92976856,"width":0.01662234,"height":0.017557861},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"OUTLINE","depth":23,"bounds":{"left":0.022606382,"top":0.933759,"width":0.01662234,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Timeline Section","depth":21,"bounds":{"left":0.015957447,"top":0.9473264,"width":0.09940159,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.9497207,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"TIMELINE","depth":22,"bounds":{"left":0.022606382,"top":0.9473264,"width":0.01761968,"height":0.017557861},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"TIMELINE","depth":23,"bounds":{"left":0.022606382,"top":0.95131683,"width":0.01761968,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"MySQL Section","depth":21,"bounds":{"left":0.015957447,"top":0.9648843,"width":0.09940159,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.96727854,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"MYSQL","depth":22,"bounds":{"left":0.022606382,"top":0.9648843,"width":0.013297873,"height":0.017557861},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"MYSQL","depth":23,"bounds":{"left":0.022606382,"top":0.9688747,"width":0.013297873,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"MatchActivityCrmData.php, Editor Group 1","depth":28,"bounds":{"left":0.11569149,"top":0.047885075,"width":0.07480053,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"RateLimitException.php, Editor Group 1","depth":28,"bounds":{"left":0.19015957,"top":0.047885075,"width":0.06815159,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"HandleHubspotRateLimit.php, Editor Group 1","depth":28,"bounds":{"left":0.25797874,"top":0.047885075,"width":0.080119684,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXRadioButton","text":"Client.php, Editor Group 1","depth":28,"bounds":{"left":0.33776596,"top":0.047885075,"width":0.045545213,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"HubspotPaginationService.php, Editor Group 1","depth":28,"bounds":{"left":0.38297874,"top":0.047885075,"width":0.08277926,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.12832446,"top":0.07821229,"width":0.0056515955,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.14328457,"top":0.07821229,"width":0.0056515955,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.171875,"top":0.07821229,"width":0.0056515955,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.24401596,"top":0.07821229,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.24933511,"top":0.07821229,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Middleware;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Exceptions\\RateLimitException;\n\n/**\n * Job middleware that catches RateLimitException from HubSpot API calls\n * and releases the job back to the queue with the appropriate delay.\n */\nclass HandleHubspotRateLimit\n{\n private const int MAX_RETRY_DELAY = 600;\n private const int MIN_RETRY_DELAY = 1;\n private const int JITTER_SECONDS = 5;\n\n public function handle(object $job, callable $next): void\n {\n try {\n $next($job);\n } catch (RateLimitException $e) {\n $delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));\n // Add jitter to prevent thundering herd problem by randomizing retry times\n $delay += random_int(0, self::JITTER_SECONDS);\n\n $attempts = $job->attempts();\n if ($attempts <= 3 || $attempts % 10 === 0) {\n Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [\n 'job_class' => $job::class,\n 'attempts' => $attempts,\n 'retry_after' => $e->getRetryAfter(),\n 'delay' => $delay,\n ]);\n }\n\n $job->release($delay);\n }\n }\n}","depth":28,"bounds":{"left":0.13763298,"top":0.27613726,"width":0.23803191,"height":0.014365523},"on_screen":true,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Middleware;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Exceptions\\RateLimitException;\n\n/**\n * Job middleware that catches RateLimitException from HubSpot API calls\n * and releases the job back to the queue with the appropriate delay.\n */\nclass HandleHubspotRateLimit\n{\n private const int MAX_RETRY_DELAY = 600;\n private const int MIN_RETRY_DELAY = 1;\n private const int JITTER_SECONDS = 5;\n\n public function handle(object $job, callable $next): void\n {\n try {\n $next($job);\n } catch (RateLimitException $e) {\n $delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));\n // Add jitter to prevent thundering herd problem by randomizing retry times\n $delay += random_int(0, self::JITTER_SECONDS);\n\n $attempts = $job->attempts();\n if ($attempts <= 3 || $attempts % 10 === 0) {\n Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [\n 'job_class' => $job::class,\n 'attempts' => $attempts,\n 'retry_after' => $e->getRetryAfter(),\n 'delay' => $delay,\n ]);\n }\n\n $job->release($delay);\n }\n }\n}","role_description":"editor","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Middleware;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Exceptions\\RateLimitException;\n\n/**\n * Job middleware that catches RateLimitException from HubSpot API calls\n * and releases the job back to the queue with the appropriate delay.\n */\nclass HandleHubspotRateLimit\n{\n private const int MAX_RETRY_DELAY = 600;\n private const int MIN_RETRY_DELAY = 1;\n private const int JITTER_SECONDS = 5;\n\n public function handle(object $job, callable $next): void\n {\n try {\n $next($job);\n } catch (RateLimitException $e) {\n $delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));\n // Add jitter to prevent thundering herd problem by randomizing retry times\n $delay += random_int(0, self::JITTER_SECONDS);\n\n $attempts = $job->attempts();\n if ($attempts <= 3 || $attempts % 10 === 0) {\n Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [\n 'job_class' => $job::class,\n 'attempts' => $attempts,\n 'retry_after' => $e->getRetryAfter(),\n 'delay' => $delay,\n ]);\n }\n\n $job->release($delay);\n }\n }\n}","depth":29,"bounds":{"left":0.13763298,"top":0.27613726,"width":0.23803191,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Review rate limit handli…, Editor Group 2","depth":28,"bounds":{"left":0.5578458,"top":0.047885075,"width":0.07014628,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXButton","text":"remote","depth":16,"bounds":{"left":0.0006648936,"top":0.98244214,"width":0.010638298,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...","depth":16,"bounds":{"left":0.012965426,"top":0.98244214,"width":0.084773935,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.013962766,"top":0.9848364,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JY-20725-handle-HS-search-rate-limit*","depth":17,"bounds":{"left":0.019281914,"top":0.9856345,"width":0.0774601,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"app (Git) - Synchronize Changes","depth":16,"bounds":{"left":0.09740692,"top":0.98244214,"width":0.0076462766,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Errors: 6, Warnings: 9, Infos: 2","depth":16,"bounds":{"left":0.107380316,"top":0.98244214,"width":0.032579787,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.109042555,"top":0.9848364,"width":0.0056515955,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"6","depth":17,"bounds":{"left":0.1143617,"top":0.9856345,"width":0.004986702,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.11934841,"top":0.9848364,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"9","depth":17,"bounds":{"left":0.124667555,"top":0.9856345,"width":0.004654255,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.12932181,"top":0.9848364,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":17,"bounds":{"left":0.13464096,"top":0.9856345,"width":0.003656915,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Notifications","depth":16,"bounds":{"left":0.9886968,"top":0.98244214,"width":0.010638298,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"key, PHP extension: Premium features not active.","depth":16,"bounds":{"left":0.9790558,"top":0.98244214,"width":0.008643617,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sign In","depth":16,"bounds":{"left":0.9544548,"top":0.98244214,"width":0.022606382,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.95611703,"top":0.9848364,"width":0.0056515955,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Sign In","depth":17,"bounds":{"left":0.96143615,"top":0.9856345,"width":0.013962766,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Diff editor","depth":12,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Clear","depth":12,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Review rate limit handling for HubSpot job queue","depth":19,"bounds":{"left":0.56017286,"top":0.08060654,"width":0.099734046,"height":0.022346368},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Session history","depth":19,"bounds":{"left":0.9780585,"top":0.08060654,"width":0.00930851,"height":0.022346368},"on_screen":true,"help_text":"Session history","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New session","depth":19,"bounds":{"left":0.9886968,"top":0.08060654,"width":0.00930851,"height":0.022346368},"on_screen":true,"help_text":"New session","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Message actions","depth":24,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"RateLimitException.php#9-9","depth":23,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"RateLimitException.php#9-9","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Reveiw the diff. Mostly","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Jobs/Crm/MatchActivityCrmData.php","depth":26,"on_screen":false,"help_text":"Open app/Jobs/Crm/MatchActivityCrmData.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Exceptions/RateLimitException.php","depth":26,"on_screen":false,"help_text":"Open app/Exceptions/RateLimitException.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Jobs/Middleware/HandleHubspotRateLimit.php","depth":26,"on_screen":false,"help_text":"Open app/Jobs/Middleware/HandleHubspotRateLimit.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Services/Crm/Hubspot/Client.php","depth":26,"on_screen":false,"help_text":"Open app/Services/Crm/Hubspot/Client.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"and","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php","depth":26,"on_screen":false,"help_text":"Open app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":". The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Thought for 5s","depth":23,"on_screen":false,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thought for 5s","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"I'll review the implementation carefully. Let me first check how","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is used elsewhere and look at the test files and","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"PaginationState","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":".","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find all usages of RateLimitException outside the changed files","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"RateLimitException\" /Users/lukas/jiminny/app/app --include=\"*.php\" | grep -v \"HandleHubspotRateLimit\\|MatchActivityCrmData\\|Client.php\\|RateLimitException.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception\n/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:17:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:68: RateLimitException |\n/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:15:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:58: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception\n/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:19:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:76: RateLimitException |\n/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:8:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:50: * @throws RateLimitException When rate limit is hit\n/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:195: // RateLimitException and other exceptions are re-thrown as-is","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"PaginationState.php","depth":24,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"PaginationState.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"HandleHubspotRateLimitTest.php","depth":24,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"HandleHubspotRateLimitTest.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check how RateLimitException is used in GenerateActionItemsJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"RateLimitException\\|LogicException\\|RuntimeException\" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -20","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find all catch blocks or instanceof checks for RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"catch.*RateLimitException\\|instanceof RateLimitException\" /Users/lukas/jiminny/app/app --include=\"*.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:11: * Job middleware that catches RateLimitException from HubSpot API calls\n/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:24: } catch (RateLimitException $e) {\n/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:149: if (! $e instanceof RateLimitException) {","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find all test references to RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"RateLimitException\" /Users/lukas/jiminny/app/tests --include=\"*.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:8:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:13:#[CoversClass(RateLimitException::class)]\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:14:class RateLimitExceptionTest extends TestCase\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:18: $exception = new RateLimitException();\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:28: $exception = new RateLimitException('Hubspot rate limit', 30, $previous);\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:52: $exception = new RateLimitException('test', $input);\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:10:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:49: public function testPropagatesNonRateLimitExceptions(): void\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:103: throw new RateLimitException('rate limited', $retryAfter);\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:150: throw new RateLimitException('rate limited', 1);","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check retry/failure handling in GenerateActionItemsJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"RateLimitException\\|retryUntil\\|backoff\\|maxExceptions\\|maxTries\\|release\\|failed\" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -30","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"13:use Jiminny\\Exceptions\\RateLimitException;\n51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception\n56: $this->release(30);","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check retry/failure handling in GenerateAiCallScoringJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"RateLimitException\\|retryUntil\\|backoff\\|maxExceptions\\|maxTries\\|release\\|failed\" /Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php | head -30","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"17:use Jiminny\\Exceptions\\RateLimitException;\n68: RateLimitException |\n75: $this->release(30);","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check retry config in MatchActivityCrmData","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"retryAfter\\|RETRY_WINDOW\\|retryUntil\\|maxTries\" /Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"34: private const int RETRY_WINDOW_MINUTES = 30;\n45: public function retryUntil(): \\DateTimeInterface\n47: return now()->addMinutes(self::RETRY_WINDOW_MINUTES);\n77: return self::RETRY_WINDOW_MINUTES * 60 + 60;","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check the cache key format","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"getRateLimitCacheKey\\|hubspot:ratelimit\" /Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Client.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"78: $cacheKey = $this->getRateLimitCacheKey();\n110: private function getRateLimitCacheKey(): string\n112: return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find other jobs that might use the rate limit middleware","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"class.*Middleware\\|HandleHubspotRateLimit\" /Users/lukas/jiminny/app/app/Jobs --include=\"*.php\" | grep -v \"HandleHubspotRateLimit.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:18:use Jiminny\\Jobs\\Middleware\\HandleHubspotRateLimit;\n/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:42: return [new HandleHubspotRateLimit()];","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"HubspotClientInterface.php","depth":24,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"HubspotClientInterface.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Thought for 73s","depth":23,"on_screen":false,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thought for 73s","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Now I have a complete picture. Here's my full analysis:","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"Review Summary","depth":22,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"Review Summary","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"RuntimeException vs LogicException — Safe ✓","depth":22,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"RuntimeException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"vs","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"LogicException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"— Safe ✓","depth":23,"on_screen":false,"role_description":"text"}]...
|
-3306903108963487281
|
-8443668426029484861
|
idle
|
accessibility
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G)
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php
SaveTranscription.php
SetupLayout.php
SyncActivity.php
SyncFieldMetadata.php
SyncHubspotObjects.php
SyncLeads.php
SyncObjects.php
SyncOpportunitiesJob.php
SyncOpportunity.php
SyncProfileMetadata.php
SyncTeamFieldsJob.php
SyncTeamMetadata.php
UpdateOpportunitySpecifications.php
UpdateStage.php
DealRisks
Mailbox
MeetingBot
Middleware
HandleHubspotRateLimit.php
RateLimited.php
Streaming
Team
Telephony
User
BaseProcessingJob.php
DummyJob.php
ImportRecallAIRecordingsJob.php
ImportRemoteTrackJob.php
Job.php
JobDispatcher.php
JobDispatcherInterface.php
PurgeSoftDeletedOpportunityJob.php
SqsVisibilityControl.php
Listeners
Mail
Models
Activity
Ai
AskAnything
Calendar
Connection
Crm
Jobs
app
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
MySQL Section
MYSQL
MYSQL
MatchActivityCrmData.php, Editor Group 1
RateLimitException.php, Editor Group 1
HandleHubspotRateLimit.php, Editor Group 1
Client.php, Editor Group 1
HubspotPaginationService.php, Editor Group 1
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Middleware;
use Illuminate\Support\Facades\Log;
use Jiminny\Exceptions\RateLimitException;
/**
* Job middleware that catches RateLimitException from HubSpot API calls
* and releases the job back to the queue with the appropriate delay.
*/
class HandleHubspotRateLimit
{
private const int MAX_RETRY_DELAY = 600;
private const int MIN_RETRY_DELAY = 1;
private const int JITTER_SECONDS = 5;
public function handle(object $job, callable $next): void
{
try {
$next($job);
} catch (RateLimitException $e) {
$delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));
// Add jitter to prevent thundering herd problem by randomizing retry times
$delay += random_int(0, self::JITTER_SECONDS);
$attempts = $job->attempts();
if ($attempts <= 3 || $attempts % 10 === 0) {
Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [
'job_class' => $job::class,
'attempts' => $attempts,
'retry_after' => $e->getRetryAfter(),
'delay' => $delay,
]);
}
$job->release($delay);
}
}
}
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Middleware;
use Illuminate\Support\Facades\Log;
use Jiminny\Exceptions\RateLimitException;
/**
* Job middleware that catches RateLimitException from HubSpot API calls
* and releases the job back to the queue with the appropriate delay.
*/
class HandleHubspotRateLimit
{
private const int MAX_RETRY_DELAY = 600;
private const int MIN_RETRY_DELAY = 1;
private const int JITTER_SECONDS = 5;
public function handle(object $job, callable $next): void
{
try {
$next($job);
} catch (RateLimitException $e) {
$delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));
// Add jitter to prevent thundering herd problem by randomizing retry times
$delay += random_int(0, self::JITTER_SECONDS);
$attempts = $job->attempts();
if ($attempts <= 3 || $attempts % 10 === 0) {
Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [
'job_class' => $job::class,
'attempts' => $attempts,
'retry_after' => $e->getRetryAfter(),
'delay' => $delay,
]);
}
$job->release($delay);
}
}
}
Review rate limit handli…, Editor Group 2
remote
app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...
JY-20725-handle-HS-search-rate-limit*
app (Git) - Synchronize Changes
Errors: 6, Warnings: 9, Infos: 2
6
9
2
Notifications
key, PHP extension: Premium features not active.
Sign In
Sign In
Diff editor
Clear
Review rate limit handling for HubSpot job queue
Session history
New session
Message actions
RateLimitException.php#9-9
RateLimitException.php#9-9
Reveiw the diff. Mostly
@app/Jobs/Crm/MatchActivityCrmData.php
,
@app/Exceptions/RateLimitException.php
,
@app/Jobs/Middleware/HandleHubspotRateLimit.php
,
@app/Services/Crm/Hubspot/Client.php
and
@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php
. The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?
Thought for 5s
Thought for 5s
I'll review the implementation carefully. Let me first check how
RateLimitException
is used elsewhere and look at the test files and
PaginationState
.
Bash
Find all usages of RateLimitException outside the changed files
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/app --include="*.php" | grep -v "HandleHubspotRateLimit\|MatchActivityCrmData\|Client.php\|RateLimitException.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:17:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:68: RateLimitException |
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:15:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:58: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:19:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:76: RateLimitException |
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:50: * @throws RateLimitException When rate limit is hit
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:195: // RateLimitException and other exceptions are re-thrown as-is
Read
PaginationState.php
PaginationState.php
Read
HandleHubspotRateLimitTest.php
HandleHubspotRateLimitTest.php
Bash
Check how RateLimitException is used in GenerateActionItemsJob
IN
grep -rn "RateLimitException\|LogicException\|RuntimeException" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -20
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
Bash
Find all catch blocks or instanceof checks for RateLimitException
IN
grep -rn "catch.*RateLimitException\|instanceof RateLimitException" /Users/lukas/jiminny/app/app --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:11: * Job middleware that catches RateLimitException from HubSpot API calls
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:24: } catch (RateLimitException $e) {
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:149: if (! $e instanceof RateLimitException) {
Bash
Find all test references to RateLimitException
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/tests --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:13:#[CoversClass(RateLimitException::class)]
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:14:class RateLimitExceptionTest extends TestCase
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:18: $exception = new RateLimitException();
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:28: $exception = new RateLimitException('Hubspot rate limit', 30, $previous);
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:52: $exception = new RateLimitException('test', $input);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:10:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:49: public function testPropagatesNonRateLimitExceptions(): void
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:103: throw new RateLimitException('rate limited', $retryAfter);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:150: throw new RateLimitException('rate limited', 1);
Bash
Check retry/failure handling in GenerateActionItemsJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -30
Copy code to clipboard
OUT
13:use Jiminny\Exceptions\RateLimitException;
51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
56: $this->release(30);
Bash
Check retry/failure handling in GenerateAiCallScoringJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php | head -30
Copy code to clipboard
OUT
17:use Jiminny\Exceptions\RateLimitException;
68: RateLimitException |
75: $this->release(30);
Bash
Check retry config in MatchActivityCrmData
IN
grep -n "retryAfter\|RETRY_WINDOW\|retryUntil\|maxTries" /Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php
Copy code to clipboard
OUT
34: private const int RETRY_WINDOW_MINUTES = 30;
45: public function retryUntil(): \DateTimeInterface
47: return now()->addMinutes(self::RETRY_WINDOW_MINUTES);
77: return self::RETRY_WINDOW_MINUTES * 60 + 60;
Bash
Check the cache key format
IN
grep -n "getRateLimitCacheKey\|hubspot:ratelimit" /Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Client.php
Copy code to clipboard
OUT
78: $cacheKey = $this->getRateLimitCacheKey();
110: private function getRateLimitCacheKey(): string
112: return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());
Bash
Find other jobs that might use the rate limit middleware
IN
grep -rn "class.*Middleware\|HandleHubspotRateLimit" /Users/lukas/jiminny/app/app/Jobs --include="*.php" | grep -v "HandleHubspotRateLimit.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:18:use Jiminny\Jobs\Middleware\HandleHubspotRateLimit;
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:42: return [new HandleHubspotRateLimit()];
Read
HubspotClientInterface.php
HubspotClientInterface.php
Thought for 73s
Thought for 73s
Now I have a complete picture. Here's my full analysis:
Review Summary
Review Summary
RuntimeException vs LogicException — Safe ✓
RuntimeException
vs
LogicException
— Safe ✓...
|
19547
|
NULL
|
NULL
|
NULL
|
|
19551
|
837
|
4
|
2026-05-11T13:03:16.926467+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778504596926_m2.jpg...
|
Code
|
Review rate limit handli… — app
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 12 pending changes
12
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php
SaveTranscription.php
SetupLayout.php
SyncActivity.php
SyncFieldMetadata.php
SyncHubspotObjects.php
SyncLeads.php
SyncObjects.php
SyncOpportunitiesJob.php
SyncOpportunity.php
SyncProfileMetadata.php
SyncTeamFieldsJob.php
SyncTeamMetadata.php...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Explorer (⇧⌘E)","depth":19,"bounds":{"left":0.0,"top":0.047885075,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":true},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.057462092,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Search (⇧⌘F)","depth":19,"bounds":{"left":0.0,"top":0.08619314,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.09577015,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Source Control (⌃⇧G) - 12 pending changes","depth":19,"bounds":{"left":0.0,"top":0.1245012,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.13407822,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"12","depth":22,"bounds":{"left":0.00831117,"top":0.1452514,"width":0.003656915,"height":0.008778931},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.008643617,"top":0.14604948,"width":0.0016622341,"height":0.007980846}},{"char_start":1,"char_count":1,"bounds":{"left":0.009973404,"top":0.14604948,"width":0.0023271276,"height":0.007980846}}],"role_description":"text"},{"role":"AXRadioButton","text":"Run and Debug (⇧⌘D)","depth":19,"bounds":{"left":0.0,"top":0.16280925,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.17238627,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Remote Explorer","depth":19,"bounds":{"left":0.0,"top":0.20111732,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.21069433,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Extensions (⇧⌘X) - 2 require update","depth":19,"bounds":{"left":0.0,"top":0.23942538,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.2490024,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":22,"bounds":{"left":0.009640957,"top":0.2601756,"width":0.0019946808,"height":0.008778931},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Testing","depth":19,"bounds":{"left":0.0,"top":0.27773345,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.28731045,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Claude Code","depth":19,"bounds":{"left":0.0,"top":0.3160415,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"EXPLORER","depth":17,"bounds":{"left":0.022606382,"top":0.047885075,"width":0.018949468,"height":0.02793296},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"EXPLORER","depth":18,"bounds":{"left":0.022606382,"top":0.056664005,"width":0.018949468,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.022606382,"top":0.056664005,"width":0.0023271276,"height":0.0103751}},{"char_start":1,"char_count":7,"bounds":{"left":0.024933511,"top":0.056664005,"width":0.01662234,"height":0.0103751}}],"role_description":"text"},{"role":"AXButton","text":"Explorer Section: app","depth":21,"bounds":{"left":0.015957447,"top":0.07581804,"width":0.09940159,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.07821229,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"Explorer Section: app","depth":22,"bounds":{"left":0.022606382,"top":0.07581804,"width":0.0076462766,"height":0.017557861},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"APP","depth":23,"bounds":{"left":0.022606382,"top":0.079010375,"width":0.0076462766,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.0933759,"width":0.0063164895,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CheckAndRetryRemoteMatch.php","depth":27,"bounds":{"left":0.033909574,"top":0.0933759,"width":0.068484046,"height":0.011173184},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.0933759,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":27,"bounds":{"left":0.036901597,"top":0.0933759,"width":0.06549202,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.10853951,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateFollowupActivity.php","depth":27,"bounds":{"left":0.033909574,"top":0.110135674,"width":0.054853722,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.11093376,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":25,"bounds":{"left":0.036901597,"top":0.11093376,"width":0.051861703,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.12609737,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateNotes.php","depth":27,"bounds":{"left":0.033909574,"top":0.12769353,"width":0.034242023,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.12849163,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.036901597,"top":0.12849163,"width":0.03125,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.14365523,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivitiesToNewOpportunity.php","depth":27,"bounds":{"left":0.033909574,"top":0.1452514,"width":0.07712766,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.14604948,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":34,"bounds":{"left":0.037898935,"top":0.14604948,"width":0.07347074,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.16121309,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivityCrmData.php","depth":27,"bounds":{"left":0.033909574,"top":0.16280925,"width":0.054521278,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.16360734,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":23,"bounds":{"left":0.037898935,"top":0.16360734,"width":0.050531916,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.17877094,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"NoteObject.php","depth":27,"bounds":{"left":0.033909574,"top":0.18036711,"width":0.031914894,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.1811652,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":13,"bounds":{"left":0.03723404,"top":0.1811652,"width":0.028922873,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.1963288,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SaveActivity.php","depth":27,"bounds":{"left":0.033909574,"top":0.19792499,"width":0.03324468,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.19872306,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":15,"bounds":{"left":0.03656915,"top":0.19872306,"width":0.030585106,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.21388668,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SaveTranscription.php","depth":27,"bounds":{"left":0.033909574,"top":0.21548285,"width":0.04454787,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.21628092,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":20,"bounds":{"left":0.03656915,"top":0.21628092,"width":0.042220745,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.23144454,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SetupLayout.php","depth":27,"bounds":{"left":0.033909574,"top":0.2330407,"width":0.034242023,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.23383878,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.03656915,"top":0.23383878,"width":0.031914894,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.2490024,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncActivity.php","depth":27,"bounds":{"left":0.033909574,"top":0.25059855,"width":0.03357713,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.25139666,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":15,"bounds":{"left":0.03656915,"top":0.25139666,"width":0.030917553,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.26656026,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncFieldMetadata.php","depth":27,"bounds":{"left":0.033909574,"top":0.26815644,"width":0.047539894,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.26895452,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":20,"bounds":{"left":0.03656915,"top":0.26895452,"width":0.04488032,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.28411812,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncHubspotObjects.php","depth":27,"bounds":{"left":0.033909574,"top":0.2857143,"width":0.051861703,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.28651237,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":21,"bounds":{"left":0.03656915,"top":0.28651237,"width":0.04920213,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.30167598,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncLeads.php","depth":27,"bounds":{"left":0.033909574,"top":0.30327216,"width":0.030917553,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.30407023,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":12,"bounds":{"left":0.03656915,"top":0.30407023,"width":0.02825798,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.31923383,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncObjects.php","depth":27,"bounds":{"left":0.033909574,"top":0.32083002,"width":0.034574468,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.3216281,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.03656915,"top":0.3216281,"width":0.031914894,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.3367917,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncOpportunitiesJob.php","depth":27,"bounds":{"left":0.033909574,"top":0.33838788,"width":0.053856384,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.33918595,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":23,"bounds":{"left":0.03656915,"top":0.33918595,"width":0.05119681,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.35434955,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncOpportunity.php","depth":27,"bounds":{"left":0.033909574,"top":0.35594574,"width":0.04288564,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.3567438,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":18,"bounds":{"left":0.03656915,"top":0.3567438,"width":0.040226065,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.3719074,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncProfileMetadata.php","depth":27,"bounds":{"left":0.033909574,"top":0.3735036,"width":0.05086436,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.37430167,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":22,"bounds":{"left":0.03656915,"top":0.37430167,"width":0.048204787,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.38946527,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncTeamFieldsJob.php","depth":27,"bounds":{"left":0.033909574,"top":0.39106146,"width":0.04886968,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.39185953,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":20,"bounds":{"left":0.03656915,"top":0.39185953,"width":0.046210106,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.40702313,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncTeamMetadata.php","depth":27,"bounds":{"left":0.033909574,"top":0.4086193,"width":0.048537236,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.4094174,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":19,"bounds":{"left":0.03656915,"top":0.4094174,"width":0.045877658,"height":0.011971269}}],"role_description":"text"}]...
|
-5198488274744833998
|
8860855244410274056
|
click
|
accessibility
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 12 pending changes
12
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php
SaveTranscription.php
SetupLayout.php
SyncActivity.php
SyncFieldMetadata.php
SyncHubspotObjects.php
SyncLeads.php
SyncObjects.php
SyncOpportunitiesJob.php
SyncOpportunity.php
SyncProfileMetadata.php
SyncTeamFieldsJob.php
SyncTeamMetadata.php...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
19552
|
837
|
5
|
2026-05-11T13:03:17.995736+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778504597995_m2.jpg...
|
Code
|
Review rate limit handli… — app
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 12 pending changes
12
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Explorer (⇧⌘E)","depth":19,"bounds":{"left":0.0,"top":0.047885075,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":true},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.057462092,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Search (⇧⌘F)","depth":19,"bounds":{"left":0.0,"top":0.08619314,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.09577015,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Source Control (⌃⇧G) - 12 pending changes","depth":19,"bounds":{"left":0.0,"top":0.1245012,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.13407822,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"12","depth":22,"bounds":{"left":0.00831117,"top":0.1452514,"width":0.003656915,"height":0.008778931},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.008643617,"top":0.14604948,"width":0.0016622341,"height":0.007980846}},{"char_start":1,"char_count":1,"bounds":{"left":0.009973404,"top":0.14604948,"width":0.0023271276,"height":0.007980846}}],"role_description":"text"},{"role":"AXRadioButton","text":"Run and Debug (⇧⌘D)","depth":19,"bounds":{"left":0.0,"top":0.16280925,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.17238627,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Remote Explorer","depth":19,"bounds":{"left":0.0,"top":0.20111732,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.21069433,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Extensions (⇧⌘X) - 2 require update","depth":19,"bounds":{"left":0.0,"top":0.23942538,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.2490024,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":22,"bounds":{"left":0.009640957,"top":0.2601756,"width":0.0019946808,"height":0.008778931},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Testing","depth":19,"bounds":{"left":0.0,"top":0.27773345,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
4680074991434600813
|
-974447036026716024
|
visual_change
|
hybrid
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 12 pending changes
12
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
selectionViewWindov« HandleHubspotRateLimit.php X#Client.oho 9V APPapp > Jobs › Middleware > «* HandleHubspotRateLimit.php › •g HandleHubspotRateLimi," JoosVCrm# MatchActivitiesToNewOpportunity.phpw MatchacuivilvcrmData.onp## NoteObiect.phpw SaveActivity.phpwSavelranscription.phpw [EMAIL]#SvncObiects.oho#SvncOpportunities.lob.ohv# SvncOpportunitv.ohol# SyncProfileMetadata.php#SvncTeamFieldc.loh.nhn#. SvncTeamMetadata.nhnl# UpdateOpportunitySpecifications.php##UodateStage.pnpDealkisks> MeetingBotV Middlowaro#* HandleHubspotRateLimit.phpRA RateLimited.php> Streamine> TeamTelephony>UsenR# BaseProcessingJob.phpDummyJob.phpmoortRecallA Recordinas.oo.onv#ImoortRemotetrack.Job.onv# Job.oho# JobDisoatcher.oho# JobDispatcherinterface.ohv# [EMAIL]#SasVisibilitvControl.ohnV ModelsActivitvi>AFCalondari8 JY-20725-handle-HS-search-rate-limit* ©dectaretstriet_types-,namespace Jiminny Jobs Midd Leware;use Tluminate Suoport Facades Loo:useJiminnvExcent.ions RateLimitExceot.ion:: Job middleware that catches RateLimitException from HubSpot API callsclacs HandieHubsnotRatelimitNOUAWANNprivate const int MaX RETRY DELAY = 600:private const int MIN RETRY DELAY = 1;orivate const int JIHTER SECONDS = 5public function handte(object sjob, callable snext): voidtry} catchmax(self::MIN RETRY DELAY, min($e->getRetryAfter(), self::MAX RETRY DELAY)):Add ]lcter to prevent chundering nerd problem by randomizing reury clmesSoelay += random 1nc6, selt::sulitk sccunds*sattemots = s1ob->attemots:if Sattemots <= 3 Sattemots & 10 === 0 4Log:: info('[HandleHubspotRateLimit) Rate limit caught, releasing job with delay', ['job_class' = $job::class,lattemntel = Cattemnte.'retry after' = Se->getRetryAfter(),'delay' = $delay.Sioh-sre lease Sde llav).₫6A90г"Platrorm Kerlnemen…. now100% LzMon 11 May 16:03:1708 0 0 0* M&|• 2 C›* Review rate limit handli... XReview rate limit handling for HubSpot jo..ves, should we have soem senrs there scenaro where the tlow would be sllentivalled. Do navea, way of knowing s some of the loos are llosi• Edit MatchActivityCrmData.phppublic function failed(Throwable $exception): voidpublic function failed(Throwable $exception): voidLog: :error(' (MatchActivityCrmData] Job permanently failed after allretries','activity = Sthis-›activitvid.'remote search' = Sthis-sremoteSearch.'from_configuration' = $this->fromConfiguration?->getId(),'remote search' = Sthis->remoteSearch.'from_configuration' = $this->fromConfiguration?->getId(),• Now for the 100k spike concern specifically - 64,000 Sentry events would be a lot of noise. Worth knowing that Sentry has rate limiting on its own side, and you can also add \Sentry:: configureScope() togroup them, but that's probably overkill here. The failed jobs table already gives you the full count: Sentry gives you the signal that it happened at allTo directly answer vour question: ves, there was a silent failure scenario. Jobs hitting retrvUntil() after being rate-limited were written to failed iobs and logged at error level, but nothing reachecSentry. The MaxAttemptsExceededException path (rate-limit exhaustion) never propagated through the exception handler — only real exceptions (DB errors etc.) did. Now failed() captures both, and theloa level distinguishes them so vou can filter in Sentry by exception type: MaxAttemptsExCexception = rate-limit death, anvinina else = real bua.CChieleauesooaleehmntifix @tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPagina• Thouaht for 299s |• Let me check what's actually broken before writing fixes.• Bash Run the affected tests to see what's failina.OUT (eval):1: command not found: php^ Rach Pun the affected tecteOUT (eval):1: command not found: php8.3• Bash Run affected tests from project rootMeNdoro oeehounoeoa 72hg1t 1 n n* CimmoHOueue another meccade9 1 line selectedAsk before edit.88 SignIn...
|
19551
|
NULL
|
NULL
|
NULL
|
|
19554
|
837
|
6
|
2026-05-11T13:03:23.275709+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778504603275_m2.jpg...
|
Code
|
Review rate limit handli… — app
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 12 pending changes
12
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Explorer (⇧⌘E)","depth":19,"bounds":{"left":0.0,"top":0.047885075,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":true},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.057462092,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Search (⇧⌘F)","depth":19,"bounds":{"left":0.0,"top":0.08619314,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.09577015,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Source Control (⌃⇧G) - 12 pending changes","depth":19,"bounds":{"left":0.0,"top":0.1245012,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.13407822,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"12","depth":22,"bounds":{"left":0.00831117,"top":0.1452514,"width":0.003656915,"height":0.008778931},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.008643617,"top":0.14604948,"width":0.0016622341,"height":0.007980846}},{"char_start":1,"char_count":1,"bounds":{"left":0.009973404,"top":0.14604948,"width":0.0023271276,"height":0.007980846}}],"role_description":"text"},{"role":"AXRadioButton","text":"Run and Debug (⇧⌘D)","depth":19,"bounds":{"left":0.0,"top":0.16280925,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.17238627,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Remote Explorer","depth":19,"bounds":{"left":0.0,"top":0.20111732,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.21069433,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Extensions (⇧⌘X) - 2 require update","depth":19,"bounds":{"left":0.0,"top":0.23942538,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.2490024,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":22,"bounds":{"left":0.009640957,"top":0.2601756,"width":0.0019946808,"height":0.008778931},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Testing","depth":19,"bounds":{"left":0.0,"top":0.27773345,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.28731045,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Claude Code","depth":19,"bounds":{"left":0.0,"top":0.3160415,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"EXPLORER","depth":17,"bounds":{"left":0.022606382,"top":0.047885075,"width":0.018949468,"height":0.02793296},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"EXPLORER","depth":18,"bounds":{"left":0.022606382,"top":0.056664005,"width":0.018949468,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.022606382,"top":0.056664005,"width":0.0023271276,"height":0.0103751}},{"char_start":1,"char_count":7,"bounds":{"left":0.024933511,"top":0.056664005,"width":0.01662234,"height":0.0103751}}],"role_description":"text"},{"role":"AXButton","text":"Explorer Section: app","depth":21,"bounds":{"left":0.015957447,"top":0.07581804,"width":0.09940159,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.07821229,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"}]...
|
-6283255722149460814
|
-686774065025629016
|
click
|
hybrid
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 12 pending changes
12
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
selectionViewWindov• HandleHubspotRateLimit.php Xe Client.php gV APP" JoosVCrm# MatchActivitiesToNewOpportunity.phpw MatchacuivilvcrmData.onp## NoteObiect.phpw SaveActivity.phpwSavelranscription.phpw [EMAIL]#Suncleads.ono#SvncObiects.oho#SvncOpportunities.lob.ohv# SvncOpportunitv.ohol# SyncProfileMetadata.php#SvncTeamFieldc.loh.nhn#. SvncTeamMetadata.nhnl# UpdateOpportunitySpecifications.php##UodateStage.pnpDealkisks> MeetingBotV Middlowaro#* HandleHubspotRateLimit.phpRA RateLimited.php> Streamine> TeamTelephony>UsenR# BaseProcessingJob.phpDummyJob.phpmoortRecallA Recordinas.oo.onv#ImoortRemotetrack.Job.onv# Job.oho# JobDisoatcher.oho# JobDispatcherinterface.ohv# [EMAIL]#SasVisibilitvControl.ohnV ModelsActivitvi>AFCalondarapp > Jobs › Middleware > «* HandleHubspotRateLimit.php › • HandleHubspotRateLimidectaretstriet_types-,namespace Jiminny Jobs Midd Leware;use Tluminate Suoport Facades Loo:use JiminnyExcentions RateLimitExceot.ion:: Job middleware that catches RateLimitException from HubSpot API callsclacs HandieHubsnotRatelimitprivate const int MaX RETrY DELAY = 600:private const int MIN RETRY DELAY = 1;orivate const int JIHTER SECONDS = 5.NOUAWANNpublic function handte(object sjob, callable snext): voidtry} catchmax(self::MIN RETRY DELAY, min($e->getRetryAfter(), self::MAX RETRY DELAY)):Add jitter to prevent thundering herd problem by randomizing retry timesSoelay += random 1nc6, selt::sulitk sccunds*sattemots = s1ob->attemots:if Sattemots <= 3 Sattemots & 10 === 0 4Log: : info(' [HandleHubspotRateLimit] Rate limit caught, releasing job with delay', ['job_class' = $job::class,lattemntel = Cattemnte.'retry after' = Se->getRetryAfter(),'delay' = $delay.Sioh-sre lease Sde llav).i8 JY-20725-handle-HS-search-rate-limit* ©₫6A90г"Platrorm Kerlnemen…. now100% L2Mon 11 May 16:03:23• 2 C→ Review rate limit handli... X* m&Review rate limit handling for HubSpot jo.ves should we have soem senrvIs there scenaro where the tlow would be slleniy talled. Do navea, way of knowing s some of the lobs are losi• Now for the 100k spike concern specifically - 64,000 Sentry events would be a lot of noise. Worth knowing that Sentry has rate limiting on its own side, and you can also add \Sentry:: configureScope() tocrouo them, bu thar's probably overkll nere, ne talled 1obs table already cives vou the full count Sentry cives vou the sicnal hat it hanpened at alTo directly answer your question: yes, there was a silent failure scenario. Jobs hitting retryUntil() after being rate-limited were written to failed_jobs and logged at error level, but nothing reachecSentry. The MaxAttemptsExceededException path (rate-limit exhaustion) never propagated through the exception handler — only real exceptions (DB errors etc.) did. Now failed() captures both, and thelog level distinguishes them so you can filter in Sentry by exception type: MaxAttemptsExceededException = rate-limit death, anything else = real bug.<> HandleHubspotRateLimit…fix @tests/Unit/Services/Crm/Hubspot/Paqination/HubspotPaqinationServiceTest.pho and@tests/Unit/.Jobs/Crm/MatchActivitvCrmDataTest.ohp• Thought for 299s >• Let me check what's actually broken before writing fixes.• Bash Run the affected tests to see what's failingpho vendor/ 5 n/ phount tests/Un t7Aobs/crm/Mat chacti vatvermbata est oho tests un t7aobs Mdolleware/ Handl eiubspotkate umtest.pho tests Un t7servaces/ crm/Hubspot7 Pag natiion/ HubspotpaOUT (eval):1: command not found: php• Bash Run the affected testsoho8.3vendor/ibin/phounit tests/Unit/Mobs/Cim/MatchActvitvCmDataTest.oho tests/Unit//Servilces//cim/Hubsoot/Paqinattion/HubspofPaginattionServiceTest.oho -no=coverage 220taill=5OUT (eval):1: command not found: php8.3• Bash Run affected tests from project rootvendor/bin/ohounit tests/Unit/Mobs/C.m/MatchActivitvCrmDataTest.oho tests/nit//Services/Crm/Hubsoot/Paqinattion/HubsoofPaginatsionServicellest.pho-no=coverage 220tail =60OUT env: php: No such file or directory• Bash Find available PHP binariesIN which php8.2 php8.1 php82 php81 2>/dev/null; ls /usr/local/bin/php* 2>/dev/null; ls /opt/homebrew/bin/php* 2>/dev/nullAllow this bash command?ropc/hondbrewv/bir/phpht-2-/Bevinuzy/dev/nut1; 1 /usr/local/bjn/phpe 2-/dev/nutl; 1sFind available PHP binaries11 Yes2 Yes, allow //usr/local/bin/** and //opt/homebrew/bi... for all projectsTell Claude what to do insteadEsc to cance88 SignIn...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
19555
|
837
|
7
|
2026-05-11T13:03:26.065339+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778504606065_m2.jpg...
|
Code
|
Review rate limit handli… — app
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 12 pending changes
12
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php
SaveTranscription.php
SetupLayout.php
SyncActivity.php
SyncFieldMetadata.php
SyncHubspotObjects.php
SyncLeads.php
SyncObjects.php
SyncOpportunitiesJob.php
SyncOpportunity.php
SyncProfileMetadata.php
SyncTeamFieldsJob.php
SyncTeamMetadata.php
UpdateOpportunitySpecifications.php...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Explorer (⇧⌘E)","depth":19,"bounds":{"left":0.0,"top":0.047885075,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":true},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.057462092,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Search (⇧⌘F)","depth":19,"bounds":{"left":0.0,"top":0.08619314,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.09577015,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Source Control (⌃⇧G) - 12 pending changes","depth":19,"bounds":{"left":0.0,"top":0.1245012,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.13407822,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"12","depth":22,"bounds":{"left":0.00831117,"top":0.1452514,"width":0.003656915,"height":0.008778931},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.008643617,"top":0.14604948,"width":0.0016622341,"height":0.007980846}},{"char_start":1,"char_count":1,"bounds":{"left":0.009973404,"top":0.14604948,"width":0.0023271276,"height":0.007980846}}],"role_description":"text"},{"role":"AXRadioButton","text":"Run and Debug (⇧⌘D)","depth":19,"bounds":{"left":0.0,"top":0.16280925,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.17238627,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Remote Explorer","depth":19,"bounds":{"left":0.0,"top":0.20111732,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.21069433,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Extensions (⇧⌘X) - 2 require update","depth":19,"bounds":{"left":0.0,"top":0.23942538,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.2490024,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":22,"bounds":{"left":0.009640957,"top":0.2601756,"width":0.0019946808,"height":0.008778931},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Testing","depth":19,"bounds":{"left":0.0,"top":0.27773345,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.28731045,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Claude Code","depth":19,"bounds":{"left":0.0,"top":0.3160415,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"EXPLORER","depth":17,"bounds":{"left":0.022606382,"top":0.047885075,"width":0.018949468,"height":0.02793296},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"EXPLORER","depth":18,"bounds":{"left":0.022606382,"top":0.056664005,"width":0.018949468,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.022606382,"top":0.056664005,"width":0.0023271276,"height":0.0103751}},{"char_start":1,"char_count":7,"bounds":{"left":0.024933511,"top":0.056664005,"width":0.01662234,"height":0.0103751}}],"role_description":"text"},{"role":"AXButton","text":"Explorer Section: app","depth":21,"bounds":{"left":0.015957447,"top":0.07581804,"width":0.09940159,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.07821229,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"Explorer Section: app","depth":22,"bounds":{"left":0.022606382,"top":0.07581804,"width":0.0076462766,"height":0.017557861},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"APP","depth":23,"bounds":{"left":0.022606382,"top":0.079010375,"width":0.0076462766,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.0933759,"width":0.0063164895,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CheckAndRetryRemoteMatch.php","depth":27,"bounds":{"left":0.033909574,"top":0.0933759,"width":0.068484046,"height":0.011173184},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.0933759,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":27,"bounds":{"left":0.036901597,"top":0.0933759,"width":0.06549202,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.10853951,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateFollowupActivity.php","depth":27,"bounds":{"left":0.033909574,"top":0.110135674,"width":0.054853722,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.11093376,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":25,"bounds":{"left":0.036901597,"top":0.11093376,"width":0.051861703,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.12609737,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateNotes.php","depth":27,"bounds":{"left":0.033909574,"top":0.12769353,"width":0.034242023,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.12849163,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.036901597,"top":0.12849163,"width":0.03125,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.14365523,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivitiesToNewOpportunity.php","depth":27,"bounds":{"left":0.033909574,"top":0.1452514,"width":0.07712766,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.14604948,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":34,"bounds":{"left":0.037898935,"top":0.14604948,"width":0.07347074,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.16121309,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivityCrmData.php","depth":27,"bounds":{"left":0.033909574,"top":0.16280925,"width":0.054521278,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.16360734,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":23,"bounds":{"left":0.037898935,"top":0.16360734,"width":0.050531916,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.17877094,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"NoteObject.php","depth":27,"bounds":{"left":0.033909574,"top":0.18036711,"width":0.031914894,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.1811652,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":13,"bounds":{"left":0.03723404,"top":0.1811652,"width":0.028922873,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.1963288,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SaveActivity.php","depth":27,"bounds":{"left":0.033909574,"top":0.19792499,"width":0.03324468,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.19872306,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":15,"bounds":{"left":0.03656915,"top":0.19872306,"width":0.030585106,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.21388668,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SaveTranscription.php","depth":27,"bounds":{"left":0.033909574,"top":0.21548285,"width":0.04454787,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.21628092,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":20,"bounds":{"left":0.03656915,"top":0.21628092,"width":0.042220745,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.23144454,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SetupLayout.php","depth":27,"bounds":{"left":0.033909574,"top":0.2330407,"width":0.034242023,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.23383878,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.03656915,"top":0.23383878,"width":0.031914894,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.2490024,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncActivity.php","depth":27,"bounds":{"left":0.033909574,"top":0.25059855,"width":0.03357713,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.25139666,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":15,"bounds":{"left":0.03656915,"top":0.25139666,"width":0.030917553,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.26656026,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncFieldMetadata.php","depth":27,"bounds":{"left":0.033909574,"top":0.26815644,"width":0.047539894,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.26895452,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":20,"bounds":{"left":0.03656915,"top":0.26895452,"width":0.04488032,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.28411812,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncHubspotObjects.php","depth":27,"bounds":{"left":0.033909574,"top":0.2857143,"width":0.051861703,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.28651237,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":21,"bounds":{"left":0.03656915,"top":0.28651237,"width":0.04920213,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.30167598,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncLeads.php","depth":27,"bounds":{"left":0.033909574,"top":0.30327216,"width":0.030917553,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.30407023,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":12,"bounds":{"left":0.03656915,"top":0.30407023,"width":0.02825798,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.31923383,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncObjects.php","depth":27,"bounds":{"left":0.033909574,"top":0.32083002,"width":0.034574468,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.3216281,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.03656915,"top":0.3216281,"width":0.031914894,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.3367917,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncOpportunitiesJob.php","depth":27,"bounds":{"left":0.033909574,"top":0.33838788,"width":0.053856384,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.33918595,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":23,"bounds":{"left":0.03656915,"top":0.33918595,"width":0.05119681,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.35434955,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncOpportunity.php","depth":27,"bounds":{"left":0.033909574,"top":0.35594574,"width":0.04288564,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.3567438,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":18,"bounds":{"left":0.03656915,"top":0.3567438,"width":0.040226065,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.3719074,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncProfileMetadata.php","depth":27,"bounds":{"left":0.033909574,"top":0.3735036,"width":0.05086436,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.37430167,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":22,"bounds":{"left":0.03656915,"top":0.37430167,"width":0.048204787,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.38946527,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncTeamFieldsJob.php","depth":27,"bounds":{"left":0.033909574,"top":0.39106146,"width":0.04886968,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.39185953,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":20,"bounds":{"left":0.03656915,"top":0.39185953,"width":0.046210106,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.40702313,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncTeamMetadata.php","depth":27,"bounds":{"left":0.033909574,"top":0.4086193,"width":0.048537236,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.4094174,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":19,"bounds":{"left":0.03656915,"top":0.4094174,"width":0.045877658,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.424581,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"UpdateOpportunitySpecifications.php","depth":27,"bounds":{"left":0.033909574,"top":0.42617717,"width":0.076130316,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.42697525,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":34,"bounds":{"left":0.03723404,"top":0.42697525,"width":0.0731383,"height":0.011971269}}],"role_description":"text"}]...
|
-1347344779237080379
|
8861418175036342536
|
visual_change
|
accessibility
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 12 pending changes
12
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php
SaveTranscription.php
SetupLayout.php
SyncActivity.php
SyncFieldMetadata.php
SyncHubspotObjects.php
SyncLeads.php
SyncObjects.php
SyncOpportunitiesJob.php
SyncOpportunity.php
SyncProfileMetadata.php
SyncTeamFieldsJob.php
SyncTeamMetadata.php
UpdateOpportunitySpecifications.php...
|
19554
|
NULL
|
NULL
|
NULL
|
|
19556
|
837
|
8
|
2026-05-11T13:03:29.078543+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778504609078_m2.jpg...
|
Code
|
Review rate limit handli… — app
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 12 pending changes
12
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php
SaveTranscription.php
SetupLayout.php
SyncActivity.php
SyncFieldMetadata.php
SyncHubspotObjects.php
SyncLeads.php
SyncObjects.php
SyncOpportunitiesJob.php
SyncOpportunity.php
SyncProfileMetadata.php
SyncTeamFieldsJob.php
SyncTeamMetadata.php
UpdateOpportunitySpecifications.php
UpdateStage.php
DealRisks
Mailbox
MeetingBot
Middleware
HandleHubspotRateLimit.php
RateLimited.php
Streaming
Team
Telephony
User
BaseProcessingJob.php
DummyJob.php
ImportRecallAIRecordingsJob.php
ImportRemoteTrackJob.php
Job.php
JobDispatcher.php
JobDispatcherInterface.php
PurgeSoftDeletedOpportunityJob.php
SqsVisibilityControl.php
Listeners
Mail
Models
Activity
Ai
AskAnything
Calendar
Connection
Crm
Jobs
app
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
MySQL Section
MYSQL
MYSQL
MatchActivityCrmData.php, Editor Group 1
RateLimitException.php, Editor Group 1
HandleHubspotRateLimit.php, Editor Group 1
Client.php, Editor Group 1
HubspotPaginationService.php, Editor Group 1
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Middleware;
use Illuminate\Support\Facades\Log;
use Jiminny\Exceptions\RateLimitException;
/**
* Job middleware that catches RateLimitException from HubSpot API calls
* and releases the job back to the queue with the appropriate delay.
*/
class HandleHubspotRateLimit
{
private const int MAX_RETRY_DELAY = 600;
private const int MIN_RETRY_DELAY = 1;
private const int JITTER_SECONDS = 5;
public function handle(object $job, callable $next): void
{
try {
$next($job);
} catch (RateLimitException $e) {
$delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));
// Add jitter to prevent thundering herd problem by randomizing retry times
$delay += random_int(0, self::JITTER_SECONDS);
$attempts = $job->attempts();
if ($attempts <= 3 || $attempts % 10 === 0) {
Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [
'job_class' => $job::class,
'attempts' => $attempts,
'retry_after' => $e->getRetryAfter(),
'delay' => $delay,
]);
}
$job->release($delay);
}
}
}
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Middleware;
use Illuminate\Support\Facades\Log;
use Jiminny\Exceptions\RateLimitException;
/**
* Job middleware that catches RateLimitException from HubSpot API calls
* and releases the job back to the queue with the appropriate delay.
*/
class HandleHubspotRateLimit
{
private const int MAX_RETRY_DELAY = 600;
private const int MIN_RETRY_DELAY = 1;
private const int JITTER_SECONDS = 5;
public function handle(object $job, callable $next): void
{
try {
$next($job);
} catch (RateLimitException $e) {
$delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));
// Add jitter to prevent thundering herd problem by randomizing retry times
$delay += random_int(0, self::JITTER_SECONDS);
$attempts = $job->attempts();
if ($attempts <= 3 || $attempts % 10 === 0) {
Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [
'job_class' => $job::class,
'attempts' => $attempts,
'retry_after' => $e->getRetryAfter(),
'delay' => $delay,
]);
}
$job->release($delay);
}
}
}
Review rate limit handli…, Editor Group 2
remote
app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...
JY-20725-handle-HS-search-rate-limit*
app (Git) - Synchronize Changes
Errors: 6, Warnings: 9, Infos: 2
6
9
2
Notifications
key, PHP extension: Premium features not active.
Sign In
Sign In
Diff editor
Clear
Review rate limit handling for HubSpot job queue
Session history
New session
Message actions
RateLimitException.php#9-9
RateLimitException.php#9-9
Reveiw the diff. Mostly
@app/Jobs/Crm/MatchActivityCrmData.php
,
@app/Exceptions/RateLimitException.php
,
@app/Jobs/Middleware/HandleHubspotRateLimit.php
,
@app/Services/Crm/Hubspot/Client.php
and
@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php
. The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?
Thought for 5s
Thought for 5s
I'll review the implementation carefully. Let me first check how
RateLimitException
is used elsewhere and look at the test files and
PaginationState
.
Bash
Find all usages of RateLimitException outside the changed files
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/app --include="*.php" | grep -v "HandleHubspotRateLimit\|MatchActivityCrmData\|Client.php\|RateLimitException.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:17:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:68: RateLimitException |
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:15:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:58: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:19:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:76: RateLimitException |
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:50: * @throws RateLimitException When rate limit is hit
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:195: // RateLimitException and other exceptions are re-thrown as-is
Read
PaginationState.php
PaginationState.php
Read
HandleHubspotRateLimitTest.php
HandleHubspotRateLimitTest.php
Bash
Check how RateLimitException is used in GenerateActionItemsJob
IN
grep -rn "RateLimitException\|LogicException\|RuntimeException" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -20
Copy code to clipboard...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Explorer (⇧⌘E)","depth":19,"bounds":{"left":0.0,"top":0.047885075,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":true},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.057462092,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Search (⇧⌘F)","depth":19,"bounds":{"left":0.0,"top":0.08619314,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.09577015,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Source Control (⌃⇧G) - 12 pending changes","depth":19,"bounds":{"left":0.0,"top":0.1245012,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.13407822,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"12","depth":22,"bounds":{"left":0.00831117,"top":0.1452514,"width":0.003656915,"height":0.008778931},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.008643617,"top":0.14604948,"width":0.0016622341,"height":0.007980846}},{"char_start":1,"char_count":1,"bounds":{"left":0.009973404,"top":0.14604948,"width":0.0023271276,"height":0.007980846}}],"role_description":"text"},{"role":"AXRadioButton","text":"Run and Debug (⇧⌘D)","depth":19,"bounds":{"left":0.0,"top":0.16280925,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.17238627,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Remote Explorer","depth":19,"bounds":{"left":0.0,"top":0.20111732,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.21069433,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Extensions (⇧⌘X) - 2 require update","depth":19,"bounds":{"left":0.0,"top":0.23942538,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.2490024,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":22,"bounds":{"left":0.009640957,"top":0.2601756,"width":0.0019946808,"height":0.008778931},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Testing","depth":19,"bounds":{"left":0.0,"top":0.27773345,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.28731045,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Claude Code","depth":19,"bounds":{"left":0.0,"top":0.3160415,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"EXPLORER","depth":17,"bounds":{"left":0.022606382,"top":0.047885075,"width":0.018949468,"height":0.02793296},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"EXPLORER","depth":18,"bounds":{"left":0.022606382,"top":0.056664005,"width":0.018949468,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.022606382,"top":0.056664005,"width":0.0023271276,"height":0.0103751}},{"char_start":1,"char_count":7,"bounds":{"left":0.024933511,"top":0.056664005,"width":0.01662234,"height":0.0103751}}],"role_description":"text"},{"role":"AXButton","text":"Explorer Section: app","depth":21,"bounds":{"left":0.015957447,"top":0.07581804,"width":0.09940159,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.07821229,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"Explorer Section: app","depth":22,"bounds":{"left":0.022606382,"top":0.07581804,"width":0.0076462766,"height":0.017557861},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"APP","depth":23,"bounds":{"left":0.022606382,"top":0.079010375,"width":0.0076462766,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.0933759,"width":0.0063164895,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CheckAndRetryRemoteMatch.php","depth":27,"bounds":{"left":0.033909574,"top":0.0933759,"width":0.068484046,"height":0.011173184},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.0933759,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":27,"bounds":{"left":0.036901597,"top":0.0933759,"width":0.06549202,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.10853951,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateFollowupActivity.php","depth":27,"bounds":{"left":0.033909574,"top":0.110135674,"width":0.054853722,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.11093376,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":25,"bounds":{"left":0.036901597,"top":0.11093376,"width":0.051861703,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.12609737,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateNotes.php","depth":27,"bounds":{"left":0.033909574,"top":0.12769353,"width":0.034242023,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.12849163,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.036901597,"top":0.12849163,"width":0.03125,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.14365523,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivitiesToNewOpportunity.php","depth":27,"bounds":{"left":0.033909574,"top":0.1452514,"width":0.07712766,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.14604948,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":34,"bounds":{"left":0.037898935,"top":0.14604948,"width":0.07347074,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.16121309,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivityCrmData.php","depth":27,"bounds":{"left":0.033909574,"top":0.16280925,"width":0.054521278,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.16360734,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":23,"bounds":{"left":0.037898935,"top":0.16360734,"width":0.050531916,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.17877094,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"NoteObject.php","depth":27,"bounds":{"left":0.033909574,"top":0.18036711,"width":0.031914894,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.1811652,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":13,"bounds":{"left":0.03723404,"top":0.1811652,"width":0.028922873,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.1963288,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SaveActivity.php","depth":27,"bounds":{"left":0.033909574,"top":0.19792499,"width":0.03324468,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.19872306,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":15,"bounds":{"left":0.03656915,"top":0.19872306,"width":0.030585106,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.21388668,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SaveTranscription.php","depth":27,"bounds":{"left":0.033909574,"top":0.21548285,"width":0.04454787,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.21628092,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":20,"bounds":{"left":0.03656915,"top":0.21628092,"width":0.042220745,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.23144454,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SetupLayout.php","depth":27,"bounds":{"left":0.033909574,"top":0.2330407,"width":0.034242023,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.23383878,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.03656915,"top":0.23383878,"width":0.031914894,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.2490024,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncActivity.php","depth":27,"bounds":{"left":0.033909574,"top":0.25059855,"width":0.03357713,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.25139666,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":15,"bounds":{"left":0.03656915,"top":0.25139666,"width":0.030917553,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.26656026,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncFieldMetadata.php","depth":27,"bounds":{"left":0.033909574,"top":0.26815644,"width":0.047539894,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.26895452,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":20,"bounds":{"left":0.03656915,"top":0.26895452,"width":0.04488032,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.28411812,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncHubspotObjects.php","depth":27,"bounds":{"left":0.033909574,"top":0.2857143,"width":0.051861703,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.28651237,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":21,"bounds":{"left":0.03656915,"top":0.28651237,"width":0.04920213,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.30167598,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncLeads.php","depth":27,"bounds":{"left":0.033909574,"top":0.30327216,"width":0.030917553,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.30407023,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":12,"bounds":{"left":0.03656915,"top":0.30407023,"width":0.02825798,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.31923383,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncObjects.php","depth":27,"bounds":{"left":0.033909574,"top":0.32083002,"width":0.034574468,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.3216281,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.03656915,"top":0.3216281,"width":0.031914894,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.3367917,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncOpportunitiesJob.php","depth":27,"bounds":{"left":0.033909574,"top":0.33838788,"width":0.053856384,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.33918595,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":23,"bounds":{"left":0.03656915,"top":0.33918595,"width":0.05119681,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.35434955,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncOpportunity.php","depth":27,"bounds":{"left":0.033909574,"top":0.35594574,"width":0.04288564,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.3567438,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":18,"bounds":{"left":0.03656915,"top":0.3567438,"width":0.040226065,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.3719074,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncProfileMetadata.php","depth":27,"bounds":{"left":0.033909574,"top":0.3735036,"width":0.05086436,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.37430167,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":22,"bounds":{"left":0.03656915,"top":0.37430167,"width":0.048204787,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.38946527,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncTeamFieldsJob.php","depth":27,"bounds":{"left":0.033909574,"top":0.39106146,"width":0.04886968,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.39185953,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":20,"bounds":{"left":0.03656915,"top":0.39185953,"width":0.046210106,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.40702313,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncTeamMetadata.php","depth":27,"bounds":{"left":0.033909574,"top":0.4086193,"width":0.048537236,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.4094174,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":19,"bounds":{"left":0.03656915,"top":0.4094174,"width":0.045877658,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.424581,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"UpdateOpportunitySpecifications.php","depth":27,"bounds":{"left":0.033909574,"top":0.42617717,"width":0.076130316,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.42697525,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":34,"bounds":{"left":0.03723404,"top":0.42697525,"width":0.0731383,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.44213888,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"UpdateStage.php","depth":27,"bounds":{"left":0.033909574,"top":0.44373503,"width":0.03523936,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.4445331,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.03723404,"top":0.4445331,"width":0.032247342,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.4612929,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"DealRisks","depth":27,"bounds":{"left":0.03125,"top":0.4612929,"width":0.019614361,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.46209097,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":8,"bounds":{"left":0.034574468,"top":0.46209097,"width":0.016289894,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.47885075,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mailbox","depth":27,"bounds":{"left":0.03125,"top":0.47885075,"width":0.015625,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.47964883,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":6,"bounds":{"left":0.03523936,"top":0.47964883,"width":0.011635638,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.4964086,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MeetingBot","depth":27,"bounds":{"left":0.03125,"top":0.4964086,"width":0.023271276,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.49720672,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":9,"bounds":{"left":0.03523936,"top":0.49720672,"width":0.019281914,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.5139665,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Middleware","depth":27,"bounds":{"left":0.03125,"top":0.5139665,"width":0.023271276,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.51476455,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":9,"bounds":{"left":0.03523936,"top":0.51476455,"width":0.019281914,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.52992815,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"HandleHubspotRateLimit.php","depth":27,"bounds":{"left":0.033909574,"top":0.53152436,"width":0.059175532,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.5323224,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":25,"bounds":{"left":0.03723404,"top":0.5323224,"width":0.05618351,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.547486,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"RateLimited.php","depth":27,"bounds":{"left":0.033909574,"top":0.5490822,"width":0.032912236,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.54988027,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.036901597,"top":0.54988027,"width":0.029920213,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.5666401,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Streaming","depth":27,"bounds":{"left":0.03125,"top":0.5666401,"width":0.020611702,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.5674381,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":8,"bounds":{"left":0.033909574,"top":0.5674381,"width":0.017952127,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.58419794,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Team","depth":27,"bounds":{"left":0.03125,"top":0.58419794,"width":0.010970744,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.584996,"width":0.0023271276,"height":0.011971269}},{"char_start":1,"char_count":3,"bounds":{"left":0.03357713,"top":0.584996,"width":0.008643617,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.6017558,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Telephony","depth":27,"bounds":{"left":0.03125,"top":0.6017558,"width":0.020611702,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.60255384,"width":0.0023271276,"height":0.011971269}},{"char_start":1,"char_count":8,"bounds":{"left":0.03357713,"top":0.60255384,"width":0.018284574,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.61931366,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"User","depth":27,"bounds":{"left":0.03125,"top":0.61931366,"width":0.00930851,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.6201117,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":3,"bounds":{"left":0.034574468,"top":0.6201117,"width":0.0063164895,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.63527536,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"BaseProcessingJob.php","depth":27,"bounds":{"left":0.03125,"top":0.6368715,"width":0.048537236,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.63766956,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":20,"bounds":{"left":0.034242023,"top":0.63766956,"width":0.045545213,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.6528332,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"DummyJob.php","depth":27,"bounds":{"left":0.03125,"top":0.6544294,"width":0.03158245,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.6552275,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":11,"bounds":{"left":0.034574468,"top":0.6552275,"width":0.02825798,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.6703911,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"ImportRecallAIRecordingsJob.php","depth":27,"bounds":{"left":0.03125,"top":0.67198724,"width":0.068484046,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.67278534,"width":0.0013297872,"height":0.011971269}},{"char_start":1,"char_count":30,"bounds":{"left":0.032579787,"top":0.67278534,"width":0.06715426,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.68794894,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"ImportRemoteTrackJob.php","depth":27,"bounds":{"left":0.03125,"top":0.6895451,"width":0.055518616,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.6903432,"width":0.0013297872,"height":0.011971269}},{"char_start":1,"char_count":23,"bounds":{"left":0.032579787,"top":0.6903432,"width":0.054521278,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.7055068,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Job.php","depth":27,"bounds":{"left":0.03125,"top":0.70710295,"width":0.016289894,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.70790106,"width":0.0023271276,"height":0.011971269}},{"char_start":1,"char_count":6,"bounds":{"left":0.03357713,"top":0.70790106,"width":0.014295213,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.72306466,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JobDispatcher.php","depth":27,"bounds":{"left":0.03125,"top":0.7246608,"width":0.037898935,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.7254589,"width":0.0023271276,"height":0.011971269}},{"char_start":1,"char_count":16,"bounds":{"left":0.03357713,"top":0.7254589,"width":0.035904255,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.7406225,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JobDispatcherInterface.php","depth":27,"bounds":{"left":0.03125,"top":0.7422187,"width":0.05618351,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.7430168,"width":0.0023271276,"height":0.011971269}},{"char_start":1,"char_count":25,"bounds":{"left":0.03357713,"top":0.7430168,"width":0.05418883,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.7581804,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"PurgeSoftDeletedOpportunityJob.php","depth":27,"bounds":{"left":0.03125,"top":0.75977653,"width":0.076130316,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.77573824,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SqsVisibilityControl.php","depth":27,"bounds":{"left":0.03125,"top":0.7773344,"width":0.047872342,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.022273935,"top":0.79489225,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Listeners","depth":27,"bounds":{"left":0.028590426,"top":0.79489225,"width":0.018284574,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.022273935,"top":0.8124501,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mail","depth":27,"bounds":{"left":0.028590426,"top":0.8124501,"width":0.00831117,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.022273935,"top":0.830008,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Models","depth":27,"bounds":{"left":0.028590426,"top":0.830008,"width":0.01462766,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.8475658,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Activity","depth":27,"bounds":{"left":0.03125,"top":0.8475658,"width":0.014960106,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.8651237,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Ai","depth":27,"bounds":{"left":0.03125,"top":0.8651237,"width":0.0039893617,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.88268155,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"AskAnything","depth":27,"bounds":{"left":0.03125,"top":0.88268155,"width":0.025265958,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.9002394,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Calendar","depth":27,"bounds":{"left":0.03125,"top":0.9002394,"width":0.017952127,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.91779727,"width":0.005319149,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Connection","depth":27,"bounds":{"left":0.03125,"top":0.91779727,"width":0.022938829,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.13088587,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Crm","depth":27,"bounds":{"left":0.03125,"top":0.13088587,"width":0.00831117,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.022273935,"top":0.11332801,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Jobs","depth":27,"bounds":{"left":0.028590426,"top":0.11332801,"width":0.009640957,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.019614361,"top":0.09577015,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"app","depth":27,"bounds":{"left":0.025930852,"top":0.09577015,"width":0.0076462766,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.10605053,"top":0.096568234,"width":0.004654255,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Outline Section","depth":21,"bounds":{"left":0.015957447,"top":0.92976856,"width":0.09940159,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.9321628,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"OUTLINE","depth":22,"bounds":{"left":0.022606382,"top":0.92976856,"width":0.01662234,"height":0.017557861},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"OUTLINE","depth":23,"bounds":{"left":0.022606382,"top":0.933759,"width":0.01662234,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Timeline Section","depth":21,"bounds":{"left":0.015957447,"top":0.9473264,"width":0.09940159,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.9497207,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"TIMELINE","depth":22,"bounds":{"left":0.022606382,"top":0.9473264,"width":0.01761968,"height":0.017557861},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"TIMELINE","depth":23,"bounds":{"left":0.022606382,"top":0.95131683,"width":0.01761968,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"MySQL Section","depth":21,"bounds":{"left":0.015957447,"top":0.9648843,"width":0.09940159,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.96727854,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"MYSQL","depth":22,"bounds":{"left":0.022606382,"top":0.9648843,"width":0.013297873,"height":0.017557861},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"MYSQL","depth":23,"bounds":{"left":0.022606382,"top":0.9688747,"width":0.013297873,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"MatchActivityCrmData.php, Editor Group 1","depth":28,"bounds":{"left":0.11569149,"top":0.047885075,"width":0.07480053,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"RateLimitException.php, Editor Group 1","depth":28,"bounds":{"left":0.19015957,"top":0.047885075,"width":0.06815159,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"HandleHubspotRateLimit.php, Editor Group 1","depth":28,"bounds":{"left":0.25797874,"top":0.047885075,"width":0.080119684,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXRadioButton","text":"Client.php, Editor Group 1","depth":28,"bounds":{"left":0.33776596,"top":0.047885075,"width":0.045545213,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"HubspotPaginationService.php, Editor Group 1","depth":28,"bounds":{"left":0.38297874,"top":0.047885075,"width":0.08277926,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.12832446,"top":0.07821229,"width":0.0056515955,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.14328457,"top":0.07821229,"width":0.0056515955,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.171875,"top":0.07821229,"width":0.0056515955,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.24401596,"top":0.07821229,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.24933511,"top":0.07821229,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Middleware;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Exceptions\\RateLimitException;\n\n/**\n * Job middleware that catches RateLimitException from HubSpot API calls\n * and releases the job back to the queue with the appropriate delay.\n */\nclass HandleHubspotRateLimit\n{\n private const int MAX_RETRY_DELAY = 600;\n private const int MIN_RETRY_DELAY = 1;\n private const int JITTER_SECONDS = 5;\n\n public function handle(object $job, callable $next): void\n {\n try {\n $next($job);\n } catch (RateLimitException $e) {\n $delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));\n // Add jitter to prevent thundering herd problem by randomizing retry times\n $delay += random_int(0, self::JITTER_SECONDS);\n\n $attempts = $job->attempts();\n if ($attempts <= 3 || $attempts % 10 === 0) {\n Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [\n 'job_class' => $job::class,\n 'attempts' => $attempts,\n 'retry_after' => $e->getRetryAfter(),\n 'delay' => $delay,\n ]);\n }\n\n $job->release($delay);\n }\n }\n}","depth":28,"bounds":{"left":0.13763298,"top":0.27613726,"width":0.23803191,"height":0.014365523},"on_screen":true,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Middleware;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Exceptions\\RateLimitException;\n\n/**\n * Job middleware that catches RateLimitException from HubSpot API calls\n * and releases the job back to the queue with the appropriate delay.\n */\nclass HandleHubspotRateLimit\n{\n private const int MAX_RETRY_DELAY = 600;\n private const int MIN_RETRY_DELAY = 1;\n private const int JITTER_SECONDS = 5;\n\n public function handle(object $job, callable $next): void\n {\n try {\n $next($job);\n } catch (RateLimitException $e) {\n $delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));\n // Add jitter to prevent thundering herd problem by randomizing retry times\n $delay += random_int(0, self::JITTER_SECONDS);\n\n $attempts = $job->attempts();\n if ($attempts <= 3 || $attempts % 10 === 0) {\n Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [\n 'job_class' => $job::class,\n 'attempts' => $attempts,\n 'retry_after' => $e->getRetryAfter(),\n 'delay' => $delay,\n ]);\n }\n\n $job->release($delay);\n }\n }\n}","role_description":"editor","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Jobs\\Middleware;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Exceptions\\RateLimitException;\n\n/**\n * Job middleware that catches RateLimitException from HubSpot API calls\n * and releases the job back to the queue with the appropriate delay.\n */\nclass HandleHubspotRateLimit\n{\n private const int MAX_RETRY_DELAY = 600;\n private const int MIN_RETRY_DELAY = 1;\n private const int JITTER_SECONDS = 5;\n\n public function handle(object $job, callable $next): void\n {\n try {\n $next($job);\n } catch (RateLimitException $e) {\n $delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));\n // Add jitter to prevent thundering herd problem by randomizing retry times\n $delay += random_int(0, self::JITTER_SECONDS);\n\n $attempts = $job->attempts();\n if ($attempts <= 3 || $attempts % 10 === 0) {\n Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [\n 'job_class' => $job::class,\n 'attempts' => $attempts,\n 'retry_after' => $e->getRetryAfter(),\n 'delay' => $delay,\n ]);\n }\n\n $job->release($delay);\n }\n }\n}","depth":29,"bounds":{"left":0.13763298,"top":0.27613726,"width":0.23803191,"height":0.014365523},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Review rate limit handli…, Editor Group 2","depth":28,"bounds":{"left":0.5578458,"top":0.047885075,"width":0.07014628,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXButton","text":"remote","depth":16,"bounds":{"left":0.0006648936,"top":0.98244214,"width":0.010638298,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...","depth":16,"bounds":{"left":0.012965426,"top":0.98244214,"width":0.084773935,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.013962766,"top":0.9848364,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JY-20725-handle-HS-search-rate-limit*","depth":17,"bounds":{"left":0.019281914,"top":0.9856345,"width":0.0774601,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"app (Git) - Synchronize Changes","depth":16,"bounds":{"left":0.09740692,"top":0.98244214,"width":0.0076462766,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Errors: 6, Warnings: 9, Infos: 2","depth":16,"bounds":{"left":0.107380316,"top":0.98244214,"width":0.032579787,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.109042555,"top":0.9848364,"width":0.0056515955,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"6","depth":17,"bounds":{"left":0.1143617,"top":0.9856345,"width":0.004986702,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.11934841,"top":0.9848364,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"9","depth":17,"bounds":{"left":0.124667555,"top":0.9856345,"width":0.004654255,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.12932181,"top":0.9848364,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":17,"bounds":{"left":0.13464096,"top":0.9856345,"width":0.003656915,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Notifications","depth":16,"bounds":{"left":0.9886968,"top":0.98244214,"width":0.010638298,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"key, PHP extension: Premium features not active.","depth":16,"bounds":{"left":0.9790558,"top":0.98244214,"width":0.008643617,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sign In","depth":16,"bounds":{"left":0.9544548,"top":0.98244214,"width":0.022606382,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.95611703,"top":0.9848364,"width":0.0056515955,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Sign In","depth":17,"bounds":{"left":0.96143615,"top":0.9856345,"width":0.013962766,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Diff editor","depth":12,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Clear","depth":12,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Review rate limit handling for HubSpot job queue","depth":19,"bounds":{"left":0.56017286,"top":0.08060654,"width":0.099734046,"height":0.022346368},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Session history","depth":19,"bounds":{"left":0.9780585,"top":0.08060654,"width":0.00930851,"height":0.022346368},"on_screen":true,"help_text":"Session history","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New session","depth":19,"bounds":{"left":0.9886968,"top":0.08060654,"width":0.00930851,"height":0.022346368},"on_screen":true,"help_text":"New session","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Message actions","depth":24,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"RateLimitException.php#9-9","depth":23,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"RateLimitException.php#9-9","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Reveiw the diff. Mostly","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Jobs/Crm/MatchActivityCrmData.php","depth":26,"on_screen":false,"help_text":"Open app/Jobs/Crm/MatchActivityCrmData.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Exceptions/RateLimitException.php","depth":26,"on_screen":false,"help_text":"Open app/Exceptions/RateLimitException.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Jobs/Middleware/HandleHubspotRateLimit.php","depth":26,"on_screen":false,"help_text":"Open app/Jobs/Middleware/HandleHubspotRateLimit.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Services/Crm/Hubspot/Client.php","depth":26,"on_screen":false,"help_text":"Open app/Services/Crm/Hubspot/Client.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"and","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php","depth":26,"on_screen":false,"help_text":"Open app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":". The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Thought for 5s","depth":23,"on_screen":false,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thought for 5s","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"I'll review the implementation carefully. Let me first check how","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is used elsewhere and look at the test files and","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"PaginationState","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":".","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find all usages of RateLimitException outside the changed files","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"RateLimitException\" /Users/lukas/jiminny/app/app --include=\"*.php\" | grep -v \"HandleHubspotRateLimit\\|MatchActivityCrmData\\|Client.php\\|RateLimitException.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception\n/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:17:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:68: RateLimitException |\n/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:15:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:58: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception\n/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:19:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:76: RateLimitException |\n/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:8:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:50: * @throws RateLimitException When rate limit is hit\n/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:195: // RateLimitException and other exceptions are re-thrown as-is","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"PaginationState.php","depth":24,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"PaginationState.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"HandleHubspotRateLimitTest.php","depth":24,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"HandleHubspotRateLimitTest.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check how RateLimitException is used in GenerateActionItemsJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"RateLimitException\\|LogicException\\|RuntimeException\" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -20","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-158741056083808323
|
-9035878466382973469
|
visual_change
|
accessibility
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 12 pending changes
12
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php
SaveTranscription.php
SetupLayout.php
SyncActivity.php
SyncFieldMetadata.php
SyncHubspotObjects.php
SyncLeads.php
SyncObjects.php
SyncOpportunitiesJob.php
SyncOpportunity.php
SyncProfileMetadata.php
SyncTeamFieldsJob.php
SyncTeamMetadata.php
UpdateOpportunitySpecifications.php
UpdateStage.php
DealRisks
Mailbox
MeetingBot
Middleware
HandleHubspotRateLimit.php
RateLimited.php
Streaming
Team
Telephony
User
BaseProcessingJob.php
DummyJob.php
ImportRecallAIRecordingsJob.php
ImportRemoteTrackJob.php
Job.php
JobDispatcher.php
JobDispatcherInterface.php
PurgeSoftDeletedOpportunityJob.php
SqsVisibilityControl.php
Listeners
Mail
Models
Activity
Ai
AskAnything
Calendar
Connection
Crm
Jobs
app
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
MySQL Section
MYSQL
MYSQL
MatchActivityCrmData.php, Editor Group 1
RateLimitException.php, Editor Group 1
HandleHubspotRateLimit.php, Editor Group 1
Client.php, Editor Group 1
HubspotPaginationService.php, Editor Group 1
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Middleware;
use Illuminate\Support\Facades\Log;
use Jiminny\Exceptions\RateLimitException;
/**
* Job middleware that catches RateLimitException from HubSpot API calls
* and releases the job back to the queue with the appropriate delay.
*/
class HandleHubspotRateLimit
{
private const int MAX_RETRY_DELAY = 600;
private const int MIN_RETRY_DELAY = 1;
private const int JITTER_SECONDS = 5;
public function handle(object $job, callable $next): void
{
try {
$next($job);
} catch (RateLimitException $e) {
$delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));
// Add jitter to prevent thundering herd problem by randomizing retry times
$delay += random_int(0, self::JITTER_SECONDS);
$attempts = $job->attempts();
if ($attempts <= 3 || $attempts % 10 === 0) {
Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [
'job_class' => $job::class,
'attempts' => $attempts,
'retry_after' => $e->getRetryAfter(),
'delay' => $delay,
]);
}
$job->release($delay);
}
}
}
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\Middleware;
use Illuminate\Support\Facades\Log;
use Jiminny\Exceptions\RateLimitException;
/**
* Job middleware that catches RateLimitException from HubSpot API calls
* and releases the job back to the queue with the appropriate delay.
*/
class HandleHubspotRateLimit
{
private const int MAX_RETRY_DELAY = 600;
private const int MIN_RETRY_DELAY = 1;
private const int JITTER_SECONDS = 5;
public function handle(object $job, callable $next): void
{
try {
$next($job);
} catch (RateLimitException $e) {
$delay = max(self::MIN_RETRY_DELAY, min($e->getRetryAfter(), self::MAX_RETRY_DELAY));
// Add jitter to prevent thundering herd problem by randomizing retry times
$delay += random_int(0, self::JITTER_SECONDS);
$attempts = $job->attempts();
if ($attempts <= 3 || $attempts % 10 === 0) {
Log::info('[HandleHubspotRateLimit] Rate limit caught, releasing job with delay', [
'job_class' => $job::class,
'attempts' => $attempts,
'retry_after' => $e->getRetryAfter(),
'delay' => $delay,
]);
}
$job->release($delay);
}
}
}
Review rate limit handli…, Editor Group 2
remote
app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...
JY-20725-handle-HS-search-rate-limit*
app (Git) - Synchronize Changes
Errors: 6, Warnings: 9, Infos: 2
6
9
2
Notifications
key, PHP extension: Premium features not active.
Sign In
Sign In
Diff editor
Clear
Review rate limit handling for HubSpot job queue
Session history
New session
Message actions
RateLimitException.php#9-9
RateLimitException.php#9-9
Reveiw the diff. Mostly
@app/Jobs/Crm/MatchActivityCrmData.php
,
@app/Exceptions/RateLimitException.php
,
@app/Jobs/Middleware/HandleHubspotRateLimit.php
,
@app/Services/Crm/Hubspot/Client.php
and
@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php
. The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?
Thought for 5s
Thought for 5s
I'll review the implementation carefully. Let me first check how
RateLimitException
is used elsewhere and look at the test files and
PaginationState
.
Bash
Find all usages of RateLimitException outside the changed files
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/app --include="*.php" | grep -v "HandleHubspotRateLimit\|MatchActivityCrmData\|Client.php\|RateLimitException.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:17:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:68: RateLimitException |
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:15:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:58: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:19:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:76: RateLimitException |
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:50: * @throws RateLimitException When rate limit is hit
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:195: // RateLimitException and other exceptions are re-thrown as-is
Read
PaginationState.php
PaginationState.php
Read
HandleHubspotRateLimitTest.php
HandleHubspotRateLimitTest.php
Bash
Check how RateLimitException is used in GenerateActionItemsJob
IN
grep -rn "RateLimitException\|LogicException\|RuntimeException" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -20
Copy code to clipboard...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
19557
|
837
|
9
|
2026-05-11T13:03:41.148830+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778504621148_m2.jpg...
|
Code
|
✻ [Claude Code] MatchActivityCrmDataTest.php (Matc ✻ [Claude Code] MatchActivityCrmDataTest.php (MatchActivityCrmDataTest.php) — app...
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 12 pending changes
12...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Explorer (⇧⌘E)","depth":19,"bounds":{"left":0.0,"top":0.047885075,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":true},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.057462092,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Search (⇧⌘F)","depth":19,"bounds":{"left":0.0,"top":0.08619314,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.09577015,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Source Control (⌃⇧G) - 12 pending changes","depth":19,"bounds":{"left":0.0,"top":0.1245012,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.13407822,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"12","depth":22,"bounds":{"left":0.00831117,"top":0.1452514,"width":0.003656915,"height":0.008778931},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.008643617,"top":0.14604948,"width":0.0016622341,"height":0.007980846}},{"char_start":1,"char_count":1,"bounds":{"left":0.009973404,"top":0.14604948,"width":0.0023271276,"height":0.007980846}}],"role_description":"text"}]...
|
6276387824240222833
|
-938277484341617526
|
visual_change
|
hybrid
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 12 pending changes
12
"Platrorm Kerlnemen… now100% L2Mon 11 May 16:03:40*EXPLORERV APPV appy JobsVCrm** MatchActivitiesToNewOpportunity.phpMatchActivityCrmData.php** NoteObject.php## SaveActivity.phpwSavelranscription.php## SetupLayout.php#R SyncActivity.phpwSvncFieldMetadata.pho1A SyncHubspotObjects.php#Suncleads.ono# SyncObjects.php#SvncOpoortunities.lob.ohv# SyncOpportunity.php## SyncProfileMetadata.php1# SyncTeamFieldsJob.php# SvncTeamMetadata.ohnR UpdateOpportunitySpecifications.php*R UpdateStage.php> DealRisks> MeetingBotV Middlowaro*R HandleHubspotRateLimit.phpR RateLimited.php> Streaming> Team> Telephony> User«* BaseProcessingJob.php* DummyJob.php14 ImportRecallAlRecordingsJob.php14 ImportRemoteTrackJob.php# .Job.ohp#A JobDispatcher.php#.JobDispatcherinterface.ohv# [EMAIL]# SasVisibilitvControl.nhn> Listeners> MailActivitvi> Ai> CalendarPa JY-20725-handle-HS-search-rate-limit* ©О6Д11О2*Claude Code MatchActivityCrmDatalest.php (MatchActivityCrmDatalest.php—•2 C3IA RateLimitException.phpR * [Claude Code] MatchActivityCrmDataTest.php 1 X# Clclassinny > app › tests › Unit > Jobs › Crm > 9 MatchActivityCrmDataTest.php > 4 MatchActivityCrmDataTest › ® testJobConfiguration()• Matchactiv1tycrmDataTest extends Testcaseclass MatchActivityermDatarest extends Testcasepublic tunction testSkipscrmcontiqurationSw1tchwhenAlreadyMatches: vo1123public tunction testSkipscrmcont1qurat1onSw1tchwhenALreadyMatches: vo1dSthis→>connection->expects(Sthis->once152Sthis->connection->expects(Sthis->once→ = Review rate limit handli..Review rate limit handling for HubSpot j...->wilReturncallback(function Scallback) «return $callback();7);Sob = new Matchactiv1tycrmbatafromConfiguration: $fromConfiguration,sjob->handle(crnAcelvlcyservice: sthis->ernAceivicyservice,connection: Sth1s->connection,oublic function testlobConfiaurationo: voidi$job = new MatchActivityCrmData(fromConfiquration: null.Sthis->assertSame(3, Sjob->tries);Sthis->assertSame([30, 90, 180], Sjob->backoff()):public function testUniqueId(): voidSconfauration = sthis-screateMockconfauration:.class).$configuration->method ( 'getId')->willReturn(5);sjob1 = new MatchActivityCrmData(activityId: 123,fromConfiguration: null,remoteSearch: false,Dinis-sascertSone(1123-0-10cal0, Stobl-sunioueTd0).$job2 = new MatchActivityCrmData(activityid:fromConfiguration: null,remotesearch: true.sthis-sassertSame('123:0:remote'. Siob-suniqueldo):Cioh? = new MatchActivitvGrmDataifromConfiguration: $configuration,sthis-sascertSame ('123:5:local'. Siob3->uniqueid0));184-wil ReturnCallback function Scallback)return $callback();7);S1ob = new Matchactiv1tycrmbatal+romcon iguration: stronconfiguration,$job→>harcrnAculvicyservice: schis→>crAceivicyservice,connection: sthis->connect1on,oublic function testlobConfiaurationo: void$job = new MatchActivityCrmData(activityId: 1,fromConfiguration: null,sthis assert5ame (30, s-1)(300, sjob→>timsthis->assertSame(7260, $job->uniqueFor());sthis->assertSame( [30, 90, 180], Sjob->backoff();public function testUniqueld(): voidSconfiauration = sthis-screateMock confaurat ion:cllass):$configuration->method('getId')->willReturn(5);$job1 = new MatchActivityCrmData(fromConfiguration: null,Dints-snssertSame/1123-0:1ocal0 stobl-sunioueTd0)).$job2 =MatchActivityCrmData(activityId: 123,fromConfiguration: null,true.sthis-sassertSame "123:0:remote'. Siob2-suniqueldon:Cioh? = new MatchActivitvGrmlatalactivitvtd: 122.fromConficuration, SconfiaurationSthis->assertSame('123:5:local'. Siob3->uniqueldO):</> HandleHubspotRateLimit..fix @tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php and @tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.phpwhich php8.2 php8.1 php82 php81 2>/dev/null; ls /usr/local/bin/php* 2>/dev/null; ls /opt/homebrew/bin/php* 2>/dev/nullOUT Exit code 1phpo.z not toundphpo.1 not tound• Bash Find how tests are run in this projectcat /Users/lukas/jiminny/app/sail 2>/dev/null | head -5; ls /Users/lukas/jiminny/app/*.sh 2>/dev/null; cat /Users/lukas/jiminny/app/Makefile 2>/dev/null | grep -j "phpunit\|test" | hOUT (eval):1: no matches found: /Users/lukas/liminny/app/*.sh• Can't run tests directlv — no PHP in PATH. I'l reason from the code and make the fixes.What's broken:1. MatchActivityCrmDataTest::testJobConfiguration - uniqueFor() now returns 7260 (120x60+60), test expects 3602. MatchActivitvCrmDataTest::testFailedMethodLoosError — failedo now calls Sentry:: captureExcentiono. not mocked3. All HubspotPaginationServiceTest tests - mock hubspotClientMock->request() through an getInstance()->getClient() chain, but since Client is a full mock via createMock(), search() isalso mocked and returns [1 by default, so request() is never reached• Edit MatchActivitvCrmDataTest.ohopublic function testjobconfiguration): voidSjob =new MatchActivityCrmData(acuivityso.fromConfiguration: null,remoresearch: Talse.public function testJobConfiguration): voidsjob = newMatchActivityCrmData(fromConfiguration: null,remoresearch: ralsesthis-sassertSame(3. Siob->tries:sthis-sascertSame 300. Siohsstimeouton+sthis->assertSame(3. Siob->tries):sthis-sascertSame 300. Siohsstimeouton:Make this edit to MatchActivityCrmDataTest.php?7Yes. alllow all edits this seccion3 NoTall Alaudh what te de tnstnadEsc to canceLn 180, Col 1 Spaces: 4 UTF-8 LF PHP 8 SignIn 8.3 P 0...
|
19556
|
NULL
|
NULL
|
NULL
|
|
19559
|
837
|
10
|
2026-05-11T13:04:13.487303+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778504653487_m2.jpg...
|
Code
|
✻ [Claude Code] MatchActivityCrmDataTest.php (Matc ✻ [Claude Code] MatchActivityCrmDataTest.php (MatchActivityCrmDataTest.php) — app...
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 12 pending changes
12
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php
SaveTranscription.php
SetupLayout.php
SyncActivity.php
SyncFieldMetadata.php
SyncHubspotObjects.php
SyncLeads.php
SyncObjects.php
SyncOpportunitiesJob.php
SyncOpportunity.php
SyncProfileMetadata.php
SyncTeamFieldsJob.php
SyncTeamMetadata.php
UpdateOpportunitySpecifications.php
UpdateStage.php
DealRisks
Mailbox
MeetingBot
Middleware
HandleHubspotRateLimit.php
RateLimited.php
Streaming
Team
Telephony
User
BaseProcessingJob.php
DummyJob.php
ImportRecallAIRecordingsJob.php
ImportRemoteTrackJob.php
Job.php
JobDispatcher.php
JobDispatcherInterface.php
PurgeSoftDeletedOpportunityJob.php
SqsVisibilityControl.php
Listeners
Mail
Models
Activity
Ai
AskAnything
Calendar
Connection
Crm
Jobs
app
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
MySQL Section
MYSQL
MYSQL
MatchActivityCrmData.php, Editor Group 1
RateLimitException.php, Editor Group 1
HandleHubspotRateLimit.php, Editor Group 1
✻ [Claude Code] MatchActivityCrmDataTest.php (MatchActivityCrmDataTest.php), Editor Group 1
Client.php, Editor Group 1
HubspotPaginationService.php, Editor Group 1
Review rate limit handli…, Editor Group 2
remote
app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...
JY-20725-handle-HS-search-rate-limit*
app (Git) - Synchronize Changes
Errors: 6, Warnings: 11, Infos: 2
6
11
2
Notifications
key, PHP extension: Premium features not active.
8.3, Language Level: 8.3
Sign In
Sign In
PHP
LF
UTF-8
Spaces: 4
Ln 180, Col 1
Diff editor
Clear
Review rate limit handling for HubSpot job queue
Session history
New session
Message actions
RateLimitException.php#9-9
RateLimitException.php#9-9
Reveiw the diff. Mostly
@app/Jobs/Crm/MatchActivityCrmData.php
,
@app/Exceptions/RateLimitException.php
,
@app/Jobs/Middleware/HandleHubspotRateLimit.php
,
@app/Services/Crm/Hubspot/Client.php
and
@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php
. The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?
Thought for 5s
Thought for 5s
I'll review the implementation carefully. Let me first check how
RateLimitException
is used elsewhere and look at the test files and
PaginationState
.
Bash
Find all usages of RateLimitException outside the changed files
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/app --include="*.php" | grep -v "HandleHubspotRateLimit\|MatchActivityCrmData\|Client.php\|RateLimitException.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:17:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:68: RateLimitException |
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:15:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:58: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:19:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:76: RateLimitException |
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:50: * @throws RateLimitException When rate limit is hit
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:195: // RateLimitException and other exceptions are re-thrown as-is
Read
PaginationState.php
PaginationState.php
Read
HandleHubspotRateLimitTest.php
HandleHubspotRateLimitTest.php
Bash
Check how RateLimitException is used in GenerateActionItemsJob
IN
grep -rn "RateLimitException\|LogicException\|RuntimeException" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -20
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
Bash
Find all catch blocks or instanceof checks for RateLimitException
IN
grep -rn "catch.*RateLimitException\|instanceof RateLimitException" /Users/lukas/jiminny/app/app --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:11: * Job middleware that catches RateLimitException from HubSpot API calls
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:24: } catch (RateLimitException $e) {
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:149: if (! $e instanceof RateLimitException) {
Bash
Find all test references to RateLimitException
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/tests --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:13:#[CoversClass(RateLimitException::class)]
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:14:class RateLimitExceptionTest extends TestCase
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:18: $exception = new RateLimitException();
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:28: $exception = new RateLimitException('Hubspot rate limit', 30, $previous);
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:52: $exception = new RateLimitException('test', $input);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:10:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:49: public function testPropagatesNonRateLimitExceptions(): void
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:103: throw new RateLimitException('rate limited', $retryAfter);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:150: throw new RateLimitException('rate limited', 1);
Bash
Check retry/failure handling in GenerateActionItemsJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -30
Copy code to clipboard
OUT
13:use Jiminny\Exceptions\RateLimitException;
51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
56: $this->release(30);
Bash
Check retry/failure handling in GenerateAiCallScoringJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php | head -30
Copy code to clipboard
OUT
17:use Jiminny\Exceptions\RateLimitException;
68: RateLimitException |
75: $this->release(30);
Bash
Check retry config in MatchActivityCrmData
IN
grep -n "retryAfter\|RETRY_WINDOW\|retryUntil\|maxTries" /Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php
Copy code to clipboard
OUT
34: private const int RETRY_WINDOW_MINUTES = 30;
45: public function retryUntil(): \DateTimeInterface
47: return now()->addMinutes(self::RETRY_WINDOW_MINUTES);
77: return self::RETRY_WINDOW_MINUTES * 60 + 60;
Bash
Check the cache key format
IN
grep -n "getRateLimitCacheKey\|hubspot:ratelimit" /Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Client.php
Copy code to clipboard
OUT
78: $cacheKey = $this->getRateLimitCacheKey();
110: private function getRateLimitCacheKey(): string
112: return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());
Bash
Find other jobs that might use the rate limit middleware
IN
grep -rn "class.*Middleware\|HandleHubspotRateLimit" /Users/lukas/jiminny/app/app/Jobs --include="*.php" | grep -v "HandleHubspotRateLimit.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:18:use Jiminny\Jobs\Middleware\HandleHubspotRateLimit;
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:42: return [new HandleHubspotRateLimit()];
Read
HubspotClientInterface.php
HubspotClientInterface.php
Thought for 73s
Thought for 73s
Now I have a complete picture. Here's my full analysis:
Review Summary
Review Summary
RuntimeException vs LogicException — Safe ✓
RuntimeException
vs
LogicException
— Safe ✓
The change is semantically correct and won't break anything.
LogicException
is for programmer errors (invalid arguments, contract violations). A rate limit from an external API is a runtime condition —
RuntimeException
is the right parent. All callers catch
RateLimitException
by name explicitly (union catches in
GenerateActionItemsJob
,
GenerateAiCallScoringJob
,
SummarizeTranscriptionJob
,
GenerateAiActivityTypeJob
) or check
instanceof RateLimitException
— none relies on the parent class type, so nothing breaks.
Issue 1 — Circuit breaker stores stale delay (most important bug)
Issue 1 — Circuit breaker stores stale delay (most important bug)
Client.php:94
Client.php:94
Copy code to clipboard
Redis::setex($cacheKey, $retryAfter, (string) $retryAfter);
The TTL is
$retryAfter
seconds, but the
stored value
is also the original
$retryAfter
. If a second job reads this cache 20 seconds later, it throws
RateLimitException(retryAfter=30)
and gets delayed 30 more seconds — even though only 10 remain. In a spike of 100 jobs, each subsequent job inflates its wait.
Fix:
store the absolute expiry timestamp, reconstruct the remaining delay when reading:
Copy code to clipboard
// on 429:
Redis::setex($cacheKey, $retryAfter, (string) (time() + $retryAfter));
// in the cached-read branch:
$remaining = max(1, (int) $cachedRetryAfter - time());
throw new RateLimitException('Hubspot rate limit (cached circuit-breaker)', $remaining);
Issue 2 — retryUntil() window may expire under sustained rate limiting
Issue 2 —
retryUntil()
window may expire under sustained rate limiting
MatchActivityCrmData.php:45-47
MatchActivityCrmData.php:45-47...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Explorer (⇧⌘E)","depth":19,"bounds":{"left":0.0,"top":0.047885075,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":true},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.057462092,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Search (⇧⌘F)","depth":19,"bounds":{"left":0.0,"top":0.08619314,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.09577015,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Source Control (⌃⇧G) - 12 pending changes","depth":19,"bounds":{"left":0.0,"top":0.1245012,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.13407822,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"12","depth":22,"bounds":{"left":0.00831117,"top":0.1452514,"width":0.003656915,"height":0.008778931},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.008643617,"top":0.14604948,"width":0.0016622341,"height":0.007980846}},{"char_start":1,"char_count":1,"bounds":{"left":0.009973404,"top":0.14604948,"width":0.0023271276,"height":0.007980846}}],"role_description":"text"},{"role":"AXRadioButton","text":"Run and Debug (⇧⌘D)","depth":19,"bounds":{"left":0.0,"top":0.16280925,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.17238627,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Remote Explorer","depth":19,"bounds":{"left":0.0,"top":0.20111732,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.21069433,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Extensions (⇧⌘X) - 2 require update","depth":19,"bounds":{"left":0.0,"top":0.23942538,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.2490024,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":22,"bounds":{"left":0.009640957,"top":0.2601756,"width":0.0019946808,"height":0.008778931},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Testing","depth":19,"bounds":{"left":0.0,"top":0.27773345,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.28731045,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Claude Code","depth":19,"bounds":{"left":0.0,"top":0.3160415,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"EXPLORER","depth":17,"bounds":{"left":0.022606382,"top":0.047885075,"width":0.018949468,"height":0.02793296},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"EXPLORER","depth":18,"bounds":{"left":0.022606382,"top":0.056664005,"width":0.018949468,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.022606382,"top":0.056664005,"width":0.0023271276,"height":0.0103751}},{"char_start":1,"char_count":7,"bounds":{"left":0.024933511,"top":0.056664005,"width":0.01662234,"height":0.0103751}}],"role_description":"text"},{"role":"AXButton","text":"Explorer Section: app","depth":21,"bounds":{"left":0.015957447,"top":0.07581804,"width":0.09940159,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.07821229,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"Explorer Section: app","depth":22,"bounds":{"left":0.022606382,"top":0.07581804,"width":0.0076462766,"height":0.017557861},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"APP","depth":23,"bounds":{"left":0.022606382,"top":0.079010375,"width":0.0076462766,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.0933759,"width":0.0063164895,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CheckAndRetryRemoteMatch.php","depth":27,"bounds":{"left":0.033909574,"top":0.0933759,"width":0.068484046,"height":0.011173184},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.0933759,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":27,"bounds":{"left":0.036901597,"top":0.0933759,"width":0.06549202,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.10853951,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateFollowupActivity.php","depth":27,"bounds":{"left":0.033909574,"top":0.110135674,"width":0.054853722,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.11093376,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":25,"bounds":{"left":0.036901597,"top":0.11093376,"width":0.051861703,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.12609737,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateNotes.php","depth":27,"bounds":{"left":0.033909574,"top":0.12769353,"width":0.034242023,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.12849163,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.036901597,"top":0.12849163,"width":0.03125,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.14365523,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivitiesToNewOpportunity.php","depth":27,"bounds":{"left":0.033909574,"top":0.1452514,"width":0.07712766,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.14604948,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":34,"bounds":{"left":0.037898935,"top":0.14604948,"width":0.07347074,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.16121309,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivityCrmData.php","depth":27,"bounds":{"left":0.033909574,"top":0.16280925,"width":0.054521278,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.16360734,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":23,"bounds":{"left":0.037898935,"top":0.16360734,"width":0.050531916,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.17877094,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"NoteObject.php","depth":27,"bounds":{"left":0.033909574,"top":0.18036711,"width":0.031914894,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.1811652,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":13,"bounds":{"left":0.03723404,"top":0.1811652,"width":0.028922873,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.1963288,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SaveActivity.php","depth":27,"bounds":{"left":0.033909574,"top":0.19792499,"width":0.03324468,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.19872306,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":15,"bounds":{"left":0.03656915,"top":0.19872306,"width":0.030585106,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.21388668,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SaveTranscription.php","depth":27,"bounds":{"left":0.033909574,"top":0.21548285,"width":0.04454787,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.21628092,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":20,"bounds":{"left":0.03656915,"top":0.21628092,"width":0.042220745,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.23144454,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SetupLayout.php","depth":27,"bounds":{"left":0.033909574,"top":0.2330407,"width":0.034242023,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.23383878,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.03656915,"top":0.23383878,"width":0.031914894,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.2490024,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncActivity.php","depth":27,"bounds":{"left":0.033909574,"top":0.25059855,"width":0.03357713,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.25139666,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":15,"bounds":{"left":0.03656915,"top":0.25139666,"width":0.030917553,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.26656026,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncFieldMetadata.php","depth":27,"bounds":{"left":0.033909574,"top":0.26815644,"width":0.047539894,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.26895452,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":20,"bounds":{"left":0.03656915,"top":0.26895452,"width":0.04488032,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.28411812,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncHubspotObjects.php","depth":27,"bounds":{"left":0.033909574,"top":0.2857143,"width":0.051861703,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.28651237,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":21,"bounds":{"left":0.03656915,"top":0.28651237,"width":0.04920213,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.30167598,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncLeads.php","depth":27,"bounds":{"left":0.033909574,"top":0.30327216,"width":0.030917553,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.30407023,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":12,"bounds":{"left":0.03656915,"top":0.30407023,"width":0.02825798,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.31923383,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncObjects.php","depth":27,"bounds":{"left":0.033909574,"top":0.32083002,"width":0.034574468,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.3216281,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.03656915,"top":0.3216281,"width":0.031914894,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.3367917,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncOpportunitiesJob.php","depth":27,"bounds":{"left":0.033909574,"top":0.33838788,"width":0.053856384,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.33918595,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":23,"bounds":{"left":0.03656915,"top":0.33918595,"width":0.05119681,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.35434955,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncOpportunity.php","depth":27,"bounds":{"left":0.033909574,"top":0.35594574,"width":0.04288564,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.3567438,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":18,"bounds":{"left":0.03656915,"top":0.3567438,"width":0.040226065,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.3719074,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncProfileMetadata.php","depth":27,"bounds":{"left":0.033909574,"top":0.3735036,"width":0.05086436,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.37430167,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":22,"bounds":{"left":0.03656915,"top":0.37430167,"width":0.048204787,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.38946527,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncTeamFieldsJob.php","depth":27,"bounds":{"left":0.033909574,"top":0.39106146,"width":0.04886968,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.39185953,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":20,"bounds":{"left":0.03656915,"top":0.39185953,"width":0.046210106,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.40702313,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncTeamMetadata.php","depth":27,"bounds":{"left":0.033909574,"top":0.4086193,"width":0.048537236,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.4094174,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":19,"bounds":{"left":0.03656915,"top":0.4094174,"width":0.045877658,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.424581,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"UpdateOpportunitySpecifications.php","depth":27,"bounds":{"left":0.033909574,"top":0.42617717,"width":0.076130316,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.42697525,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":34,"bounds":{"left":0.03723404,"top":0.42697525,"width":0.0731383,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.44213888,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"UpdateStage.php","depth":27,"bounds":{"left":0.033909574,"top":0.44373503,"width":0.03523936,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.4445331,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.03723404,"top":0.4445331,"width":0.032247342,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.4612929,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"DealRisks","depth":27,"bounds":{"left":0.03125,"top":0.4612929,"width":0.019614361,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.46209097,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":8,"bounds":{"left":0.034574468,"top":0.46209097,"width":0.016289894,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.47885075,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mailbox","depth":27,"bounds":{"left":0.03125,"top":0.47885075,"width":0.015625,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.47964883,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":6,"bounds":{"left":0.03523936,"top":0.47964883,"width":0.011635638,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.4964086,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MeetingBot","depth":27,"bounds":{"left":0.03125,"top":0.4964086,"width":0.023271276,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.49720672,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":9,"bounds":{"left":0.03523936,"top":0.49720672,"width":0.019281914,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.5139665,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Middleware","depth":27,"bounds":{"left":0.03125,"top":0.5139665,"width":0.023271276,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.51476455,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":9,"bounds":{"left":0.03523936,"top":0.51476455,"width":0.019281914,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.52992815,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"HandleHubspotRateLimit.php","depth":27,"bounds":{"left":0.033909574,"top":0.53152436,"width":0.059175532,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.5323224,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":25,"bounds":{"left":0.03723404,"top":0.5323224,"width":0.05618351,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.547486,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"RateLimited.php","depth":27,"bounds":{"left":0.033909574,"top":0.5490822,"width":0.032912236,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.54988027,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.036901597,"top":0.54988027,"width":0.029920213,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.5666401,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Streaming","depth":27,"bounds":{"left":0.03125,"top":0.5666401,"width":0.020611702,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.5674381,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":8,"bounds":{"left":0.033909574,"top":0.5674381,"width":0.017952127,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.58419794,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Team","depth":27,"bounds":{"left":0.03125,"top":0.58419794,"width":0.010970744,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.584996,"width":0.0023271276,"height":0.011971269}},{"char_start":1,"char_count":3,"bounds":{"left":0.03357713,"top":0.584996,"width":0.008643617,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.6017558,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Telephony","depth":27,"bounds":{"left":0.03125,"top":0.6017558,"width":0.020611702,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.60255384,"width":0.0023271276,"height":0.011971269}},{"char_start":1,"char_count":8,"bounds":{"left":0.03357713,"top":0.60255384,"width":0.018284574,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.61931366,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"User","depth":27,"bounds":{"left":0.03125,"top":0.61931366,"width":0.00930851,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.6201117,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":3,"bounds":{"left":0.034574468,"top":0.6201117,"width":0.0063164895,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.63527536,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"BaseProcessingJob.php","depth":27,"bounds":{"left":0.03125,"top":0.6368715,"width":0.048537236,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.63766956,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":20,"bounds":{"left":0.034242023,"top":0.63766956,"width":0.045545213,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.6528332,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"DummyJob.php","depth":27,"bounds":{"left":0.03125,"top":0.6544294,"width":0.03158245,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.6552275,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":11,"bounds":{"left":0.034574468,"top":0.6552275,"width":0.02825798,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.6703911,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"ImportRecallAIRecordingsJob.php","depth":27,"bounds":{"left":0.03125,"top":0.67198724,"width":0.068484046,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.67278534,"width":0.0013297872,"height":0.011971269}},{"char_start":1,"char_count":30,"bounds":{"left":0.032579787,"top":0.67278534,"width":0.06715426,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.68794894,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"ImportRemoteTrackJob.php","depth":27,"bounds":{"left":0.03125,"top":0.6895451,"width":0.055518616,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.6903432,"width":0.0013297872,"height":0.011971269}},{"char_start":1,"char_count":23,"bounds":{"left":0.032579787,"top":0.6903432,"width":0.054521278,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.7055068,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Job.php","depth":27,"bounds":{"left":0.03125,"top":0.70710295,"width":0.016289894,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.70790106,"width":0.0023271276,"height":0.011971269}},{"char_start":1,"char_count":6,"bounds":{"left":0.03357713,"top":0.70790106,"width":0.014295213,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.72306466,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JobDispatcher.php","depth":27,"bounds":{"left":0.03125,"top":0.7246608,"width":0.037898935,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.7254589,"width":0.0023271276,"height":0.011971269}},{"char_start":1,"char_count":16,"bounds":{"left":0.03357713,"top":0.7254589,"width":0.035904255,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.7406225,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JobDispatcherInterface.php","depth":27,"bounds":{"left":0.03125,"top":0.7422187,"width":0.05618351,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.7430168,"width":0.0023271276,"height":0.011971269}},{"char_start":1,"char_count":25,"bounds":{"left":0.03357713,"top":0.7430168,"width":0.05418883,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.7581804,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"PurgeSoftDeletedOpportunityJob.php","depth":27,"bounds":{"left":0.03125,"top":0.75977653,"width":0.076130316,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.77573824,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SqsVisibilityControl.php","depth":27,"bounds":{"left":0.03125,"top":0.7773344,"width":0.047872342,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.022273935,"top":0.79489225,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Listeners","depth":27,"bounds":{"left":0.028590426,"top":0.79489225,"width":0.018284574,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.022273935,"top":0.8124501,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mail","depth":27,"bounds":{"left":0.028590426,"top":0.8124501,"width":0.00831117,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.022273935,"top":0.830008,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Models","depth":27,"bounds":{"left":0.028590426,"top":0.830008,"width":0.01462766,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.8475658,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Activity","depth":27,"bounds":{"left":0.03125,"top":0.8475658,"width":0.014960106,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.8651237,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Ai","depth":27,"bounds":{"left":0.03125,"top":0.8651237,"width":0.0039893617,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.88268155,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"AskAnything","depth":27,"bounds":{"left":0.03125,"top":0.88268155,"width":0.025265958,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.9002394,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Calendar","depth":27,"bounds":{"left":0.03125,"top":0.9002394,"width":0.017952127,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.91779727,"width":0.005319149,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Connection","depth":27,"bounds":{"left":0.03125,"top":0.91779727,"width":0.022938829,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.13088587,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Crm","depth":27,"bounds":{"left":0.03125,"top":0.13088587,"width":0.00831117,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.022273935,"top":0.11332801,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Jobs","depth":27,"bounds":{"left":0.028590426,"top":0.11332801,"width":0.009640957,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.019614361,"top":0.09577015,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"app","depth":27,"bounds":{"left":0.025930852,"top":0.09577015,"width":0.0076462766,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.10605053,"top":0.096568234,"width":0.004654255,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Outline Section","depth":21,"bounds":{"left":0.015957447,"top":0.92976856,"width":0.09940159,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.9321628,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"OUTLINE","depth":22,"bounds":{"left":0.022606382,"top":0.92976856,"width":0.01662234,"height":0.017557861},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"OUTLINE","depth":23,"bounds":{"left":0.022606382,"top":0.933759,"width":0.01662234,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Timeline Section","depth":21,"bounds":{"left":0.015957447,"top":0.9473264,"width":0.09940159,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.9497207,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"TIMELINE","depth":22,"bounds":{"left":0.022606382,"top":0.9473264,"width":0.01761968,"height":0.017557861},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"TIMELINE","depth":23,"bounds":{"left":0.022606382,"top":0.95131683,"width":0.01761968,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"MySQL Section","depth":21,"bounds":{"left":0.015957447,"top":0.9648843,"width":0.09940159,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.96727854,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"MYSQL","depth":22,"bounds":{"left":0.022606382,"top":0.9648843,"width":0.013297873,"height":0.017557861},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"MYSQL","depth":23,"bounds":{"left":0.022606382,"top":0.9688747,"width":0.013297873,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"MatchActivityCrmData.php, Editor Group 1","depth":28,"bounds":{"left":0.11569149,"top":0.047885075,"width":0.07480053,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"RateLimitException.php, Editor Group 1","depth":28,"bounds":{"left":0.19015957,"top":0.047885075,"width":0.06815159,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"HandleHubspotRateLimit.php, Editor Group 1","depth":28,"bounds":{"left":0.25797874,"top":0.047885075,"width":0.080119684,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✻ [Claude Code] MatchActivityCrmDataTest.php (MatchActivityCrmDataTest.php), Editor Group 1","depth":28,"bounds":{"left":0.33776596,"top":0.047885075,"width":0.12134308,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXRadioButton","text":"Client.php, Editor Group 1","depth":28,"bounds":{"left":0.45910904,"top":0.047885075,"width":0.016954787,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"HubspotPaginationService.php, Editor Group 1","depth":28,"on_screen":false,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.13264628,"top":0.07821229,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.14827128,"top":0.07821229,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.16755319,"top":0.07821229,"width":0.0056515955,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.18051861,"top":0.07821229,"width":0.0056515955,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.19581117,"top":0.07821229,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.20944148,"top":0.07821229,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.2244016,"top":0.07821229,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.23803191,"top":0.07821229,"width":0.0056515955,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.31349733,"top":0.07821229,"width":0.0056515955,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.31881648,"top":0.07821229,"width":0.0056515955,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.37865692,"top":0.07821229,"width":0.0056515955,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.38397607,"top":0.07821229,"width":0.0056515955,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Review rate limit handli…, Editor Group 2","depth":28,"bounds":{"left":0.5578458,"top":0.047885075,"width":0.07014628,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXButton","text":"remote","depth":16,"bounds":{"left":0.0006648936,"top":0.98244214,"width":0.010638298,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...","depth":16,"bounds":{"left":0.012965426,"top":0.98244214,"width":0.084773935,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.013962766,"top":0.9848364,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JY-20725-handle-HS-search-rate-limit*","depth":17,"bounds":{"left":0.019281914,"top":0.9856345,"width":0.0774601,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"app (Git) - Synchronize Changes","depth":16,"bounds":{"left":0.09740692,"top":0.98244214,"width":0.0076462766,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Errors: 6, Warnings: 11, Infos: 2","depth":16,"bounds":{"left":0.107380316,"top":0.98244214,"width":0.03523936,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.109042555,"top":0.9848364,"width":0.0056515955,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"6","depth":17,"bounds":{"left":0.1143617,"top":0.9856345,"width":0.004986702,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.11934841,"top":0.9848364,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"11","depth":17,"bounds":{"left":0.124667555,"top":0.9856345,"width":0.00731383,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.13164894,"top":0.9848364,"width":0.0056515955,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":17,"bounds":{"left":0.13696809,"top":0.9856345,"width":0.0039893617,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Notifications","depth":16,"bounds":{"left":0.9886968,"top":0.98244214,"width":0.010638298,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"key, PHP extension: Premium features not active.","depth":16,"bounds":{"left":0.9790558,"top":0.98244214,"width":0.008643617,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"8.3, Language Level: 8.3","depth":16,"bounds":{"left":0.9674202,"top":0.98244214,"width":0.009640957,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sign In","depth":16,"bounds":{"left":0.9428192,"top":0.98244214,"width":0.022938829,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.9444814,"top":0.9848364,"width":0.0056515955,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Sign In","depth":17,"bounds":{"left":0.94980055,"top":0.9856345,"width":0.014295213,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"PHP","depth":16,"bounds":{"left":0.92952126,"top":0.98244214,"width":0.011635638,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"LF","depth":16,"bounds":{"left":0.91988033,"top":0.98244214,"width":0.007978723,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"UTF-8","depth":16,"bounds":{"left":0.90226066,"top":0.98244214,"width":0.015625,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Spaces: 4","depth":16,"bounds":{"left":0.87832445,"top":0.98244214,"width":0.022273935,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Ln 180, Col 1","depth":16,"bounds":{"left":0.84773934,"top":0.98244214,"width":0.028922873,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Diff editor","depth":12,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Clear","depth":12,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Review rate limit handling for HubSpot job queue","depth":19,"bounds":{"left":0.56017286,"top":0.08060654,"width":0.099734046,"height":0.022346368},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Session history","depth":19,"bounds":{"left":0.9780585,"top":0.08060654,"width":0.00930851,"height":0.022346368},"on_screen":true,"help_text":"Session history","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New session","depth":19,"bounds":{"left":0.9886968,"top":0.08060654,"width":0.00930851,"height":0.022346368},"on_screen":true,"help_text":"New session","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Message actions","depth":24,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"RateLimitException.php#9-9","depth":23,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"RateLimitException.php#9-9","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Reveiw the diff. Mostly","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Jobs/Crm/MatchActivityCrmData.php","depth":26,"on_screen":false,"help_text":"Open app/Jobs/Crm/MatchActivityCrmData.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Exceptions/RateLimitException.php","depth":26,"on_screen":false,"help_text":"Open app/Exceptions/RateLimitException.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Jobs/Middleware/HandleHubspotRateLimit.php","depth":26,"on_screen":false,"help_text":"Open app/Jobs/Middleware/HandleHubspotRateLimit.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Services/Crm/Hubspot/Client.php","depth":26,"on_screen":false,"help_text":"Open app/Services/Crm/Hubspot/Client.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"and","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php","depth":26,"on_screen":false,"help_text":"Open app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":". The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Thought for 5s","depth":23,"on_screen":false,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thought for 5s","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"I'll review the implementation carefully. Let me first check how","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is used elsewhere and look at the test files and","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"PaginationState","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":".","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find all usages of RateLimitException outside the changed files","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"RateLimitException\" /Users/lukas/jiminny/app/app --include=\"*.php\" | grep -v \"HandleHubspotRateLimit\\|MatchActivityCrmData\\|Client.php\\|RateLimitException.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception\n/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:17:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:68: RateLimitException |\n/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:15:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:58: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception\n/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:19:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:76: RateLimitException |\n/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:8:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:50: * @throws RateLimitException When rate limit is hit\n/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:195: // RateLimitException and other exceptions are re-thrown as-is","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"PaginationState.php","depth":24,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"PaginationState.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"HandleHubspotRateLimitTest.php","depth":24,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"HandleHubspotRateLimitTest.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check how RateLimitException is used in GenerateActionItemsJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"RateLimitException\\|LogicException\\|RuntimeException\" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -20","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find all catch blocks or instanceof checks for RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"catch.*RateLimitException\\|instanceof RateLimitException\" /Users/lukas/jiminny/app/app --include=\"*.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:11: * Job middleware that catches RateLimitException from HubSpot API calls\n/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:24: } catch (RateLimitException $e) {\n/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:149: if (! $e instanceof RateLimitException) {","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find all test references to RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"RateLimitException\" /Users/lukas/jiminny/app/tests --include=\"*.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:8:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:13:#[CoversClass(RateLimitException::class)]\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:14:class RateLimitExceptionTest extends TestCase\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:18: $exception = new RateLimitException();\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:28: $exception = new RateLimitException('Hubspot rate limit', 30, $previous);\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:52: $exception = new RateLimitException('test', $input);\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:10:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:49: public function testPropagatesNonRateLimitExceptions(): void\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:103: throw new RateLimitException('rate limited', $retryAfter);\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:150: throw new RateLimitException('rate limited', 1);","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check retry/failure handling in GenerateActionItemsJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"RateLimitException\\|retryUntil\\|backoff\\|maxExceptions\\|maxTries\\|release\\|failed\" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -30","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"13:use Jiminny\\Exceptions\\RateLimitException;\n51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception\n56: $this->release(30);","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check retry/failure handling in GenerateAiCallScoringJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"RateLimitException\\|retryUntil\\|backoff\\|maxExceptions\\|maxTries\\|release\\|failed\" /Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php | head -30","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"17:use Jiminny\\Exceptions\\RateLimitException;\n68: RateLimitException |\n75: $this->release(30);","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check retry config in MatchActivityCrmData","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"retryAfter\\|RETRY_WINDOW\\|retryUntil\\|maxTries\" /Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"34: private const int RETRY_WINDOW_MINUTES = 30;\n45: public function retryUntil(): \\DateTimeInterface\n47: return now()->addMinutes(self::RETRY_WINDOW_MINUTES);\n77: return self::RETRY_WINDOW_MINUTES * 60 + 60;","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check the cache key format","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"getRateLimitCacheKey\\|hubspot:ratelimit\" /Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Client.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"78: $cacheKey = $this->getRateLimitCacheKey();\n110: private function getRateLimitCacheKey(): string\n112: return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find other jobs that might use the rate limit middleware","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"class.*Middleware\\|HandleHubspotRateLimit\" /Users/lukas/jiminny/app/app/Jobs --include=\"*.php\" | grep -v \"HandleHubspotRateLimit.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:18:use Jiminny\\Jobs\\Middleware\\HandleHubspotRateLimit;\n/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:42: return [new HandleHubspotRateLimit()];","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"HubspotClientInterface.php","depth":24,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"HubspotClientInterface.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Thought for 73s","depth":23,"on_screen":false,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thought for 73s","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Now I have a complete picture. Here's my full analysis:","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"Review Summary","depth":22,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"Review Summary","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"RuntimeException vs LogicException — Safe ✓","depth":22,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"RuntimeException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"vs","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"LogicException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"— Safe ✓","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"The change is semantically correct and won't break anything.","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"LogicException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is for programmer errors (invalid arguments, contract violations). A rate limit from an external API is a runtime condition —","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RuntimeException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is the right parent. All callers catch","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"by name explicitly (union catches in","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"GenerateActionItemsJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"GenerateAiCallScoringJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"SummarizeTranscriptionJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"GenerateAiActivityTypeJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":") or check","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"instanceof RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"— none relies on the parent class type, so nothing breaks.","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"Issue 1 — Circuit breaker stores stale delay (most important bug)","depth":22,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"Issue 1 — Circuit breaker stores stale delay (most important bug)","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"Client.php:94","depth":23,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Client.php:94","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":23,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Redis::setex($cacheKey, $retryAfter, (string) $retryAfter);","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"The TTL is","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"$retryAfter","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"seconds, but the","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"stored value","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is also the original","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"$retryAfter","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":". If a second job reads this cache 20 seconds later, it throws","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RateLimitException(retryAfter=30)","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"and gets delayed 30 more seconds — even though only 10 remain. In a spike of 100 jobs, each subsequent job inflates its wait.","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Fix:","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"store the absolute expiry timestamp, reconstruct the remaining delay when reading:","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":23,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"// on 429:\nRedis::setex($cacheKey, $retryAfter, (string) (time() + $retryAfter));\n\n// in the cached-read branch:\n$remaining = max(1, (int) $cachedRetryAfter - time());\nthrow new RateLimitException('Hubspot rate limit (cached circuit-breaker)', $remaining);","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"Issue 2 — retryUntil() window may expire under sustained rate limiting","depth":22,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"Issue 2 —","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"retryUntil()","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"window may expire under sustained rate limiting","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"MatchActivityCrmData.php:45-47","depth":23,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"MatchActivityCrmData.php:45-47","depth":24,"on_screen":false,"role_description":"text"}]...
|
-4273933866795150843
|
-7101943217020692925
|
idle
|
accessibility
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 12 pending changes
12
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php
SaveTranscription.php
SetupLayout.php
SyncActivity.php
SyncFieldMetadata.php
SyncHubspotObjects.php
SyncLeads.php
SyncObjects.php
SyncOpportunitiesJob.php
SyncOpportunity.php
SyncProfileMetadata.php
SyncTeamFieldsJob.php
SyncTeamMetadata.php
UpdateOpportunitySpecifications.php
UpdateStage.php
DealRisks
Mailbox
MeetingBot
Middleware
HandleHubspotRateLimit.php
RateLimited.php
Streaming
Team
Telephony
User
BaseProcessingJob.php
DummyJob.php
ImportRecallAIRecordingsJob.php
ImportRemoteTrackJob.php
Job.php
JobDispatcher.php
JobDispatcherInterface.php
PurgeSoftDeletedOpportunityJob.php
SqsVisibilityControl.php
Listeners
Mail
Models
Activity
Ai
AskAnything
Calendar
Connection
Crm
Jobs
app
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
MySQL Section
MYSQL
MYSQL
MatchActivityCrmData.php, Editor Group 1
RateLimitException.php, Editor Group 1
HandleHubspotRateLimit.php, Editor Group 1
✻ [Claude Code] MatchActivityCrmDataTest.php (MatchActivityCrmDataTest.php), Editor Group 1
Client.php, Editor Group 1
HubspotPaginationService.php, Editor Group 1
Review rate limit handli…, Editor Group 2
remote
app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...
JY-20725-handle-HS-search-rate-limit*
app (Git) - Synchronize Changes
Errors: 6, Warnings: 11, Infos: 2
6
11
2
Notifications
key, PHP extension: Premium features not active.
8.3, Language Level: 8.3
Sign In
Sign In
PHP
LF
UTF-8
Spaces: 4
Ln 180, Col 1
Diff editor
Clear
Review rate limit handling for HubSpot job queue
Session history
New session
Message actions
RateLimitException.php#9-9
RateLimitException.php#9-9
Reveiw the diff. Mostly
@app/Jobs/Crm/MatchActivityCrmData.php
,
@app/Exceptions/RateLimitException.php
,
@app/Jobs/Middleware/HandleHubspotRateLimit.php
,
@app/Services/Crm/Hubspot/Client.php
and
@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php
. The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?
Thought for 5s
Thought for 5s
I'll review the implementation carefully. Let me first check how
RateLimitException
is used elsewhere and look at the test files and
PaginationState
.
Bash
Find all usages of RateLimitException outside the changed files
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/app --include="*.php" | grep -v "HandleHubspotRateLimit\|MatchActivityCrmData\|Client.php\|RateLimitException.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:17:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:68: RateLimitException |
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:15:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:58: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:19:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:76: RateLimitException |
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:50: * @throws RateLimitException When rate limit is hit
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:195: // RateLimitException and other exceptions are re-thrown as-is
Read
PaginationState.php
PaginationState.php
Read
HandleHubspotRateLimitTest.php
HandleHubspotRateLimitTest.php
Bash
Check how RateLimitException is used in GenerateActionItemsJob
IN
grep -rn "RateLimitException\|LogicException\|RuntimeException" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -20
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
Bash
Find all catch blocks or instanceof checks for RateLimitException
IN
grep -rn "catch.*RateLimitException\|instanceof RateLimitException" /Users/lukas/jiminny/app/app --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:11: * Job middleware that catches RateLimitException from HubSpot API calls
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:24: } catch (RateLimitException $e) {
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:149: if (! $e instanceof RateLimitException) {
Bash
Find all test references to RateLimitException
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/tests --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:13:#[CoversClass(RateLimitException::class)]
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:14:class RateLimitExceptionTest extends TestCase
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:18: $exception = new RateLimitException();
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:28: $exception = new RateLimitException('Hubspot rate limit', 30, $previous);
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:52: $exception = new RateLimitException('test', $input);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:10:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:49: public function testPropagatesNonRateLimitExceptions(): void
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:103: throw new RateLimitException('rate limited', $retryAfter);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:150: throw new RateLimitException('rate limited', 1);
Bash
Check retry/failure handling in GenerateActionItemsJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -30
Copy code to clipboard
OUT
13:use Jiminny\Exceptions\RateLimitException;
51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
56: $this->release(30);
Bash
Check retry/failure handling in GenerateAiCallScoringJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php | head -30
Copy code to clipboard
OUT
17:use Jiminny\Exceptions\RateLimitException;
68: RateLimitException |
75: $this->release(30);
Bash
Check retry config in MatchActivityCrmData
IN
grep -n "retryAfter\|RETRY_WINDOW\|retryUntil\|maxTries" /Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php
Copy code to clipboard
OUT
34: private const int RETRY_WINDOW_MINUTES = 30;
45: public function retryUntil(): \DateTimeInterface
47: return now()->addMinutes(self::RETRY_WINDOW_MINUTES);
77: return self::RETRY_WINDOW_MINUTES * 60 + 60;
Bash
Check the cache key format
IN
grep -n "getRateLimitCacheKey\|hubspot:ratelimit" /Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Client.php
Copy code to clipboard
OUT
78: $cacheKey = $this->getRateLimitCacheKey();
110: private function getRateLimitCacheKey(): string
112: return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());
Bash
Find other jobs that might use the rate limit middleware
IN
grep -rn "class.*Middleware\|HandleHubspotRateLimit" /Users/lukas/jiminny/app/app/Jobs --include="*.php" | grep -v "HandleHubspotRateLimit.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:18:use Jiminny\Jobs\Middleware\HandleHubspotRateLimit;
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:42: return [new HandleHubspotRateLimit()];
Read
HubspotClientInterface.php
HubspotClientInterface.php
Thought for 73s
Thought for 73s
Now I have a complete picture. Here's my full analysis:
Review Summary
Review Summary
RuntimeException vs LogicException — Safe ✓
RuntimeException
vs
LogicException
— Safe ✓
The change is semantically correct and won't break anything.
LogicException
is for programmer errors (invalid arguments, contract violations). A rate limit from an external API is a runtime condition —
RuntimeException
is the right parent. All callers catch
RateLimitException
by name explicitly (union catches in
GenerateActionItemsJob
,
GenerateAiCallScoringJob
,
SummarizeTranscriptionJob
,
GenerateAiActivityTypeJob
) or check
instanceof RateLimitException
— none relies on the parent class type, so nothing breaks.
Issue 1 — Circuit breaker stores stale delay (most important bug)
Issue 1 — Circuit breaker stores stale delay (most important bug)
Client.php:94
Client.php:94
Copy code to clipboard
Redis::setex($cacheKey, $retryAfter, (string) $retryAfter);
The TTL is
$retryAfter
seconds, but the
stored value
is also the original
$retryAfter
. If a second job reads this cache 20 seconds later, it throws
RateLimitException(retryAfter=30)
and gets delayed 30 more seconds — even though only 10 remain. In a spike of 100 jobs, each subsequent job inflates its wait.
Fix:
store the absolute expiry timestamp, reconstruct the remaining delay when reading:
Copy code to clipboard
// on 429:
Redis::setex($cacheKey, $retryAfter, (string) (time() + $retryAfter));
// in the cached-read branch:
$remaining = max(1, (int) $cachedRetryAfter - time());
throw new RateLimitException('Hubspot rate limit (cached circuit-breaker)', $remaining);
Issue 2 — retryUntil() window may expire under sustained rate limiting
Issue 2 —
retryUntil()
window may expire under sustained rate limiting
MatchActivityCrmData.php:45-47
MatchActivityCrmData.php:45-47...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
19561
|
837
|
11
|
2026-05-11T13:04:43.863316+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778504683863_m2.jpg...
|
Code
|
✻ [Claude Code] MatchActivityCrmDataTest.php (Matc ✻ [Claude Code] MatchActivityCrmDataTest.php (MatchActivityCrmDataTest.php) — app...
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 12 pending changes
12
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php
SaveTranscription.php
SetupLayout.php
SyncActivity.php
SyncFieldMetadata.php
SyncHubspotObjects.php
SyncLeads.php
SyncObjects.php
SyncOpportunitiesJob.php
SyncOpportunity.php
SyncProfileMetadata.php
SyncTeamFieldsJob.php
SyncTeamMetadata.php
UpdateOpportunitySpecifications.php
UpdateStage.php
DealRisks
Mailbox
MeetingBot
Middleware
HandleHubspotRateLimit.php
RateLimited.php
Streaming
Team
Telephony
User
BaseProcessingJob.php
DummyJob.php
ImportRecallAIRecordingsJob.php
ImportRemoteTrackJob.php
Job.php
JobDispatcher.php
JobDispatcherInterface.php
PurgeSoftDeletedOpportunityJob.php
SqsVisibilityControl.php
Listeners
Mail
Models
Activity
Ai
AskAnything
Calendar
Connection
Crm
Jobs
app
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
MySQL Section
MYSQL
MYSQL
MatchActivityCrmData.php, Editor Group 1
RateLimitException.php, Editor Group 1
HandleHubspotRateLimit.php, Editor Group 1
✻ [Claude Code] MatchActivityCrmDataTest.php (MatchActivityCrmDataTest.php), Editor Group 1
Client.php, Editor Group 1
HubspotPaginationService.php, Editor Group 1
Review rate limit handli…, Editor Group 2
remote
app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...
JY-20725-handle-HS-search-rate-limit*
app (Git) - Synchronize Changes
Errors: 6, Warnings: 11, Infos: 2
6
11
2
Notifications
key, PHP extension: Premium features not active.
8.3, Language Level: 8.3
Sign In
Sign In
PHP
LF
UTF-8
Spaces: 4
Ln 180, Col 1
Diff editor
Clear
Review rate limit handling for HubSpot job queue
Session history
New session
Message actions
RateLimitException.php#9-9
RateLimitException.php#9-9
Reveiw the diff. Mostly
@app/Jobs/Crm/MatchActivityCrmData.php
,
@app/Exceptions/RateLimitException.php
,
@app/Jobs/Middleware/HandleHubspotRateLimit.php
,
@app/Services/Crm/Hubspot/Client.php
and
@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php
. The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?
Thought for 5s
Thought for 5s
I'll review the implementation carefully. Let me first check how
RateLimitException
is used elsewhere and look at the test files and
PaginationState
.
Bash
Find all usages of RateLimitException outside the changed files
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/app --include="*.php" | grep -v "HandleHubspotRateLimit\|MatchActivityCrmData\|Client.php\|RateLimitException.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:17:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:68: RateLimitException |
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:15:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:58: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:19:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:76: RateLimitException |
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:50: * @throws RateLimitException When rate limit is hit
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:195: // RateLimitException and other exceptions are re-thrown as-is
Read
PaginationState.php
PaginationState.php
Read
HandleHubspotRateLimitTest.php
HandleHubspotRateLimitTest.php
Bash
Check how RateLimitException is used in GenerateActionItemsJob
IN
grep -rn "RateLimitException\|LogicException\|RuntimeException" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -20
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
Bash
Find all catch blocks or instanceof checks for RateLimitException
IN
grep -rn "catch.*RateLimitException\|instanceof RateLimitException" /Users/lukas/jiminny/app/app --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:11: * Job middleware that catches RateLimitException from HubSpot API calls
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:24: } catch (RateLimitException $e) {
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:149: if (! $e instanceof RateLimitException) {
Bash
Find all test references to RateLimitException
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/tests --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:13:#[CoversClass(RateLimitException::class)]
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:14:class RateLimitExceptionTest extends TestCase
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:18: $exception = new RateLimitException();
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:28: $exception = new RateLimitException('Hubspot rate limit', 30, $previous);
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:52: $exception = new RateLimitException('test', $input);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:10:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:49: public function testPropagatesNonRateLimitExceptions(): void
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:103: throw new RateLimitException('rate limited', $retryAfter);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:150: throw new RateLimitException('rate limited', 1);
Bash
Check retry/failure handling in GenerateActionItemsJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -30
Copy code to clipboard
OUT
13:use Jiminny\Exceptions\RateLimitException;
51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
56: $this->release(30);
Bash
Check retry/failure handling in GenerateAiCallScoringJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php | head -30
Copy code to clipboard
OUT
17:use Jiminny\Exceptions\RateLimitException;
68: RateLimitException |
75: $this->release(30);
Bash
Check retry config in MatchActivityCrmData
IN
grep -n "retryAfter\|RETRY_WINDOW\|retryUntil\|maxTries" /Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php
Copy code to clipboard
OUT
34: private const int RETRY_WINDOW_MINUTES = 30;
45: public function retryUntil(): \DateTimeInterface
47: return now()->addMinutes(self::RETRY_WINDOW_MINUTES);
77: return self::RETRY_WINDOW_MINUTES * 60 + 60;
Bash
Check the cache key format
IN
grep -n "getRateLimitCacheKey\|hubspot:ratelimit" /Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Client.php
Copy code to clipboard
OUT
78: $cacheKey = $this->getRateLimitCacheKey();
110: private function getRateLimitCacheKey(): string
112: return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());
Bash
Find other jobs that might use the rate limit middleware
IN
grep -rn "class.*Middleware\|HandleHubspotRateLimit" /Users/lukas/jiminny/app/app/Jobs --include="*.php" | grep -v "HandleHubspotRateLimit.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:18:use Jiminny\Jobs\Middleware\HandleHubspotRateLimit;
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:42: return [new HandleHubspotRateLimit()];
Read
HubspotClientInterface.php
HubspotClientInterface.php
Thought for 73s
Thought for 73s
Now I have a complete picture. Here's my full analysis:
Review Summary
Review Summary
RuntimeException vs LogicException — Safe ✓
RuntimeException
vs
LogicException
— Safe ✓
The change is semantically correct and won't break anything.
LogicException
is for programmer errors (invalid arguments, contract violations). A rate limit from an external API is a runtime condition —
RuntimeException
is the right parent. All callers catch
RateLimitException
by name explicitly (union catches in
GenerateActionItemsJob
,
GenerateAiCallScoringJob
,
SummarizeTranscriptionJob
,
GenerateAiActivityTypeJob
) or check
instanceof RateLimitException
— none relies on the parent class type, so nothing breaks.
Issue 1 — Circuit breaker stores stale delay (most important bug)
Issue 1 — Circuit breaker stores stale delay (most important bug)
Client.php:94
Client.php:94
Copy code to clipboard
Redis::setex($cacheKey, $retryAfter, (string) $retryAfter);
The TTL is
$retryAfter
seconds, but the
stored value
is also the original
$retryAfter
. If a second job reads this cache 20 seconds later, it throws
RateLimitException(retryAfter=30)
and gets delayed 30 more seconds — even though only 10 remain. In a spike of 100 jobs, each subsequent job inflates its wait.
Fix:
store the absolute expiry timestamp, reconstruct the remaining delay when reading:
Copy code to clipboard
// on 429:
Redis::setex($cacheKey, $retryAfter, (string) (time() + $retryAfter));
// in the cached-read branch:
$remaining = max(1, (int) $cachedRetryAfter - time());
throw new RateLimitException('Hubspot rate limit (cached circuit-breaker)', $remaining);
Issue 2 — retryUntil() window may expire under sustained rate limiting
Issue 2 —
retryUntil()
window may expire under sustained rate limiting
MatchActivityCrmData.php:45-47
MatchActivityCrmData.php:45-47
retryUntil()
is calculated as
now() + 30 min
at
dispatch time
and stored in the job payload. With
MAX_RETRY_DELAY = 600s
, you only get ~3 rate-limit-triggered releases before the 30-minute window closes and the job is permanently failed. For a heavy 429 spike (daily limit, parsed as 600s), this can easily happen.
Consider increasing
RETRY_WINDOW_MINUTES
to 60 or more, or making it configurable. The
uniqueFor()
value should be updated to match.
Issue 3 — Only search() uses the circuit breaker, but other methods can still hit 429
Issue 3 — Only
search()
uses the circuit breaker, but other methods can still hit 429
Client.php:76-108
Client.php:76-108
executeRequest()
is only called from
search()
. Methods like
getOpportunityById()
,
batchReadObjects()
,
getContactByEmail()
bypass it entirely. If HubSpot's 429 is account-wide (not search-endpoint-specific), those methods will keep firing even while the circuit breaker is supposedly open. This is likely fine because the search endpoint has its own tighter quota (5 RPS), but it's worth being explicit in a comment.
Issue 4 — object $job type in middleware has no compile-time safety
Issue 4 —
object $job
type in middleware has no compile-time safety
HandleHubspotRateLimit.php:20
HandleHubspotRateLimit.php:20
Copy code to clipboard
public function handle(object $job, callable $next): void
Calling
$job->attempts()
and
$job->release()
on
object
will work at runtime since Laravel always passes jobs that use
InteractsWithQueue
, but PHPStan/psalm won't verify this and it could silently break in tests with bare mocks (as your test does use a
Job
mock that has
attempts()
— so the test is fine, but the real type contract is invisible). Minor, but worth tightening to
\Illuminate\Contracts\Queue\Job
.
What works well ✓
What works well ✓
RateLimitException
is caught by the middleware
before
it increments
maxExceptions
, so rate-limit releases don't consume the 3-exception budget for real failures.
The middleware's jitter (
random_int(0, 5)
) prevents thundering herd on release.
The log-sampling logic (
attempts <= 3 || attempts % 10 === 0
) keeps logs useful without flooding.
ShouldBeUnique
+
uniqueFor()
correctly prevents duplicate jobs queuing up during the rate-limit wait window.
RateLimitException
propagates cleanly through the DB transaction (rolled back), then through the job catch block (logged conditionally), then to the middleware which handles it.
The pagination service re-throws
RateLimitException
as-is and resets pagination state on the next job attempt — safe because offset restarts from 0....
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Explorer (⇧⌘E)","depth":19,"bounds":{"left":0.0,"top":0.047885075,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":true},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.057462092,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Search (⇧⌘F)","depth":19,"bounds":{"left":0.0,"top":0.08619314,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.09577015,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Source Control (⌃⇧G) - 12 pending changes","depth":19,"bounds":{"left":0.0,"top":0.1245012,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.13407822,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"12","depth":22,"bounds":{"left":0.00831117,"top":0.1452514,"width":0.003656915,"height":0.008778931},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.008643617,"top":0.14604948,"width":0.0016622341,"height":0.007980846}},{"char_start":1,"char_count":1,"bounds":{"left":0.009973404,"top":0.14604948,"width":0.0023271276,"height":0.007980846}}],"role_description":"text"},{"role":"AXRadioButton","text":"Run and Debug (⇧⌘D)","depth":19,"bounds":{"left":0.0,"top":0.16280925,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.17238627,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Remote Explorer","depth":19,"bounds":{"left":0.0,"top":0.20111732,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.21069433,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Extensions (⇧⌘X) - 2 require update","depth":19,"bounds":{"left":0.0,"top":0.23942538,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.2490024,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":22,"bounds":{"left":0.009640957,"top":0.2601756,"width":0.0019946808,"height":0.008778931},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Testing","depth":19,"bounds":{"left":0.0,"top":0.27773345,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.28731045,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Claude Code","depth":19,"bounds":{"left":0.0,"top":0.3160415,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"EXPLORER","depth":17,"bounds":{"left":0.022606382,"top":0.047885075,"width":0.018949468,"height":0.02793296},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"EXPLORER","depth":18,"bounds":{"left":0.022606382,"top":0.056664005,"width":0.018949468,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.022606382,"top":0.056664005,"width":0.0023271276,"height":0.0103751}},{"char_start":1,"char_count":7,"bounds":{"left":0.024933511,"top":0.056664005,"width":0.01662234,"height":0.0103751}}],"role_description":"text"},{"role":"AXButton","text":"Explorer Section: app","depth":21,"bounds":{"left":0.015957447,"top":0.07581804,"width":0.09940159,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.07821229,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"Explorer Section: app","depth":22,"bounds":{"left":0.022606382,"top":0.07581804,"width":0.0076462766,"height":0.017557861},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"APP","depth":23,"bounds":{"left":0.022606382,"top":0.079010375,"width":0.0076462766,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.0933759,"width":0.0063164895,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CheckAndRetryRemoteMatch.php","depth":27,"bounds":{"left":0.033909574,"top":0.0933759,"width":0.068484046,"height":0.011173184},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.0933759,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":27,"bounds":{"left":0.036901597,"top":0.0933759,"width":0.06549202,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.10853951,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateFollowupActivity.php","depth":27,"bounds":{"left":0.033909574,"top":0.110135674,"width":0.054853722,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.11093376,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":25,"bounds":{"left":0.036901597,"top":0.11093376,"width":0.051861703,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.12609737,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateNotes.php","depth":27,"bounds":{"left":0.033909574,"top":0.12769353,"width":0.034242023,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.12849163,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.036901597,"top":0.12849163,"width":0.03125,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.14365523,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivitiesToNewOpportunity.php","depth":27,"bounds":{"left":0.033909574,"top":0.1452514,"width":0.07712766,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.14604948,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":34,"bounds":{"left":0.037898935,"top":0.14604948,"width":0.07347074,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.16121309,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivityCrmData.php","depth":27,"bounds":{"left":0.033909574,"top":0.16280925,"width":0.054521278,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.16360734,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":23,"bounds":{"left":0.037898935,"top":0.16360734,"width":0.050531916,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.17877094,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"NoteObject.php","depth":27,"bounds":{"left":0.033909574,"top":0.18036711,"width":0.031914894,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.1811652,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":13,"bounds":{"left":0.03723404,"top":0.1811652,"width":0.028922873,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.1963288,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SaveActivity.php","depth":27,"bounds":{"left":0.033909574,"top":0.19792499,"width":0.03324468,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.19872306,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":15,"bounds":{"left":0.03656915,"top":0.19872306,"width":0.030585106,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.21388668,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SaveTranscription.php","depth":27,"bounds":{"left":0.033909574,"top":0.21548285,"width":0.04454787,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.21628092,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":20,"bounds":{"left":0.03656915,"top":0.21628092,"width":0.042220745,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.23144454,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SetupLayout.php","depth":27,"bounds":{"left":0.033909574,"top":0.2330407,"width":0.034242023,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.23383878,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.03656915,"top":0.23383878,"width":0.031914894,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.2490024,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncActivity.php","depth":27,"bounds":{"left":0.033909574,"top":0.25059855,"width":0.03357713,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.25139666,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":15,"bounds":{"left":0.03656915,"top":0.25139666,"width":0.030917553,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.26656026,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncFieldMetadata.php","depth":27,"bounds":{"left":0.033909574,"top":0.26815644,"width":0.047539894,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.26895452,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":20,"bounds":{"left":0.03656915,"top":0.26895452,"width":0.04488032,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.28411812,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncHubspotObjects.php","depth":27,"bounds":{"left":0.033909574,"top":0.2857143,"width":0.051861703,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.28651237,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":21,"bounds":{"left":0.03656915,"top":0.28651237,"width":0.04920213,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.30167598,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncLeads.php","depth":27,"bounds":{"left":0.033909574,"top":0.30327216,"width":0.030917553,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.30407023,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":12,"bounds":{"left":0.03656915,"top":0.30407023,"width":0.02825798,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.31923383,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncObjects.php","depth":27,"bounds":{"left":0.033909574,"top":0.32083002,"width":0.034574468,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.3216281,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.03656915,"top":0.3216281,"width":0.031914894,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.3367917,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncOpportunitiesJob.php","depth":27,"bounds":{"left":0.033909574,"top":0.33838788,"width":0.053856384,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.33918595,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":23,"bounds":{"left":0.03656915,"top":0.33918595,"width":0.05119681,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.35434955,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncOpportunity.php","depth":27,"bounds":{"left":0.033909574,"top":0.35594574,"width":0.04288564,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.3567438,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":18,"bounds":{"left":0.03656915,"top":0.3567438,"width":0.040226065,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.3719074,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncProfileMetadata.php","depth":27,"bounds":{"left":0.033909574,"top":0.3735036,"width":0.05086436,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.37430167,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":22,"bounds":{"left":0.03656915,"top":0.37430167,"width":0.048204787,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.38946527,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncTeamFieldsJob.php","depth":27,"bounds":{"left":0.033909574,"top":0.39106146,"width":0.04886968,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.39185953,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":20,"bounds":{"left":0.03656915,"top":0.39185953,"width":0.046210106,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.40702313,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncTeamMetadata.php","depth":27,"bounds":{"left":0.033909574,"top":0.4086193,"width":0.048537236,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.4094174,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":19,"bounds":{"left":0.03656915,"top":0.4094174,"width":0.045877658,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.424581,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"UpdateOpportunitySpecifications.php","depth":27,"bounds":{"left":0.033909574,"top":0.42617717,"width":0.076130316,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.42697525,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":34,"bounds":{"left":0.03723404,"top":0.42697525,"width":0.0731383,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.44213888,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"UpdateStage.php","depth":27,"bounds":{"left":0.033909574,"top":0.44373503,"width":0.03523936,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.4445331,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.03723404,"top":0.4445331,"width":0.032247342,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.4612929,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"DealRisks","depth":27,"bounds":{"left":0.03125,"top":0.4612929,"width":0.019614361,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.46209097,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":8,"bounds":{"left":0.034574468,"top":0.46209097,"width":0.016289894,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.47885075,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mailbox","depth":27,"bounds":{"left":0.03125,"top":0.47885075,"width":0.015625,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.47964883,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":6,"bounds":{"left":0.03523936,"top":0.47964883,"width":0.011635638,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.4964086,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MeetingBot","depth":27,"bounds":{"left":0.03125,"top":0.4964086,"width":0.023271276,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.49720672,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":9,"bounds":{"left":0.03523936,"top":0.49720672,"width":0.019281914,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.5139665,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Middleware","depth":27,"bounds":{"left":0.03125,"top":0.5139665,"width":0.023271276,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.51476455,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":9,"bounds":{"left":0.03523936,"top":0.51476455,"width":0.019281914,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.52992815,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"HandleHubspotRateLimit.php","depth":27,"bounds":{"left":0.033909574,"top":0.53152436,"width":0.059175532,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.5323224,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":25,"bounds":{"left":0.03723404,"top":0.5323224,"width":0.05618351,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.547486,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"RateLimited.php","depth":27,"bounds":{"left":0.033909574,"top":0.5490822,"width":0.032912236,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.54988027,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.036901597,"top":0.54988027,"width":0.029920213,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.5666401,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Streaming","depth":27,"bounds":{"left":0.03125,"top":0.5666401,"width":0.020611702,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.5674381,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":8,"bounds":{"left":0.033909574,"top":0.5674381,"width":0.017952127,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.58419794,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Team","depth":27,"bounds":{"left":0.03125,"top":0.58419794,"width":0.010970744,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.584996,"width":0.0023271276,"height":0.011971269}},{"char_start":1,"char_count":3,"bounds":{"left":0.03357713,"top":0.584996,"width":0.008643617,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.6017558,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Telephony","depth":27,"bounds":{"left":0.03125,"top":0.6017558,"width":0.020611702,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.60255384,"width":0.0023271276,"height":0.011971269}},{"char_start":1,"char_count":8,"bounds":{"left":0.03357713,"top":0.60255384,"width":0.018284574,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.61931366,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"User","depth":27,"bounds":{"left":0.03125,"top":0.61931366,"width":0.00930851,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.6201117,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":3,"bounds":{"left":0.034574468,"top":0.6201117,"width":0.0063164895,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.63527536,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"BaseProcessingJob.php","depth":27,"bounds":{"left":0.03125,"top":0.6368715,"width":0.048537236,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.63766956,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":20,"bounds":{"left":0.034242023,"top":0.63766956,"width":0.045545213,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.6528332,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"DummyJob.php","depth":27,"bounds":{"left":0.03125,"top":0.6544294,"width":0.03158245,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.6552275,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":11,"bounds":{"left":0.034574468,"top":0.6552275,"width":0.02825798,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.6703911,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"ImportRecallAIRecordingsJob.php","depth":27,"bounds":{"left":0.03125,"top":0.67198724,"width":0.068484046,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.67278534,"width":0.0013297872,"height":0.011971269}},{"char_start":1,"char_count":30,"bounds":{"left":0.032579787,"top":0.67278534,"width":0.06715426,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.68794894,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"ImportRemoteTrackJob.php","depth":27,"bounds":{"left":0.03125,"top":0.6895451,"width":0.055518616,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.6903432,"width":0.0013297872,"height":0.011971269}},{"char_start":1,"char_count":23,"bounds":{"left":0.032579787,"top":0.6903432,"width":0.054521278,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.7055068,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Job.php","depth":27,"bounds":{"left":0.03125,"top":0.70710295,"width":0.016289894,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.70790106,"width":0.0023271276,"height":0.011971269}},{"char_start":1,"char_count":6,"bounds":{"left":0.03357713,"top":0.70790106,"width":0.014295213,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.72306466,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JobDispatcher.php","depth":27,"bounds":{"left":0.03125,"top":0.7246608,"width":0.037898935,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.7254589,"width":0.0023271276,"height":0.011971269}},{"char_start":1,"char_count":16,"bounds":{"left":0.03357713,"top":0.7254589,"width":0.035904255,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.7406225,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JobDispatcherInterface.php","depth":27,"bounds":{"left":0.03125,"top":0.7422187,"width":0.05618351,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.7430168,"width":0.0023271276,"height":0.011971269}},{"char_start":1,"char_count":25,"bounds":{"left":0.03357713,"top":0.7430168,"width":0.05418883,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.7581804,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"PurgeSoftDeletedOpportunityJob.php","depth":27,"bounds":{"left":0.03125,"top":0.75977653,"width":0.076130316,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.023936171,"top":0.77573824,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SqsVisibilityControl.php","depth":27,"bounds":{"left":0.03125,"top":0.7773344,"width":0.047872342,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.022273935,"top":0.79489225,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Listeners","depth":27,"bounds":{"left":0.028590426,"top":0.79489225,"width":0.018284574,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.022273935,"top":0.8124501,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mail","depth":27,"bounds":{"left":0.028590426,"top":0.8124501,"width":0.00831117,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.022273935,"top":0.830008,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Models","depth":27,"bounds":{"left":0.028590426,"top":0.830008,"width":0.01462766,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.8475658,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Activity","depth":27,"bounds":{"left":0.03125,"top":0.8475658,"width":0.014960106,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.8651237,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Ai","depth":27,"bounds":{"left":0.03125,"top":0.8651237,"width":0.0039893617,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.88268155,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"AskAnything","depth":27,"bounds":{"left":0.03125,"top":0.88268155,"width":0.025265958,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.9002394,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Calendar","depth":27,"bounds":{"left":0.03125,"top":0.9002394,"width":0.017952127,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.91779727,"width":0.005319149,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Connection","depth":27,"bounds":{"left":0.03125,"top":0.91779727,"width":0.022938829,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.13088587,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Crm","depth":27,"bounds":{"left":0.03125,"top":0.13088587,"width":0.00831117,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.022273935,"top":0.11332801,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Jobs","depth":27,"bounds":{"left":0.028590426,"top":0.11332801,"width":0.009640957,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.019614361,"top":0.09577015,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"app","depth":27,"bounds":{"left":0.025930852,"top":0.09577015,"width":0.0076462766,"height":0.011971269},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.10605053,"top":0.096568234,"width":0.004654255,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Outline Section","depth":21,"bounds":{"left":0.015957447,"top":0.92976856,"width":0.09940159,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.9321628,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"OUTLINE","depth":22,"bounds":{"left":0.022606382,"top":0.92976856,"width":0.01662234,"height":0.017557861},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"OUTLINE","depth":23,"bounds":{"left":0.022606382,"top":0.933759,"width":0.01662234,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Timeline Section","depth":21,"bounds":{"left":0.015957447,"top":0.9473264,"width":0.09940159,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.9497207,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"TIMELINE","depth":22,"bounds":{"left":0.022606382,"top":0.9473264,"width":0.01761968,"height":0.017557861},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"TIMELINE","depth":23,"bounds":{"left":0.022606382,"top":0.95131683,"width":0.01761968,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"MySQL Section","depth":21,"bounds":{"left":0.015957447,"top":0.9648843,"width":0.09940159,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.96727854,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"MYSQL","depth":22,"bounds":{"left":0.022606382,"top":0.9648843,"width":0.013297873,"height":0.017557861},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"MYSQL","depth":23,"bounds":{"left":0.022606382,"top":0.9688747,"width":0.013297873,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"MatchActivityCrmData.php, Editor Group 1","depth":28,"bounds":{"left":0.11569149,"top":0.047885075,"width":0.07480053,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"RateLimitException.php, Editor Group 1","depth":28,"bounds":{"left":0.19015957,"top":0.047885075,"width":0.06815159,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"HandleHubspotRateLimit.php, Editor Group 1","depth":28,"bounds":{"left":0.25797874,"top":0.047885075,"width":0.080119684,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✻ [Claude Code] MatchActivityCrmDataTest.php (MatchActivityCrmDataTest.php), Editor Group 1","depth":28,"bounds":{"left":0.33776596,"top":0.047885075,"width":0.12134308,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXRadioButton","text":"Client.php, Editor Group 1","depth":28,"bounds":{"left":0.45910904,"top":0.047885075,"width":0.016954787,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"HubspotPaginationService.php, Editor Group 1","depth":28,"on_screen":false,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.13264628,"top":0.07821229,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.14827128,"top":0.07821229,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.16755319,"top":0.07821229,"width":0.0056515955,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.18051861,"top":0.07821229,"width":0.0056515955,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.19581117,"top":0.07821229,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.20944148,"top":0.07821229,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.2244016,"top":0.07821229,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.23803191,"top":0.07821229,"width":0.0056515955,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.31349733,"top":0.07821229,"width":0.0056515955,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.31881648,"top":0.07821229,"width":0.0056515955,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.37865692,"top":0.07821229,"width":0.0056515955,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":29,"bounds":{"left":0.38397607,"top":0.07821229,"width":0.0056515955,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Review rate limit handli…, Editor Group 2","depth":28,"bounds":{"left":0.5578458,"top":0.047885075,"width":0.07014628,"height":0.02793296},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":false},{"role":"AXButton","text":"remote","depth":16,"bounds":{"left":0.0006648936,"top":0.98244214,"width":0.010638298,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...","depth":16,"bounds":{"left":0.012965426,"top":0.98244214,"width":0.084773935,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.013962766,"top":0.9848364,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"JY-20725-handle-HS-search-rate-limit*","depth":17,"bounds":{"left":0.019281914,"top":0.9856345,"width":0.0774601,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"app (Git) - Synchronize Changes","depth":16,"bounds":{"left":0.09740692,"top":0.98244214,"width":0.0076462766,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Errors: 6, Warnings: 11, Infos: 2","depth":16,"bounds":{"left":0.107380316,"top":0.98244214,"width":0.03523936,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.109042555,"top":0.9848364,"width":0.0056515955,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"6","depth":17,"bounds":{"left":0.1143617,"top":0.9856345,"width":0.004986702,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.11934841,"top":0.9848364,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"11","depth":17,"bounds":{"left":0.124667555,"top":0.9856345,"width":0.00731383,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.13164894,"top":0.9848364,"width":0.0056515955,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":17,"bounds":{"left":0.13696809,"top":0.9856345,"width":0.0039893617,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Notifications","depth":16,"bounds":{"left":0.9886968,"top":0.98244214,"width":0.010638298,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"key, PHP extension: Premium features not active.","depth":16,"bounds":{"left":0.9790558,"top":0.98244214,"width":0.008643617,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"8.3, Language Level: 8.3","depth":16,"bounds":{"left":0.9674202,"top":0.98244214,"width":0.009640957,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sign In","depth":16,"bounds":{"left":0.9428192,"top":0.98244214,"width":0.022938829,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":17,"bounds":{"left":0.9444814,"top":0.9848364,"width":0.0056515955,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Sign In","depth":17,"bounds":{"left":0.94980055,"top":0.9856345,"width":0.014295213,"height":0.011173184},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"PHP","depth":16,"bounds":{"left":0.92952126,"top":0.98244214,"width":0.011635638,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"LF","depth":16,"bounds":{"left":0.91988033,"top":0.98244214,"width":0.007978723,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"UTF-8","depth":16,"bounds":{"left":0.90226066,"top":0.98244214,"width":0.015625,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Spaces: 4","depth":16,"bounds":{"left":0.87832445,"top":0.98244214,"width":0.022273935,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Ln 180, Col 1","depth":16,"bounds":{"left":0.84773934,"top":0.98244214,"width":0.028922873,"height":0.01755786},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Diff editor","depth":12,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Clear","depth":12,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Review rate limit handling for HubSpot job queue","depth":19,"bounds":{"left":0.56017286,"top":0.08060654,"width":0.099734046,"height":0.022346368},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Session history","depth":19,"bounds":{"left":0.9780585,"top":0.08060654,"width":0.00930851,"height":0.022346368},"on_screen":true,"help_text":"Session history","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New session","depth":19,"bounds":{"left":0.9886968,"top":0.08060654,"width":0.00930851,"height":0.022346368},"on_screen":true,"help_text":"New session","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Message actions","depth":24,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"RateLimitException.php#9-9","depth":23,"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"RateLimitException.php#9-9","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Reveiw the diff. Mostly","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Jobs/Crm/MatchActivityCrmData.php","depth":26,"on_screen":false,"help_text":"Open app/Jobs/Crm/MatchActivityCrmData.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Exceptions/RateLimitException.php","depth":26,"on_screen":false,"help_text":"Open app/Exceptions/RateLimitException.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Jobs/Middleware/HandleHubspotRateLimit.php","depth":26,"on_screen":false,"help_text":"Open app/Jobs/Middleware/HandleHubspotRateLimit.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":",","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Services/Crm/Hubspot/Client.php","depth":26,"on_screen":false,"help_text":"Open app/Services/Crm/Hubspot/Client.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"and","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php","depth":26,"on_screen":false,"help_text":"Open app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":". The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?","depth":26,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Thought for 5s","depth":23,"on_screen":false,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thought for 5s","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"I'll review the implementation carefully. Let me first check how","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is used elsewhere and look at the test files and","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"PaginationState","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":".","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find all usages of RateLimitException outside the changed files","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"RateLimitException\" /Users/lukas/jiminny/app/app --include=\"*.php\" | grep -v \"HandleHubspotRateLimit\\|MatchActivityCrmData\\|Client.php\\|RateLimitException.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception\n/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:17:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:68: RateLimitException |\n/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:15:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:58: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception\n/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:19:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:76: RateLimitException |\n/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:8:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:50: * @throws RateLimitException When rate limit is hit\n/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:195: // RateLimitException and other exceptions are re-thrown as-is","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"PaginationState.php","depth":24,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"PaginationState.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"HandleHubspotRateLimitTest.php","depth":24,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"HandleHubspotRateLimitTest.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check how RateLimitException is used in GenerateActionItemsJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"RateLimitException\\|LogicException\\|RuntimeException\" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -20","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find all catch blocks or instanceof checks for RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"catch.*RateLimitException\\|instanceof RateLimitException\" /Users/lukas/jiminny/app/app --include=\"*.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:11: * Job middleware that catches RateLimitException from HubSpot API calls\n/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:24: } catch (RateLimitException $e) {\n/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:149: if (! $e instanceof RateLimitException) {","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find all test references to RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"RateLimitException\" /Users/lukas/jiminny/app/tests --include=\"*.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:8:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:13:#[CoversClass(RateLimitException::class)]\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:14:class RateLimitExceptionTest extends TestCase\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:18: $exception = new RateLimitException();\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:28: $exception = new RateLimitException('Hubspot rate limit', 30, $previous);\n/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:52: $exception = new RateLimitException('test', $input);\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:10:use Jiminny\\Exceptions\\RateLimitException;\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:49: public function testPropagatesNonRateLimitExceptions(): void\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:103: throw new RateLimitException('rate limited', $retryAfter);\n/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:150: throw new RateLimitException('rate limited', 1);","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check retry/failure handling in GenerateActionItemsJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"RateLimitException\\|retryUntil\\|backoff\\|maxExceptions\\|maxTries\\|release\\|failed\" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -30","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"13:use Jiminny\\Exceptions\\RateLimitException;\n51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception\n56: $this->release(30);","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check retry/failure handling in GenerateAiCallScoringJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"RateLimitException\\|retryUntil\\|backoff\\|maxExceptions\\|maxTries\\|release\\|failed\" /Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php | head -30","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"17:use Jiminny\\Exceptions\\RateLimitException;\n68: RateLimitException |\n75: $this->release(30);","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check retry config in MatchActivityCrmData","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"retryAfter\\|RETRY_WINDOW\\|retryUntil\\|maxTries\" /Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"34: private const int RETRY_WINDOW_MINUTES = 30;\n45: public function retryUntil(): \\DateTimeInterface\n47: return now()->addMinutes(self::RETRY_WINDOW_MINUTES);\n77: return self::RETRY_WINDOW_MINUTES * 60 + 60;","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Check the cache key format","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -n \"getRateLimitCacheKey\\|hubspot:ratelimit\" /Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Client.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"78: $cacheKey = $this->getRateLimitCacheKey();\n110: private function getRateLimitCacheKey(): string\n112: return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Bash","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Find other jobs that might use the rate limit middleware","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"IN","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"grep -rn \"class.*Middleware\\|HandleHubspotRateLimit\" /Users/lukas/jiminny/app/app/Jobs --include=\"*.php\" | grep -v \"HandleHubspotRateLimit.php\"","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":24,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"OUT","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:18:use Jiminny\\Jobs\\Middleware\\HandleHubspotRateLimit;\n/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:42: return [new HandleHubspotRateLimit()];","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Read","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"HubspotClientInterface.php","depth":24,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"HubspotClientInterface.php","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Thought for 73s","depth":23,"on_screen":false,"role_description":"disclosure triangle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Thought for 73s","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Now I have a complete picture. Here's my full analysis:","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"Review Summary","depth":22,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"Review Summary","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"RuntimeException vs LogicException — Safe ✓","depth":22,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"RuntimeException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"vs","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"LogicException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"— Safe ✓","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"The change is semantically correct and won't break anything.","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"LogicException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is for programmer errors (invalid arguments, contract violations). A rate limit from an external API is a runtime condition —","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RuntimeException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is the right parent. All callers catch","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"by name explicitly (union catches in","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"GenerateActionItemsJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"GenerateAiCallScoringJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"SummarizeTranscriptionJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"GenerateAiActivityTypeJob","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":") or check","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"instanceof RateLimitException","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"— none relies on the parent class type, so nothing breaks.","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"Issue 1 — Circuit breaker stores stale delay (most important bug)","depth":22,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"Issue 1 — Circuit breaker stores stale delay (most important bug)","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"Client.php:94","depth":23,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Client.php:94","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":23,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Redis::setex($cacheKey, $retryAfter, (string) $retryAfter);","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"The TTL is","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"$retryAfter","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"seconds, but the","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"stored value","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is also the original","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"$retryAfter","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":". If a second job reads this cache 20 seconds later, it throws","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RateLimitException(retryAfter=30)","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"and gets delayed 30 more seconds — even though only 10 remain. In a spike of 100 jobs, each subsequent job inflates its wait.","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Fix:","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"store the absolute expiry timestamp, reconstruct the remaining delay when reading:","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":23,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"// on 429:\nRedis::setex($cacheKey, $retryAfter, (string) (time() + $retryAfter));\n\n// in the cached-read branch:\n$remaining = max(1, (int) $cachedRetryAfter - time());\nthrow new RateLimitException('Hubspot rate limit (cached circuit-breaker)', $remaining);","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"Issue 2 — retryUntil() window may expire under sustained rate limiting","depth":22,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"Issue 2 —","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"retryUntil()","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"window may expire under sustained rate limiting","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"MatchActivityCrmData.php:45-47","depth":23,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"MatchActivityCrmData.php:45-47","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"retryUntil()","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is calculated as","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"now() + 30 min","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"at","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"dispatch time","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"and stored in the job payload. With","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"MAX_RETRY_DELAY = 600s","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":", you only get ~3 rate-limit-triggered releases before the 30-minute window closes and the job is permanently failed. For a heavy 429 spike (daily limit, parsed as 600s), this can easily happen.","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Consider increasing","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RETRY_WINDOW_MINUTES","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"to 60 or more, or making it configurable. The","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"uniqueFor()","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"value should be updated to match.","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"Issue 3 — Only search() uses the circuit breaker, but other methods can still hit 429","depth":22,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"Issue 3 — Only","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"search()","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"uses the circuit breaker, but other methods can still hit 429","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"Client.php:76-108","depth":23,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Client.php:76-108","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"executeRequest()","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is only called from","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"search()","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":". Methods like","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"getOpportunityById()","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"batchReadObjects()","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":",","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"getContactByEmail()","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"bypass it entirely. If HubSpot's 429 is account-wide (not search-endpoint-specific), those methods will keep firing even while the circuit breaker is supposedly open. This is likely fine because the search endpoint has its own tighter quota (5 RPS), but it's worth being explicit in a comment.","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"Issue 4 — object $job type in middleware has no compile-time safety","depth":22,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"Issue 4 —","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"object $job","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"type in middleware has no compile-time safety","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXLink","text":"HandleHubspotRateLimit.php:20","depth":23,"on_screen":false,"role_description":"link","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"HandleHubspotRateLimit.php:20","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Copy code to clipboard","depth":23,"on_screen":false,"help_text":"Copy code","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"public function handle(object $job, callable $next): void","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Calling","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"$job->attempts()","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"and","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"$job->release()","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"on","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"object","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"will work at runtime since Laravel always passes jobs that use","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"InteractsWithQueue","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":", but PHPStan/psalm won't verify this and it could silently break in tests with bare mocks (as your test does use a","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"Job","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"mock that has","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"attempts()","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"— so the test is fine, but the real type contract is invisible). Minor, but worth tightening to","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"\\Illuminate\\Contracts\\Queue\\Job","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":".","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXHeading","text":"What works well ✓","depth":22,"on_screen":false,"role_description":"heading"},{"role":"AXStaticText","text":"What works well ✓","depth":23,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RateLimitException","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"is caught by the middleware","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"before","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"it increments","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"maxExceptions","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":", so rate-limit releases don't consume the 3-exception budget for real failures.","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"The middleware's jitter (","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"random_int(0, 5)","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":") prevents thundering herd on release.","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"The log-sampling logic (","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"attempts <= 3 || attempts % 10 === 0","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":") keeps logs useful without flooding.","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"ShouldBeUnique","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"+","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"uniqueFor()","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"correctly prevents duplicate jobs queuing up during the rate-limit wait window.","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RateLimitException","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"propagates cleanly through the DB transaction (rolled back), then through the job catch block (logged conditionally), then to the middleware which handles it.","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"The pagination service re-throws","depth":24,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"RateLimitException","depth":25,"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"as-is and resets pagination state on the next job attempt — safe because offset restarts from 0.","depth":24,"on_screen":false,"role_description":"text"}]...
|
1830854140246361547
|
-3030829895526869429
|
idle
|
accessibility
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 12 pending changes
12
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php
SaveTranscription.php
SetupLayout.php
SyncActivity.php
SyncFieldMetadata.php
SyncHubspotObjects.php
SyncLeads.php
SyncObjects.php
SyncOpportunitiesJob.php
SyncOpportunity.php
SyncProfileMetadata.php
SyncTeamFieldsJob.php
SyncTeamMetadata.php
UpdateOpportunitySpecifications.php
UpdateStage.php
DealRisks
Mailbox
MeetingBot
Middleware
HandleHubspotRateLimit.php
RateLimited.php
Streaming
Team
Telephony
User
BaseProcessingJob.php
DummyJob.php
ImportRecallAIRecordingsJob.php
ImportRemoteTrackJob.php
Job.php
JobDispatcher.php
JobDispatcherInterface.php
PurgeSoftDeletedOpportunityJob.php
SqsVisibilityControl.php
Listeners
Mail
Models
Activity
Ai
AskAnything
Calendar
Connection
Crm
Jobs
app
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
MySQL Section
MYSQL
MYSQL
MatchActivityCrmData.php, Editor Group 1
RateLimitException.php, Editor Group 1
HandleHubspotRateLimit.php, Editor Group 1
✻ [Claude Code] MatchActivityCrmDataTest.php (MatchActivityCrmDataTest.php), Editor Group 1
Client.php, Editor Group 1
HubspotPaginationService.php, Editor Group 1
Review rate limit handli…, Editor Group 2
remote
app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...
JY-20725-handle-HS-search-rate-limit*
app (Git) - Synchronize Changes
Errors: 6, Warnings: 11, Infos: 2
6
11
2
Notifications
key, PHP extension: Premium features not active.
8.3, Language Level: 8.3
Sign In
Sign In
PHP
LF
UTF-8
Spaces: 4
Ln 180, Col 1
Diff editor
Clear
Review rate limit handling for HubSpot job queue
Session history
New session
Message actions
RateLimitException.php#9-9
RateLimitException.php#9-9
Reveiw the diff. Mostly
@app/Jobs/Crm/MatchActivityCrmData.php
,
@app/Exceptions/RateLimitException.php
,
@app/Jobs/Middleware/HandleHubspotRateLimit.php
,
@app/Services/Crm/Hubspot/Client.php
and
@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php
. The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?
Thought for 5s
Thought for 5s
I'll review the implementation carefully. Let me first check how
RateLimitException
is used elsewhere and look at the test files and
PaginationState
.
Bash
Find all usages of RateLimitException outside the changed files
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/app --include="*.php" | grep -v "HandleHubspotRateLimit\|MatchActivityCrmData\|Client.php\|RateLimitException.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:17:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:68: RateLimitException |
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:15:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:58: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:19:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:76: RateLimitException |
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:50: * @throws RateLimitException When rate limit is hit
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:195: // RateLimitException and other exceptions are re-thrown as-is
Read
PaginationState.php
PaginationState.php
Read
HandleHubspotRateLimitTest.php
HandleHubspotRateLimitTest.php
Bash
Check how RateLimitException is used in GenerateActionItemsJob
IN
grep -rn "RateLimitException\|LogicException\|RuntimeException" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -20
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
Bash
Find all catch blocks or instanceof checks for RateLimitException
IN
grep -rn "catch.*RateLimitException\|instanceof RateLimitException" /Users/lukas/jiminny/app/app --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:11: * Job middleware that catches RateLimitException from HubSpot API calls
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:24: } catch (RateLimitException $e) {
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:149: if (! $e instanceof RateLimitException) {
Bash
Find all test references to RateLimitException
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/tests --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:13:#[CoversClass(RateLimitException::class)]
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:14:class RateLimitExceptionTest extends TestCase
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:18: $exception = new RateLimitException();
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:28: $exception = new RateLimitException('Hubspot rate limit', 30, $previous);
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:52: $exception = new RateLimitException('test', $input);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:10:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:49: public function testPropagatesNonRateLimitExceptions(): void
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:103: throw new RateLimitException('rate limited', $retryAfter);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:150: throw new RateLimitException('rate limited', 1);
Bash
Check retry/failure handling in GenerateActionItemsJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -30
Copy code to clipboard
OUT
13:use Jiminny\Exceptions\RateLimitException;
51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
56: $this->release(30);
Bash
Check retry/failure handling in GenerateAiCallScoringJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php | head -30
Copy code to clipboard
OUT
17:use Jiminny\Exceptions\RateLimitException;
68: RateLimitException |
75: $this->release(30);
Bash
Check retry config in MatchActivityCrmData
IN
grep -n "retryAfter\|RETRY_WINDOW\|retryUntil\|maxTries" /Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php
Copy code to clipboard
OUT
34: private const int RETRY_WINDOW_MINUTES = 30;
45: public function retryUntil(): \DateTimeInterface
47: return now()->addMinutes(self::RETRY_WINDOW_MINUTES);
77: return self::RETRY_WINDOW_MINUTES * 60 + 60;
Bash
Check the cache key format
IN
grep -n "getRateLimitCacheKey\|hubspot:ratelimit" /Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Client.php
Copy code to clipboard
OUT
78: $cacheKey = $this->getRateLimitCacheKey();
110: private function getRateLimitCacheKey(): string
112: return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());
Bash
Find other jobs that might use the rate limit middleware
IN
grep -rn "class.*Middleware\|HandleHubspotRateLimit" /Users/lukas/jiminny/app/app/Jobs --include="*.php" | grep -v "HandleHubspotRateLimit.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:18:use Jiminny\Jobs\Middleware\HandleHubspotRateLimit;
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:42: return [new HandleHubspotRateLimit()];
Read
HubspotClientInterface.php
HubspotClientInterface.php
Thought for 73s
Thought for 73s
Now I have a complete picture. Here's my full analysis:
Review Summary
Review Summary
RuntimeException vs LogicException — Safe ✓
RuntimeException
vs
LogicException
— Safe ✓
The change is semantically correct and won't break anything.
LogicException
is for programmer errors (invalid arguments, contract violations). A rate limit from an external API is a runtime condition —
RuntimeException
is the right parent. All callers catch
RateLimitException
by name explicitly (union catches in
GenerateActionItemsJob
,
GenerateAiCallScoringJob
,
SummarizeTranscriptionJob
,
GenerateAiActivityTypeJob
) or check
instanceof RateLimitException
— none relies on the parent class type, so nothing breaks.
Issue 1 — Circuit breaker stores stale delay (most important bug)
Issue 1 — Circuit breaker stores stale delay (most important bug)
Client.php:94
Client.php:94
Copy code to clipboard
Redis::setex($cacheKey, $retryAfter, (string) $retryAfter);
The TTL is
$retryAfter
seconds, but the
stored value
is also the original
$retryAfter
. If a second job reads this cache 20 seconds later, it throws
RateLimitException(retryAfter=30)
and gets delayed 30 more seconds — even though only 10 remain. In a spike of 100 jobs, each subsequent job inflates its wait.
Fix:
store the absolute expiry timestamp, reconstruct the remaining delay when reading:
Copy code to clipboard
// on 429:
Redis::setex($cacheKey, $retryAfter, (string) (time() + $retryAfter));
// in the cached-read branch:
$remaining = max(1, (int) $cachedRetryAfter - time());
throw new RateLimitException('Hubspot rate limit (cached circuit-breaker)', $remaining);
Issue 2 — retryUntil() window may expire under sustained rate limiting
Issue 2 —
retryUntil()
window may expire under sustained rate limiting
MatchActivityCrmData.php:45-47
MatchActivityCrmData.php:45-47
retryUntil()
is calculated as
now() + 30 min
at
dispatch time
and stored in the job payload. With
MAX_RETRY_DELAY = 600s
, you only get ~3 rate-limit-triggered releases before the 30-minute window closes and the job is permanently failed. For a heavy 429 spike (daily limit, parsed as 600s), this can easily happen.
Consider increasing
RETRY_WINDOW_MINUTES
to 60 or more, or making it configurable. The
uniqueFor()
value should be updated to match.
Issue 3 — Only search() uses the circuit breaker, but other methods can still hit 429
Issue 3 — Only
search()
uses the circuit breaker, but other methods can still hit 429
Client.php:76-108
Client.php:76-108
executeRequest()
is only called from
search()
. Methods like
getOpportunityById()
,
batchReadObjects()
,
getContactByEmail()
bypass it entirely. If HubSpot's 429 is account-wide (not search-endpoint-specific), those methods will keep firing even while the circuit breaker is supposedly open. This is likely fine because the search endpoint has its own tighter quota (5 RPS), but it's worth being explicit in a comment.
Issue 4 — object $job type in middleware has no compile-time safety
Issue 4 —
object $job
type in middleware has no compile-time safety
HandleHubspotRateLimit.php:20
HandleHubspotRateLimit.php:20
Copy code to clipboard
public function handle(object $job, callable $next): void
Calling
$job->attempts()
and
$job->release()
on
object
will work at runtime since Laravel always passes jobs that use
InteractsWithQueue
, but PHPStan/psalm won't verify this and it could silently break in tests with bare mocks (as your test does use a
Job
mock that has
attempts()
— so the test is fine, but the real type contract is invisible). Minor, but worth tightening to
\Illuminate\Contracts\Queue\Job
.
What works well ✓
What works well ✓
RateLimitException
is caught by the middleware
before
it increments
maxExceptions
, so rate-limit releases don't consume the 3-exception budget for real failures.
The middleware's jitter (
random_int(0, 5)
) prevents thundering herd on release.
The log-sampling logic (
attempts <= 3 || attempts % 10 === 0
) keeps logs useful without flooding.
ShouldBeUnique
+
uniqueFor()
correctly prevents duplicate jobs queuing up during the rate-limit wait window.
RateLimitException
propagates cleanly through the DB transaction (rolled back), then through the job catch block (logged conditionally), then to the middleware which handles it.
The pagination service re-throws
RateLimitException
as-is and resets pagination state on the next job attempt — safe because offset restarts from 0....
|
19559
|
NULL
|
NULL
|
NULL
|
|
19563
|
837
|
12
|
2026-05-11T13:05:01.505302+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778504701505_m2.jpg...
|
Code
|
✻ [Claude Code] MatchActivityCrmDataTest.php (Matc ✻ [Claude Code] MatchActivityCrmDataTest.php (MatchActivityCrmDataTest.php) — app...
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 12 pending changes
12
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Explorer (⇧⌘E)","depth":19,"bounds":{"left":0.0,"top":0.047885075,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":true},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.057462092,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Search (⇧⌘F)","depth":19,"bounds":{"left":0.0,"top":0.08619314,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.09577015,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Source Control (⌃⇧G) - 12 pending changes","depth":19,"bounds":{"left":0.0,"top":0.1245012,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.13407822,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"12","depth":22,"bounds":{"left":0.00831117,"top":0.1452514,"width":0.003656915,"height":0.008778931},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.008643617,"top":0.14604948,"width":0.0016622341,"height":0.007980846}},{"char_start":1,"char_count":1,"bounds":{"left":0.009973404,"top":0.14604948,"width":0.0023271276,"height":0.007980846}}],"role_description":"text"},{"role":"AXRadioButton","text":"Run and Debug (⇧⌘D)","depth":19,"bounds":{"left":0.0,"top":0.16280925,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.17238627,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Remote Explorer","depth":19,"bounds":{"left":0.0,"top":0.20111732,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.21069433,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Extensions (⇧⌘X) - 2 require update","depth":19,"bounds":{"left":0.0,"top":0.23942538,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.2490024,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":22,"bounds":{"left":0.009640957,"top":0.2601756,"width":0.0019946808,"height":0.008778931},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Testing","depth":19,"bounds":{"left":0.0,"top":0.27773345,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.28731045,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Claude Code","depth":19,"bounds":{"left":0.0,"top":0.3160415,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"EXPLORER","depth":17,"bounds":{"left":0.022606382,"top":0.047885075,"width":0.018949468,"height":0.02793296},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"EXPLORER","depth":18,"bounds":{"left":0.022606382,"top":0.056664005,"width":0.018949468,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.022606382,"top":0.056664005,"width":0.0023271276,"height":0.0103751}},{"char_start":1,"char_count":7,"bounds":{"left":0.024933511,"top":0.056664005,"width":0.01662234,"height":0.0103751}}],"role_description":"text"},{"role":"AXButton","text":"Explorer Section: app","depth":21,"bounds":{"left":0.015957447,"top":0.07581804,"width":0.09940159,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.07821229,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"Explorer Section: app","depth":22,"bounds":{"left":0.022606382,"top":0.07581804,"width":0.0076462766,"height":0.017557861},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"APP","depth":23,"bounds":{"left":0.022606382,"top":0.079010375,"width":0.0076462766,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.0933759,"width":0.0063164895,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CheckAndRetryRemoteMatch.php","depth":27,"bounds":{"left":0.033909574,"top":0.0933759,"width":0.068484046,"height":0.011173184},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.0933759,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":27,"bounds":{"left":0.036901597,"top":0.0933759,"width":0.06549202,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.10853951,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateFollowupActivity.php","depth":27,"bounds":{"left":0.033909574,"top":0.110135674,"width":0.054853722,"height":0.011971269},"on_screen":true,"role_description":"text"}]...
|
-3286179140494287238
|
-974933930765760632
|
click
|
accessibility
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 12 pending changes
12
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php...
|
NULL
|
/Users/lukas/jiminny/app/app/Jobs/Middleware/Handl /Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php...
|
NULL
|
NULL
|
|
19564
|
837
|
13
|
2026-05-11T13:05:03.080080+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-11/1778 /Users/lukas/.screenpipe/data/data/2026-05-11/1778504703080_m2.jpg...
|
Code
|
HandleHubspotRateLimit.php — app
|
True
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 12 pending changes
12
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php
SaveTranscription.php
SetupLayout.php
SyncActivity.php
SyncFieldMetadata.php
SyncHubspotObjects.php
SyncLeads.php
SyncObjects.php
SyncOpportunitiesJob.php
SyncOpportunity.php
SyncProfileMetadata.php
SyncTeamFieldsJob.php
SyncTeamMetadata.php
UpdateOpportunitySpecifications.php
UpdateStage.php
DealRisks
Mailbox
MeetingBot
Middleware
HandleHubspotRateLimit.php
RateLimited.php
Streaming
Team...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Explorer (⇧⌘E)","depth":19,"bounds":{"left":0.0,"top":0.047885075,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true,"is_expanded":true},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.057462092,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Search (⇧⌘F)","depth":19,"bounds":{"left":0.0,"top":0.08619314,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.09577015,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Source Control (⌃⇧G) - 12 pending changes","depth":19,"bounds":{"left":0.0,"top":0.1245012,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.13407822,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"12","depth":22,"bounds":{"left":0.00831117,"top":0.1452514,"width":0.003656915,"height":0.008778931},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.008643617,"top":0.14604948,"width":0.0016622341,"height":0.007980846}},{"char_start":1,"char_count":1,"bounds":{"left":0.009973404,"top":0.14604948,"width":0.0023271276,"height":0.007980846}}],"role_description":"text"},{"role":"AXRadioButton","text":"Run and Debug (⇧⌘D)","depth":19,"bounds":{"left":0.0,"top":0.16280925,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.17238627,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Remote Explorer","depth":19,"bounds":{"left":0.0,"top":0.20111732,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.21069433,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Extensions (⇧⌘X) - 2 require update","depth":19,"bounds":{"left":0.0,"top":0.23942538,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.2490024,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":22,"bounds":{"left":0.009640957,"top":0.2601756,"width":0.0019946808,"height":0.008778931},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Testing","depth":19,"bounds":{"left":0.0,"top":0.27773345,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"","depth":22,"bounds":{"left":0.0039893617,"top":0.28731045,"width":0.007978723,"height":0.01915403},"on_screen":true,"role_description":"text"},{"role":"AXRadioButton","text":"Claude Code","depth":19,"bounds":{"left":0.0,"top":0.3160415,"width":0.015957447,"height":0.03830806},"on_screen":true,"role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"EXPLORER","depth":17,"bounds":{"left":0.022606382,"top":0.047885075,"width":0.018949468,"height":0.02793296},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"EXPLORER","depth":18,"bounds":{"left":0.022606382,"top":0.056664005,"width":0.018949468,"height":0.0103751},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.022606382,"top":0.056664005,"width":0.0023271276,"height":0.0103751}},{"char_start":1,"char_count":7,"bounds":{"left":0.024933511,"top":0.056664005,"width":0.01662234,"height":0.0103751}}],"role_description":"text"},{"role":"AXButton","text":"Explorer Section: app","depth":21,"bounds":{"left":0.015957447,"top":0.07581804,"width":0.09940159,"height":0.017557861},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXStaticText","text":"","depth":23,"bounds":{"left":0.01662234,"top":0.07821229,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXHeading","text":"Explorer Section: app","depth":22,"bounds":{"left":0.022606382,"top":0.07581804,"width":0.0076462766,"height":0.017557861},"on_screen":true,"role_description":"heading"},{"role":"AXStaticText","text":"APP","depth":23,"bounds":{"left":0.022606382,"top":0.079010375,"width":0.0076462766,"height":0.0103751},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.0933759,"width":0.0063164895,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CheckAndRetryRemoteMatch.php","depth":27,"bounds":{"left":0.033909574,"top":0.0933759,"width":0.068484046,"height":0.011173184},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.0933759,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":27,"bounds":{"left":0.036901597,"top":0.0933759,"width":0.06549202,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.10853951,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateFollowupActivity.php","depth":27,"bounds":{"left":0.033909574,"top":0.110135674,"width":0.054853722,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.11093376,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":25,"bounds":{"left":0.036901597,"top":0.11093376,"width":0.051861703,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.12609737,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"CreateNotes.php","depth":27,"bounds":{"left":0.033909574,"top":0.12769353,"width":0.034242023,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.12849163,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.036901597,"top":0.12849163,"width":0.03125,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.14365523,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivitiesToNewOpportunity.php","depth":27,"bounds":{"left":0.033909574,"top":0.1452514,"width":0.07712766,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.14604948,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":34,"bounds":{"left":0.037898935,"top":0.14604948,"width":0.07347074,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.16121309,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MatchActivityCrmData.php","depth":27,"bounds":{"left":0.033909574,"top":0.16280925,"width":0.054521278,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.16360734,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":23,"bounds":{"left":0.037898935,"top":0.16360734,"width":0.050531916,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.17877094,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"NoteObject.php","depth":27,"bounds":{"left":0.033909574,"top":0.18036711,"width":0.031914894,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.1811652,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":13,"bounds":{"left":0.03723404,"top":0.1811652,"width":0.028922873,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.1963288,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SaveActivity.php","depth":27,"bounds":{"left":0.033909574,"top":0.19792499,"width":0.03324468,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.19872306,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":15,"bounds":{"left":0.03656915,"top":0.19872306,"width":0.030585106,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.21388668,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SaveTranscription.php","depth":27,"bounds":{"left":0.033909574,"top":0.21548285,"width":0.04454787,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.21628092,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":20,"bounds":{"left":0.03656915,"top":0.21628092,"width":0.042220745,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.23144454,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SetupLayout.php","depth":27,"bounds":{"left":0.033909574,"top":0.2330407,"width":0.034242023,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.23383878,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.03656915,"top":0.23383878,"width":0.031914894,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.2490024,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncActivity.php","depth":27,"bounds":{"left":0.033909574,"top":0.25059855,"width":0.03357713,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.25139666,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":15,"bounds":{"left":0.03656915,"top":0.25139666,"width":0.030917553,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.26656026,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncFieldMetadata.php","depth":27,"bounds":{"left":0.033909574,"top":0.26815644,"width":0.047539894,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.26895452,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":20,"bounds":{"left":0.03656915,"top":0.26895452,"width":0.04488032,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.28411812,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncHubspotObjects.php","depth":27,"bounds":{"left":0.033909574,"top":0.2857143,"width":0.051861703,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.28651237,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":21,"bounds":{"left":0.03656915,"top":0.28651237,"width":0.04920213,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.30167598,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncLeads.php","depth":27,"bounds":{"left":0.033909574,"top":0.30327216,"width":0.030917553,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.30407023,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":12,"bounds":{"left":0.03656915,"top":0.30407023,"width":0.02825798,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.31923383,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncObjects.php","depth":27,"bounds":{"left":0.033909574,"top":0.32083002,"width":0.034574468,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.3216281,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.03656915,"top":0.3216281,"width":0.031914894,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.3367917,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncOpportunitiesJob.php","depth":27,"bounds":{"left":0.033909574,"top":0.33838788,"width":0.053856384,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.33918595,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":23,"bounds":{"left":0.03656915,"top":0.33918595,"width":0.05119681,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.35434955,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncOpportunity.php","depth":27,"bounds":{"left":0.033909574,"top":0.35594574,"width":0.04288564,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.3567438,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":18,"bounds":{"left":0.03656915,"top":0.3567438,"width":0.040226065,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.3719074,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncProfileMetadata.php","depth":27,"bounds":{"left":0.033909574,"top":0.3735036,"width":0.05086436,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.37430167,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":22,"bounds":{"left":0.03656915,"top":0.37430167,"width":0.048204787,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.38946527,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncTeamFieldsJob.php","depth":27,"bounds":{"left":0.033909574,"top":0.39106146,"width":0.04886968,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.39185953,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":20,"bounds":{"left":0.03656915,"top":0.39185953,"width":0.046210106,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.40702313,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"SyncTeamMetadata.php","depth":27,"bounds":{"left":0.033909574,"top":0.4086193,"width":0.048537236,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.4094174,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":19,"bounds":{"left":0.03656915,"top":0.4094174,"width":0.045877658,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.424581,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"UpdateOpportunitySpecifications.php","depth":27,"bounds":{"left":0.033909574,"top":0.42617717,"width":0.076130316,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.42697525,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":34,"bounds":{"left":0.03723404,"top":0.42697525,"width":0.0731383,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.44213888,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"UpdateStage.php","depth":27,"bounds":{"left":0.033909574,"top":0.44373503,"width":0.03523936,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.4445331,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.03723404,"top":0.4445331,"width":0.032247342,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.4612929,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"DealRisks","depth":27,"bounds":{"left":0.03125,"top":0.4612929,"width":0.019614361,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.46209097,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":8,"bounds":{"left":0.034574468,"top":0.46209097,"width":0.016289894,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.47885075,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Mailbox","depth":27,"bounds":{"left":0.03125,"top":0.47885075,"width":0.015625,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.47964883,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":6,"bounds":{"left":0.03523936,"top":0.47964883,"width":0.011635638,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.4964086,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"MeetingBot","depth":27,"bounds":{"left":0.03125,"top":0.4964086,"width":0.023271276,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.49720672,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":9,"bounds":{"left":0.03523936,"top":0.49720672,"width":0.019281914,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.5139665,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Middleware","depth":27,"bounds":{"left":0.03125,"top":0.5139665,"width":0.023271276,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.51476455,"width":0.0039893617,"height":0.011971269}},{"char_start":1,"char_count":9,"bounds":{"left":0.03523936,"top":0.51476455,"width":0.019281914,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.52992815,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"HandleHubspotRateLimit.php","depth":27,"bounds":{"left":0.033909574,"top":0.53152436,"width":0.059175532,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.5323224,"width":0.0033244682,"height":0.011971269}},{"char_start":1,"char_count":25,"bounds":{"left":0.03723404,"top":0.5323224,"width":0.05618351,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":27,"bounds":{"left":0.026595745,"top":0.547486,"width":0.0063164895,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"RateLimited.php","depth":27,"bounds":{"left":0.033909574,"top":0.5490822,"width":0.032912236,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.033909574,"top":0.54988027,"width":0.0029920214,"height":0.011971269}},{"char_start":1,"char_count":14,"bounds":{"left":0.036901597,"top":0.54988027,"width":0.029920213,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.5666401,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Streaming","depth":27,"bounds":{"left":0.03125,"top":0.5666401,"width":0.020611702,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.5674381,"width":0.0026595744,"height":0.011971269}},{"char_start":1,"char_count":8,"bounds":{"left":0.033909574,"top":0.5674381,"width":0.017952127,"height":0.011971269}}],"role_description":"text"},{"role":"AXStaticText","text":"","depth":26,"bounds":{"left":0.024933511,"top":0.58419794,"width":0.005319149,"height":0.012769354},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"Team","depth":27,"bounds":{"left":0.03125,"top":0.58419794,"width":0.010970744,"height":0.011971269},"on_screen":true,"lines":[{"char_start":0,"char_count":1,"bounds":{"left":0.03125,"top":0.584996,"width":0.0023271276,"height":0.011971269}},{"char_start":1,"char_count":3,"bounds":{"left":0.03357713,"top":0.584996,"width":0.008643617,"height":0.011971269}}],"role_description":"text"}]...
|
4215168017013319987
|
-362235420345382141
|
visual_change
|
accessibility
|
NULL
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 12 pending changes
12
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
CheckAndRetryRemoteMatch.php
CreateFollowupActivity.php
CreateNotes.php
MatchActivitiesToNewOpportunity.php
MatchActivityCrmData.php
NoteObject.php
SaveActivity.php
SaveTranscription.php
SetupLayout.php
SyncActivity.php
SyncFieldMetadata.php
SyncHubspotObjects.php
SyncLeads.php
SyncObjects.php
SyncOpportunitiesJob.php
SyncOpportunity.php
SyncProfileMetadata.php
SyncTeamFieldsJob.php
SyncTeamMetadata.php
UpdateOpportunitySpecifications.php
UpdateStage.php
DealRisks
Mailbox
MeetingBot
Middleware
HandleHubspotRateLimit.php
RateLimited.php
Streaming
Team...
|
19563
|
/Users/lukas/jiminny/app/app/Jobs/Middleware/Handl /Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php...
|
NULL
|
NULL
|