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

  1. Confirm the target runtime is online and healthy in the runtimes list before starting a builder session.
  2. Check the network tab / server logs for the createAgentBuilderSession response body — a missing session_id usually means the server-side creation failed silently.
  3. Re-select a model that the runtime actually hosts (run model discovery first).
  4. 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

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


AI-assisted analysis of multica-ai/multica@2c0912b6ec (2026-08-15). Data as JSON: /api/errors/d9cb9beeadab298d. Report an issue: GitHub.