Skip to content

Commit 3d037c9

Browse files
authored
fix(executor): pattern match more errors to prevent swallow (#2802)
1 parent eb52f69 commit 3d037c9

File tree

1 file changed

+13
-4
lines changed

1 file changed

+13
-4
lines changed

apps/sim/tools/utils.ts

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { getBaseUrl } from '@/lib/core/utils/urls'
33
import { AGENT, isCustomTool } from '@/executor/constants'
44
import { useCustomToolsStore } from '@/stores/custom-tools'
55
import { useEnvironmentStore } from '@/stores/settings/environment'
6+
import { extractErrorMessage } from '@/tools/error-extractors'
67
import { tools } from '@/tools/registry'
78
import type { TableRow, ToolConfig, ToolResponse } from '@/tools/types'
89

@@ -162,14 +163,22 @@ export async function executeRequest(
162163
const externalResponse = await fetch(url, { method, headers, body })
163164

164165
if (!externalResponse.ok) {
165-
let errorContent
166+
let errorData: any
166167
try {
167-
errorContent = await externalResponse.json()
168+
errorData = await externalResponse.json()
168169
} catch (_e) {
169-
errorContent = { message: externalResponse.statusText }
170+
try {
171+
errorData = await externalResponse.text()
172+
} catch (_e2) {
173+
errorData = null
174+
}
170175
}
171176

172-
const error = errorContent.message || `${toolId} API error: ${externalResponse.statusText}`
177+
const error = extractErrorMessage({
178+
status: externalResponse.status,
179+
statusText: externalResponse.statusText,
180+
data: errorData,
181+
})
173182
logger.error(`${toolId} error:`, { error })
174183
throw new Error(error)
175184
}

0 commit comments

Comments
 (0)