@@ -7,10 +7,6 @@ export const MIN_DELAY = 100; // 100 ms
7
7
export const START_DELAY = 5_000 ; // 5 seconds
8
8
const MAX_DELAY = 3.6e6 ; // 1 hour
9
9
10
- function log ( msg : string , error ?: Error ) : void {
11
- DEBUG_BUILD && logger . info ( `[Offline]: ${ msg } ` , error ) ;
12
- }
13
-
14
10
export interface OfflineStore {
15
11
push ( env : Envelope ) : Promise < void > ;
16
12
unshift ( env : Envelope ) : Promise < void > ;
@@ -54,6 +50,10 @@ type Timer = number | { unref?: () => void };
54
50
export function makeOfflineTransport < TO > (
55
51
createTransport : ( options : TO ) => Transport ,
56
52
) : ( options : TO & OfflineTransportOptions ) => Transport {
53
+ function log ( ...args : unknown [ ] ) : void {
54
+ DEBUG_BUILD && logger . info ( '[Offline]:' , ...args ) ;
55
+ }
56
+
57
57
return options => {
58
58
const transport = createTransport ( options ) ;
59
59
@@ -130,6 +130,8 @@ export function makeOfflineTransport<TO>(
130
130
// If there's a retry-after header, use that as the next delay.
131
131
if ( result . headers && result . headers [ 'retry-after' ] ) {
132
132
delay = parseRetryAfterHeader ( result . headers [ 'retry-after' ] ) ;
133
+ } else if ( result . headers && result . headers [ 'x-sentry-rate-limits' ] ) {
134
+ delay = 60_000 ; // 60 seconds
133
135
} // If we have a server error, return now so we don't flush the queue.
134
136
else if ( ( result . statusCode || 0 ) >= 400 ) {
135
137
return result ;
@@ -148,7 +150,7 @@ export function makeOfflineTransport<TO>(
148
150
await store . push ( envelope ) ;
149
151
}
150
152
flushWithBackOff ( ) ;
151
- log ( 'Error sending. Event queued' , e as Error ) ;
153
+ log ( 'Error sending. Event queued. ' , e as Error ) ;
152
154
return { } ;
153
155
} else {
154
156
throw e ;
0 commit comments