FlowiseAI/Flowise · info · Error

Failed to monitor extract status

Error message

Failed to monitor extract status

What it means

Defensive post-loop throw in monitorExtractStatus. Like [126], the loop only exits via return or throw, so this line is effectively unreachable and exists to satisfy TypeScript's exhaustive-return check.

Source

Thrown at packages/components/nodes/documentloaders/FireCrawl/FireCrawl.ts:529

                switch (statusData.status) {
                    case 'completed':
                        isJobCompleted = true
                        return statusData
                    case 'processing':
                    case 'failed':
                        if (statusData.status === 'failed') {
                            throw new Error('Extract job failed')
                        }
                        await new Promise((resolve) => setTimeout(resolve, Math.max(checkInterval, 2) * 1000))
                        break
                    default:
                        throw new Error(`Unknown extract status: ${statusData.status}`)
                }
            } else {
                this.handleError(statusResponse, 'check extract status')
            }
        }
        throw new Error('Failed to monitor extract status')
    }

    private handleError(response: AxiosResponse, action: string): void {
        if ([402, 408, 409, 500].includes(response.status)) {
            const errorMessage: string = response.data.error || 'Unknown error occurred'
            throw new Error(`Failed to ${action}. Status code: ${response.status}. Error: ${errorMessage}`)
        } else {
            throw new Error(`Unexpected error occurred while trying to ${action}. Status code: ${response.status}`)
        }
    }
}

// FireCrawl Loader
interface FirecrawlLoaderParameters {
    url?: string
    query?: string
    apiKey?: string
    apiUrl?: string

View on GitHub (pinned to abe4a8601a)

Solutions

  1. Treat an occurrence as a regression in monitorExtractStatus and audit the control flow.
Defensive patterns

Strategy: try-catch

Try / catch

try { return await app.extract(req, true, pollInterval) }
catch (e) { /* unreachable per current code; treat as bug */ throw e }

Prevention

When it happens

Trigger: Unreachable in the shipping code; would require a future refactor that breaks the in-loop return/throw invariant.

Common situations: Not observed in production; surfaces only after manual edits to the switch.

Related errors


AI-assisted analysis of FlowiseAI/Flowise@abe4a8601a (2026-08-12). Data as JSON: /api/errors/3d81f64be8af68a2. Report an issue: GitHub.