Significant-Gravitas/AutoGPT · error · Error

No renderable component found. Export a default component, e

Error message

No renderable component found. Export a default component, export App, or export a named component.

What it means

NotFoundError raised inside _validate_resource_ownership when creating a transfer: no AgentGraph row with the given resource_id and isActive=True exists. The lookup requires the active version; a soft-deleted or version-superseded graph is treated as not found.

Source

Thrown at autogpt_platform/frontend/src/app/(platform)/copilot/components/ArtifactPanel/components/reactArtifactPreview.ts:157

          }

          const namedCandidate = Object.entries(moduleExports).find(
            ([name, value]) =>
              name !== "default" &&
              !name.endsWith("Provider") &&
              /^[A-Z]/.test(name) &&
              typeof value === "function",
          );

          if (namedCandidate) {
            return namedCandidate[1];
          }

          if (typeof App !== "undefined" && typeof App === "function") {
            return App;
          }

          throw new Error(
            "No renderable component found. Export a default component, export App, or export a named component.",
          );
        }

        function wrapWithProviders(Component, moduleExports) {
          const providers = Object.entries(moduleExports)
            .filter(
              ([name, value]) =>
                name !== "default" &&
                name.endsWith("Provider") &&
                typeof value === "function",
            )
            .map(([, value]) => value);

          if (providers.length === 0) {
            return Component;
          }

View on GitHub (pinned to 9c8bb5550f)

Solutions

  1. Verify the graph id resolves to an active graph (GET the agent graph) before creating the transfer.
  2. Use the canonical graph id from the current graph listing, not a version row id.
  3. Handle 404 by refreshing the graph list and re-selecting.

Example fix

# before
await create_transfer("AgentGraph", graph_id, ...)

# after
graph = await get_graph(graph_id)  # 404s if not active
await create_transfer("AgentGraph", graph.id, ...)
Defensive patterns

Strategy: validation

Validate before calling

graph = await get_graph(resource_id)  # only the active version resolves
await create_transfer("AgentGraph", graph.id, ...)

Try / catch

try:
    await create_transfer("AgentGraph", gid, ...)
except NotFoundError as e:
    if "AgentGraph" in str(e):
        refresh_graph_list()

Prevention

When it happens

Trigger: Creating a transfer request with resourceType='AgentGraph' and a resource_id that is deleted, has isActive=False (older version rows), or doesn't exist. Note only the active version matches — passing a historical version id also fails.

Common situations: Graph was deleted between listing and transfer creation; passing a version-specific graph id instead of the top-level id; environment/database mismatch.

Related errors


AI-assisted analysis of Significant-Gravitas/AutoGPT@9c8bb5550f (2026-08-14). Data as JSON: /api/errors/fe404d64878c17b2. Report an issue: GitHub.