Skip to content

Commit 05f291d

Browse files
authored
Marketo add logs (#3680)
* Add error body to parseErrorResponseBatch for better debugging * Add error code tracking to audience list operations for improved debugging * fix test cases & error handling * fix test cases code coverage
1 parent 5136691 commit 05f291d

2 files changed

Lines changed: 38 additions & 15 deletions

File tree

packages/destination-actions/src/destinations/marketo-static-lists/__tests__/multistatus.test.ts

Lines changed: 24 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -129,13 +129,15 @@ describe('MultiStatus', () => {
129129
status: 406,
130130
errortype: 'NOT_ACCEPTABLE',
131131
errormessage: 'Invalid Content Type',
132-
errorreporter: 'INTEGRATIONS'
132+
errorreporter: 'DESTINATION',
133+
body: { code: '612', message: 'Invalid Content Type' }
133134
},
134135
{
135136
status: 406,
136137
errortype: 'NOT_ACCEPTABLE',
137138
errormessage: 'Invalid Content Type',
138-
errorreporter: 'INTEGRATIONS'
139+
errorreporter: 'DESTINATION',
140+
body: { code: '612', message: 'Invalid Content Type' }
139141
}
140142
])
141143
})
@@ -163,13 +165,15 @@ describe('MultiStatus', () => {
163165
status: 500,
164166
errortype: 'RETRYABLE_ERROR',
165167
errormessage: `Transient error ${code}`,
166-
errorreporter: 'INTEGRATIONS'
168+
errorreporter: 'DESTINATION',
169+
body: { code, message: `Transient error ${code}` }
167170
},
168171
{
169172
status: 500,
170173
errortype: 'RETRYABLE_ERROR',
171174
errormessage: `Transient error ${code}`,
172-
errorreporter: 'INTEGRATIONS'
175+
errorreporter: 'DESTINATION',
176+
body: { code, message: `Transient error ${code}` }
173177
}
174178
])
175179
}
@@ -353,13 +357,15 @@ describe('MultiStatus', () => {
353357
status: 406,
354358
errortype: 'NOT_ACCEPTABLE',
355359
errormessage: 'Invalid Content Type',
356-
errorreporter: 'INTEGRATIONS'
360+
errorreporter: 'DESTINATION',
361+
body: { code: '612', message: 'Invalid Content Type' }
357362
},
358363
{
359364
status: 406,
360365
errortype: 'NOT_ACCEPTABLE',
361366
errormessage: 'Invalid Content Type',
362-
errorreporter: 'INTEGRATIONS'
367+
errorreporter: 'DESTINATION',
368+
body: { code: '612', message: 'Invalid Content Type' }
363369
}
364370
])
365371
})
@@ -395,13 +401,15 @@ describe('MultiStatus', () => {
395401
status: 406,
396402
errortype: 'NOT_ACCEPTABLE',
397403
errormessage: 'Invalid Content Type',
398-
errorreporter: 'INTEGRATIONS'
404+
errorreporter: 'DESTINATION',
405+
body: { code: '612', message: 'Invalid Content Type' }
399406
},
400407
{
401408
status: 406,
402409
errortype: 'NOT_ACCEPTABLE',
403410
errormessage: 'Invalid Content Type',
404-
errorreporter: 'INTEGRATIONS'
411+
errorreporter: 'DESTINATION',
412+
body: { code: '612', message: 'Invalid Content Type' }
405413
}
406414
])
407415
})
@@ -429,13 +437,15 @@ describe('MultiStatus', () => {
429437
status: 500,
430438
errortype: 'RETRYABLE_ERROR',
431439
errormessage: `Transient error ${code}`,
432-
errorreporter: 'INTEGRATIONS'
440+
errorreporter: 'DESTINATION',
441+
body: { code, message: `Transient error ${code}` }
433442
},
434443
{
435444
status: 500,
436445
errortype: 'RETRYABLE_ERROR',
437446
errormessage: `Transient error ${code}`,
438-
errorreporter: 'INTEGRATIONS'
447+
errorreporter: 'DESTINATION',
448+
body: { code, message: `Transient error ${code}` }
439449
}
440450
])
441451
}
@@ -474,13 +484,15 @@ describe('MultiStatus', () => {
474484
status: 500,
475485
errortype: 'RETRYABLE_ERROR',
476486
errormessage: `Transient error ${code}`,
477-
errorreporter: 'INTEGRATIONS'
487+
errorreporter: 'DESTINATION',
488+
body: { code, message: `Transient error ${code}` }
478489
},
479490
{
480491
status: 500,
481492
errortype: 'RETRYABLE_ERROR',
482493
errormessage: `Transient error ${code}`,
483-
errorreporter: 'INTEGRATIONS'
494+
errorreporter: 'DESTINATION',
495+
body: { code, message: `Transient error ${code}` }
484496
}
485497
])
486498
}

packages/destination-actions/src/destinations/marketo-static-lists/functions.ts

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,10 @@ export async function addToListBatch(
126126
})
127127

128128
if (!response.data.success) {
129-
statsContext?.statsClient?.incr('addToAudience.error', payloads.length, statsContext?.tags)
129+
statsContext?.statsClient?.incr('addToAudience.error', payloads.length, [
130+
...(statsContext?.tags ?? []),
131+
`error_code:${response?.data?.errors?.[0]?.code ?? 'unknown'}`
132+
])
130133
return parseErrorResponseBatch(response.data, payloads.length)
131134
}
132135

@@ -235,7 +238,10 @@ export async function removeFromListBatch(
235238
})
236239

237240
if (!getLeadsResponse.data.success) {
238-
statsContext?.statsClient?.incr('removeFromAudience.error', payloads.length, statsContext?.tags)
241+
statsContext?.statsClient?.incr('removeFromAudience.error', payloads.length, [
242+
...(statsContext?.tags ?? []),
243+
`error_code:${getLeadsResponse?.data?.errors?.[0]?.code ?? 'unknown'}`
244+
])
239245
return parseErrorResponseBatch(getLeadsResponse.data, payloads.length)
240246
}
241247

@@ -254,7 +260,10 @@ export async function removeFromListBatch(
254260
})
255261

256262
if (!deleteLeadsResponse.data.success) {
257-
statsContext?.statsClient?.incr('removeFromAudience.error', payloads.length, statsContext?.tags)
263+
statsContext?.statsClient?.incr('removeFromAudience.error', payloads.length, [
264+
...(statsContext?.tags ?? []),
265+
`error_code:${deleteLeadsResponse?.data?.errors?.[0]?.code ?? 'unknown'}`
266+
])
258267
return parseErrorResponseBatch(deleteLeadsResponse.data, payloads.length)
259268
}
260269
statsContext?.statsClient?.incr('removeFromAudience.success', payloads.length, statsContext?.tags)
@@ -369,13 +378,15 @@ function parseErrorResponseBatch(response: MarketoResponse, payloadSize: number)
369378
return buildMultiStatusErrorResponse(payloadSize, {
370379
status: 500,
371380
errortype: ErrorCodes.RETRYABLE_ERROR,
381+
body: response.errors[0] as unknown as JSONLikeObject,
372382
errormessage: message
373383
})
374384
}
375385

376386
return buildMultiStatusErrorResponse(payloadSize, {
377387
status: 406,
378388
errortype: ErrorCodes.NOT_ACCEPTABLE,
389+
body: response.errors[0] as unknown as JSONLikeObject,
379390
errormessage: message
380391
})
381392
}

0 commit comments

Comments
 (0)