langflow-ai/langflow · error · Error
reload-in-progress
reload-in-progress
Error message
reload-in-progress: ${inProgress.message} What it means
404 from the PATCH settings endpoint: the Folder lookup with selectinload(Folder.flows) filtered on (id == project_id, user_id == current_user.id) returned nothing. As with the SSE route, ownership scoping makes 'not yours' identical to 'not found'.
Source
Thrown at src/frontend/src/controllers/API/queries/extensions/use-reload-bundle.ts:71
const url = `${getURL("EXTENSIONS")}/${payload.extensionId}/bundles/${payload.bundleName}/reload`;
try {
const res = await api.post<ReloadBundleResponse>(url);
return res.data;
} catch (error: unknown) {
const detail = (error as { response?: { data?: { detail?: unknown } } })
?.response?.data?.detail;
const status = (error as { response?: { status?: number } })?.response
?.status;
// Surface 409 reload-in-progress with a stable, parseable shape so
// the caller can branch on the code without inspecting status codes.
if (
detail &&
typeof detail === "object" &&
(detail as ReloadInProgressDetail).code === "reload-in-progress"
) {
const inProgress = detail as ReloadInProgressDetail;
throw new Error(`reload-in-progress: ${inProgress.message}`);
}
// 422 carries the full ReloadResult in detail.result so structural
// failures keep the same body shape as a 200 -- the caller's
// onSuccess handler renders the typed errors inline via the
// existing ok=false branch.
if (status === 422 && detail && typeof detail === "object") {
const result = (detail as { result?: ReloadBundleResponse }).result;
if (result && typeof result === "object") {
return result;
}
}
throw new Error(
extractApiErrorMessage(
error as Parameters<typeof extractApiErrorMessage>[0],
"Failed to reload bundle",
),View on GitHub (pinned to 976ec789d2)
Solutions
- Reload the projects list in the UI and PATCH the current project id.
- Verify ownership of the folder in the DB (select * from folder where id = ...).
- Close stale tabs/clients after deleting or moving a project.
Defensive patterns
Strategy: validation
Validate before calling
if str(project_id) not in {str(p.id) for p in await client.list_projects()}:
raise LookupError("project id is stale; reload the projects page before PATCHing") Try / catch
try:
await client.patch(settings_url, json=payload)
except httpx.HTTPStatusError as e:
if e.response.status_code == 404:
await reload_project_state() # refresh ids, then re-apply the PATCH Prevention
- Close project settings tabs after deleting the project.
- After import/export across instances, always open the project fresh before editing MCP settings.
When it happens
Trigger: PATCH project MCP settings for a deleted project, a project id belonging to another user, or a stale id in the browser tab after the project was re-created.
Common situations: Two browser tabs / stale SPA state PATCHing a project that was deleted elsewhere; exporting a flow with project-scoped MCP settings and importing it into a different instance where the folder id does not exist.
Related errors
- An error occurred while uploading the file
- Failed to load file (HTTP ${status})
- Failed to download flows: ${response.statusText}
- Flow not found.
- Flow not found
AI-assisted analysis of langflow-ai/langflow@976ec789d2 (2026-08-14).
Data as JSON: /api/errors/13c1b49a067a5d40.
Report an issue: GitHub.