MCPcopy
hub / github.com/zgsm-ai/costrict / getErrorMessage

Function getErrorMessage

packages/types/src/telemetry.ts:389–417  ·  view source on GitHub ↗
(error: unknown)

Source from the content-addressed store, hash-verified

387 * @returns The best available error message, or undefined if not extractable
388 */
389export function getErrorMessage(error: unknown): string | undefined {
390 let message: string | undefined
391
392 if (isOpenAISdkError(error)) {
393 // Prioritize nested metadata which may contain upstream provider details
394 message = error.error?.metadata?.raw || error.error?.message || error.message
395 } else if (error instanceof Error) {
396 // Handle standard Error objects (including ApiProviderError)
397 message = error.message
398 } else if (typeof error === "object" && error !== null && "message" in error) {
399 // Handle plain objects with a message property
400 const msgValue = (error as { message: unknown }).message
401 if (typeof msgValue === "string") {
402 message = msgValue
403 }
404 }
405
406 if (!message) {
407 return undefined
408 }
409
410 // If the message contains JSON, try to extract the message from it
411 const extractedMessage = extractMessageFromJsonPayload(message)
412 if (extractedMessage) {
413 return extractedMessage
414 }
415
416 return message
417}
418
419/**
420 * Helper to check if an API error should be reported to telemetry.

Callers 2

captureExceptionMethod · 0.90
telemetry.test.tsFile · 0.85

Calls 2

isOpenAISdkErrorFunction · 0.85

Tested by

no test coverage detected