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

  1. Retry the table generation request — the failure is often transient.
  2. Check for proxies/load balancers (nginx proxy_buffering, Cloudflare timeouts) that cut long SSE streams; disable buffering for /api/ai/.
  3. Inspect server logs around the request to see if generation crashed without emitting an error event.
  4. 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

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


AI-assisted analysis of Budibase/budibase@a81a902e9a (2026-08-29). Data as JSON: /api/errors/efdd292bf0cd8b43. Report an issue: GitHub.