@@ -22,7 +22,7 @@ const dummyResponseData = {
2222 } ,
2323} ;
2424
25- // Client error response (4xx) - never triggers failTrust, always safety net
25+ // Client error response (4xx, excluding 429 ) - never triggers failTrust, always safety net
2626const clientErrorResponseData = {
2727 result : {
2828 status : 2 ,
@@ -49,7 +49,11 @@ export const httpGET = function (options) {
4949 return new Promise ( function ( resolve , reject ) {
5050 var req = https . request ( options , function ( res ) {
5151 // reject on bad status
52- if ( res . statusCode >= 400 && res . statusCode < 500 ) {
52+ // 429 throttle is treated as a server error so failTrust is respected
53+ if ( res . statusCode === 429 ) {
54+ console . error ( `[CH] API 429: throttled` ) ;
55+ reject ( JSON . stringify ( dummyResponseData ) ) ;
56+ } else if ( res . statusCode >= 400 && res . statusCode < 500 ) {
5357 console . error ( `[CH] API 4xx: ${ res . statusCode } ` ) ;
5458 reject ( JSON . stringify ( clientErrorResponseData ) ) ;
5559 } else if ( res . statusCode < 200 || res . statusCode >= 300 ) {
@@ -86,7 +90,11 @@ export const httpPOST = function (options, data) {
8690 return new Promise ( function ( resolve , reject ) {
8791 var req = https . request ( options , function ( res ) {
8892 // reject on bad status
89- if ( res . statusCode >= 400 && res . statusCode < 500 ) {
93+ // 429 throttle is treated as a server error so failTrust is respected
94+ if ( res . statusCode === 429 ) {
95+ console . error ( `[CH] API 429: throttled` ) ;
96+ reject ( JSON . stringify ( dummyResponseData ) ) ;
97+ } else if ( res . statusCode >= 400 && res . statusCode < 500 ) {
9098 console . error ( `[CH] API 4xx: ${ res . statusCode } ` ) ;
9199 reject ( JSON . stringify ( clientErrorResponseData ) ) ;
92100 } else if ( res . statusCode < 200 || res . statusCode >= 300 ) {
0 commit comments