MCPcopy Index your code
hub / github.com/CodebuffAI/codebuff / extractStatusCodeFromMessage

Function extractStatusCodeFromMessage

sdk/src/run.ts:771–834  ·  view source on GitHub ↗
(
  errorMessage: string,
)

Source from the content-addressed store, hash-verified

769 * Returns the status code if found, undefined otherwise.
770 */
771export const extractStatusCodeFromMessage = (
772 errorMessage: string,
773): number | undefined => {
774 const lowerMessage = errorMessage.toLowerCase()
775
776 // AI SDK's built-in retry error (e.g., "Failed after 4 attempts. Last error: Service Unavailable")
777 // The AI SDK already retried 4 times, but we still want our SDK wrapper to retry 3 more times
778 if (
779 lowerMessage.includes('failed after') &&
780 lowerMessage.includes('attempts')
781 ) {
782 // Extract the underlying error type from the message
783 if (lowerMessage.includes('service unavailable')) {
784 return 503
785 }
786 if (lowerMessage.includes('timeout')) {
787 return 408
788 }
789 if (lowerMessage.includes('connection refused')) {
790 return 503
791 }
792 // Default to 500 for other AI SDK retry failures
793 return 500
794 }
795
796 if (
797 errorMessage.includes('503') ||
798 lowerMessage.includes('service unavailable')
799 ) {
800 return 503
801 }
802 if (errorMessage.includes('504')) {
803 return 504
804 }
805 if (errorMessage.includes('502')) {
806 return 502
807 }
808 if (lowerMessage.includes('timeout') || errorMessage.includes('408')) {
809 return 408
810 }
811 if (
812 lowerMessage.includes('econnrefused') ||
813 lowerMessage.includes('connection refused')
814 ) {
815 return 503
816 }
817 if (lowerMessage.includes('dns') || lowerMessage.includes('enotfound')) {
818 return 503
819 }
820 if (lowerMessage.includes('server error') || errorMessage.includes('500')) {
821 return 500
822 }
823 if (errorMessage.includes('429') || lowerMessage.includes('rate limit')) {
824 return 429
825 }
826 if (
827 lowerMessage.includes('network error') ||
828 lowerMessage.includes('fetch failed')

Callers 1

handlePromptResponseFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected