multica-ai/multica · error
creation_studio.builder.start_failed
Error message
creation_studio.builder.start_failed
What it means
i18n message key (creation_studio.builder.start_failed) thrown in use-builder-session.ts when api.createAgentBuilderSession resolved but the response contained no session_id, or used as the catch-all message when the caught error is not an Error instance. It means the builder session could not be started on the runtime: the HTTP call may have succeeded with an unusable body, or failed with a non-Error rejection.
Source
Thrown at packages/views/agents/create/use-builder-session.ts:115
// missing from the list and must not be mistaken for a dead one.
const missing =
messagesQuery.error instanceof ApiError &&
messagesQuery.error.status === 404;
/** Creates the conversation. Returns its id so the caller can address it. */
const start = async (
runtimeId: string,
model: string,
): Promise<string | null> => {
setStarting(true);
setError(null);
try {
const session = await api.createAgentBuilderSession({
runtime_id: runtimeId,
model: model.trim() || undefined,
});
if (!session.session_id) {
throw new Error(t(($) => $.creation_studio.builder.start_failed));
}
return session.session_id;
} catch (err) {
setError(
err instanceof Error
? err.message
: t(($) => $.creation_studio.builder.start_failed),
);
return null;
} finally {
setStarting(false);
}
};
/**
* Destroys the conversation. Returns false when the server refused, so the
* caller can stay put and show the error instead of navigating away from a
* conversation that still exists.View on GitHub (pinned to 2c0912b6ec)
Solutions
- Confirm the target runtime is online and healthy in the runtimes list before starting a builder session.
- Check the network tab / server logs for the createAgentBuilderSession response body — a missing session_id usually means the server-side creation failed silently.
- Re-select a model that the runtime actually hosts (run model discovery first).
- If operating on the codebase, normalize the API client to always reject with Error instances so err.message is populated instead of this generic key.
Example fix
// before
} catch (err) {
setError(
err instanceof Error
? err.message
: t(($) => $.creation_studio.builder.start_failed),
);
// after — surface non-Error rejections too
} catch (err) {
setError(
err instanceof Error
? err.message
: typeof err === "string"
? err
: t(($) => $.creation_studio.builder.start_failed),
); Defensive patterns
Strategy: validation
Validate before calling
// Verify the runtime is online and hosts the model before starting
const models = await resolveRuntimeModels(runtimeId).catch(() => null);
if (!models || !models.models.some((m) => m.id === model)) {
setError("Selected model is not available on this runtime");
return null;
} Type guard
function hasSessionId(r: unknown): r is { session_id: string } {
return typeof r === "object" && r !== null && typeof (r as { session_id?: unknown }).session_id === "string" && (r as { session_id: string }).session_id.length > 0;
} Try / catch
try {
const session = await api.createAgentBuilderSession({ runtime_id: runtimeId, model: model.trim() || undefined });
if (!hasSessionId(session)) throw new Error(t(($) => $.creation_studio.builder.start_failed));
return session.session_id;
} catch (err) {
setError(err instanceof Error ? err.message : t(($) => $.creation_studio.builder.start_failed));
return null;
} Prevention
- Confirm runtime health before showing the Start action.
- Ensure the API client rejects with Error instances so err.message is meaningful.
- Trim/validate the model id against discovered models before submitting.
When it happens
Trigger: POST createAgentBuilderSession returns 2xx with a missing/empty session_id field; the API client rejects with a non-Error value (string, plain object); the runtime specified by runtimeId is offline so the server cannot provision a builder session; the selected model is unavailable on the runtime.
Common situations: Runtime went offline between the picker step and Start; server/client schema mismatch where session_id was renamed; model string passed empty after trim and the runtime requires one; network layer rejects with a plain object error.
Related errors
- creation_studio.create_failed
- model discovery timed out
- model discovery failed (status: ${current.status})
- Team issue scope is not supported by the Table query
- Failed to load project data for export
AI-assisted analysis of multica-ai/multica@2c0912b6ec (2026-08-15).
Data as JSON: /api/errors/d9cb9beeadab298d.
Report an issue: GitHub.