@@ -5,6 +5,11 @@ import { defaultHeaders } from './metadata'
55import { ConnectionConfig } from '../connectionConfig'
66import { AuthenticationError , RateLimitError , SandboxError } from '../errors'
77import { createApiLogger } from '../logs'
8+ import {
9+ appendTraceIdToMessage ,
10+ createTraceIdMiddleware ,
11+ getTraceIdFromResponse ,
12+ } from '../trace'
813
914export function handleApiError (
1015 response : FetchResponse < any , any , any > ,
@@ -18,28 +23,47 @@ export function handleApiError(
1823 return
1924 }
2025
26+ const traceId = getTraceIdFromResponse ( response . response )
27+
2128 if ( response . response . status === 401 ) {
2229 const message = 'Unauthorized, please check your credentials.'
2330 const content = response . error ?. message ?? response . error
2431
2532 if ( content ) {
26- return new AuthenticationError ( `${ message } - ${ content } ` )
33+ const err = new AuthenticationError (
34+ appendTraceIdToMessage ( `${ message } - ${ content } ` , traceId )
35+ )
36+ ; ( err as any ) . traceId = traceId
37+ return err
2738 }
28- return new AuthenticationError ( message )
39+ const err = new AuthenticationError ( appendTraceIdToMessage ( message , traceId ) )
40+ ; ( err as any ) . traceId = traceId
41+ return err
2942 }
3043
3144 if ( response . response . status === 429 ) {
3245 const message = 'Rate limit exceeded, please try again later'
3346 const content = response . error ?. message ?? response . error
3447
3548 if ( content ) {
36- return new RateLimitError ( `${ message } - ${ content } ` )
49+ const err = new RateLimitError (
50+ appendTraceIdToMessage ( `${ message } - ${ content } ` , traceId )
51+ )
52+ ; ( err as any ) . traceId = traceId
53+ return err
3754 }
38- return new RateLimitError ( message )
55+ const err = new RateLimitError ( appendTraceIdToMessage ( message , traceId ) )
56+ ; ( err as any ) . traceId = traceId
57+ return err
3958 }
4059
4160 const message = response . error ?. message ?? response . error
42- return new errorClass ( `${ response . response . status } : ${ message } ` , stackTrace )
61+ const err = new errorClass (
62+ appendTraceIdToMessage ( `${ response . response . status } : ${ message } ` , traceId ) ,
63+ stackTrace
64+ )
65+ ; ( err as any ) . traceId = traceId
66+ return err
4367}
4468
4569/**
@@ -86,6 +110,8 @@ class ApiClient {
86110 } ,
87111 } )
88112
113+ this . api . use ( createTraceIdMiddleware ( ) )
114+
89115 if ( config . logger ) {
90116 this . api . use ( createApiLogger ( config . logger ) )
91117 }
0 commit comments