Budibase/budibase · error
No result received from table generation stream
Error message
No result received from table generation stream
What it means
After the SSE stream from /api/ai/tables ends normally, the client checks that a {type:"result"} event carrying createdTables was received. If the stream closed without ever emitting a result event, finalResponse is undefined and this error is thrown — meaning generation produced no outcome.
Source
Thrown at packages/frontend-core/src/api/ai.ts:129
buffer = buffer.slice(boundary + SSE_EVENT_DELIMITER.length)
const event = parseSSEEventChunk(eventChunk)
if (event?.type === "progress" && onProgress) {
onProgress(event.message)
}
if (event?.type === "result") {
finalResponse = { createdTables: event.createdTables || [] }
}
if (event?.type === "error") {
throw new Error(event.message || "Error generating tables")
}
boundary = buffer.indexOf(SSE_EVENT_DELIMITER)
}
}
if (!finalResponse) {
throw new Error("No result received from table generation stream")
}
return finalResponse
} catch (error: any) {
throw new Error(error?.message || "Error generating tables")
}
},
})
},
fetchSlackAppConfig: async () => {
return await API.get({
url: "/api/ai/slack/app-config",
})
},
saveSlackAppConfig: async req => {
return await API.put({View on GitHub (pinned to a81a902e9a)
Solutions
- Retry the table generation request — the failure is often transient.
- Check for proxies/load balancers (nginx proxy_buffering, Cloudflare timeouts) that cut long SSE streams; disable buffering for /api/ai/.
- Inspect server logs around the request to see if generation crashed without emitting an error event.
- Verify the AI model is reachable and the request isn't silently timing out.
Example fix
// before
await generateTables(req)
// after
try {
await generateTables(req)
} catch (e) {
if (e.message.includes("No result received")) {
// retry once, then check proxy/stream timeouts
}
} Defensive patterns
Strategy: retry
Validate before calling
// check proxies don't cut long SSE responses; ensure auth cookie valid before call
const authed = document.cookie.includes("budibase:") Type guard
function hasResultEvent(final: unknown): final is { createdTables: unknown[] } {
return final != null && Array.isArray((final as any).createdTables)
} Try / catch
try {
return await generateTables(req)
} catch (e) {
if (e.message.includes("No result received")) {
// retry with backoff; if persistent, check proxy buffering/timeouts
}
throw e
} Prevention
- Disable proxy buffering for /api/ai/ SSE routes (nginx: proxy_buffering off)
- Raise proxy/read timeouts for long AI generations
- Retry with exponential backoff on empty streams
- Monitor server logs for crashes during generation
When it happens
Trigger: The stream terminates (reader done) without a "result" SSE event: server crashed mid-stream, connection dropped before completion, empty/blocked generation producing only error-less silence, or a proxy buffering/cutting the response.
Common situations: Reverse proxy (nginx) closing idle SSE connections prematurely, network interruption during a long generation, backend worker killed mid-request, server returning empty stream on auth/license edge cases.
Related errors
- Streaming not supported in this browser
- Error generating tables
- Failed to download asset: ${response.statusText}
- Failed to fetch file from URL: ${response.statusText}
- Error getting account by tenantId ${tenantId}
AI-assisted analysis of Budibase/budibase@a81a902e9a (2026-08-29).
Data as JSON: /api/errors/efdd292bf0cd8b43.
Report an issue: GitHub.