@@ -111,17 +111,12 @@ export async function getCometApiModels(
111111 }
112112
113113 const url = `${ baseUrl . replace ( / \/ $ / , "" ) } /models`
114- console . log ( `CometAPI: Fetching models from ${ url } ` )
115- console . log ( `CometAPI: Using API key: ${ apiKey ?. substring ( 0 , 8 ) } ...` )
116114
117115 const response = await axios . get ( url , {
118116 headers,
119117 timeout : 15000 , // Increased timeout for better reliability
120118 } )
121119
122- console . log ( `CometAPI: Received response with status ${ response . status } ` )
123- console . log ( `CometAPI: Response data keys:` , Object . keys ( response . data || { } ) )
124-
125120 const parsed = cometApiModelsResponseSchema . safeParse ( response . data )
126121 const data = parsed . success ? ( parsed . data as any ) . data : ( response . data as any ) ?. data || [ ]
127122
@@ -147,15 +142,51 @@ export async function getCometApiModels(
147142 // Intentionally not setting inputPrice/outputPrice as CometAPI doesn't provide this info
148143 }
149144 }
150-
151- console . log ( `CometAPI: Successfully fetched ${ Object . keys ( models ) . length } models:` , Object . keys ( models ) )
152145 } catch ( error ) {
153146 if ( axios . isAxiosError ( error ) ) {
154- console . error ( `CometAPI: API request failed: ${ error . response ?. status } ${ error . response ?. statusText } ` )
155- console . error ( `CometAPI: Response data:` , error . response ?. data )
156- throw new Error (
157- `Failed to fetch CometAPI models: ${ error . response ?. status } ${ error . response ?. statusText } . Check API key and network connectivity.` ,
158- )
147+ const status = error . response ?. status
148+ const statusText = error . response ?. statusText || ""
149+ const code = ( error as any ) . code as string | undefined
150+
151+ console . error ( `CometAPI: API request failed` , {
152+ status,
153+ statusText,
154+ code,
155+ // Do not log headers or API keys
156+ url : error . config ?. url ,
157+ timeout : error . config ?. timeout ,
158+ } )
159+ if ( error . response ) {
160+ console . error ( `CometAPI: Response data:` , error . response . data )
161+ }
162+
163+ let message : string
164+ if ( typeof status === "number" ) {
165+ if ( status === 401 || status === 403 ) {
166+ message = `CometAPI authentication failed (${ status } ). Please verify your API key and permissions.`
167+ } else if ( status === 429 ) {
168+ message = `CometAPI rate limit exceeded (429). Please slow down or check your plan limits.`
169+ } else if ( status >= 500 ) {
170+ message = `CometAPI server error (${ status } ${ statusText } ). Please try again later.`
171+ } else {
172+ message = `CometAPI request failed (${ status } ${ statusText } ).`
173+ }
174+ } else {
175+ // No HTTP response received: network, DNS, timeout, etc.
176+ if ( code === "ECONNABORTED" || code === "ETIMEDOUT" || / t i m e o u t / i. test ( error . message || "" ) ) {
177+ message = `CometAPI request timed out. Please check your network and base URL (${ baseUrl } ).`
178+ } else if ( code === "ENOTFOUND" || code === "EAI_AGAIN" ) {
179+ message = `DNS lookup failed for ${ baseUrl } . Please verify the domain and your DNS/network settings.`
180+ } else if ( code === "ECONNREFUSED" ) {
181+ message = `Connection refused by ${ baseUrl } . Is the service reachable from your network?`
182+ } else if ( error . request ) {
183+ message = `No response from CometAPI at ${ baseUrl } . Please check your network connectivity.`
184+ } else {
185+ message = `Failed to initiate CometAPI request: ${ error . message || "Unknown network error" } .`
186+ }
187+ }
188+
189+ throw new Error ( message )
159190 } else {
160191 console . error ( `CometAPI: Error fetching models:` , error )
161192 throw new Error (
0 commit comments