Skip to content

[Bug]: A2UI bundle missing from Docker image — canvas/a2ui broken #12878

@accek

Description

@accek

Summary

The Docker image builds successfully but ships without a2ui.bundle.js, making canvas A2UI non-functional. The index.html references <script src="a2ui.bundle.js"></script> but the file doesn't exist.

Root cause

In v2026.1.29, generated A2UI bundles were removed from git tracking ("Build: bundle A2UI assets during build and stop tracking generated bundles"). The build script scripts/bundle-a2ui.sh was updated with a fallback:

if [[ ! -d "$A2UI_RENDERER_DIR" || ! -d "$A2UI_APP_DIR" ]]; then
  echo "A2UI sources missing; keeping prebuilt bundle."
  exit 0
fi

However, .dockerignore excludes both apps/ and vendor/, so the source directories (apps/shared/.../CanvasA2UI and vendor/a2ui/renderers/lit) are never copied into the Docker build context. The script hits the fallback and exits successfully — but there is no prebuilt bundle to "keep", because it was removed from git.

The Dockerfile even sets OPENCLAW_A2UI_SKIP_MISSING=1 during build, confirming awareness of the issue, but the end result is a Docker image with no a2ui.bundle.js at all.

Steps to reproduce

docker run --rm -it ghcr.io/openclaw/openclaw:latest /bin/bash
find / -name 'a2ui.bundle.js' 2>/dev/null
# No output — file doesn't exist

Expected behavior

a2ui.bundle.js should be present in the Docker image at src/canvas-host/a2ui/a2ui.bundle.js, allowing A2UI canvas to function.

Suggested fix

Either:

  1. Update .dockerignore to include the required source dirs (similar to what was suggested in [Bug]: #2593), OR
  2. Pre-build the bundle in CI and include it in the npm/Docker artifact, OR
  3. Add a Dockerfile step that builds the bundle before the main pnpm build

Environment

  • OpenClaw version: 2026.2.6
  • Install method: Docker (ghcr.io/openclaw/openclaw:latest)
  • OS: Linux (Kubernetes)

Related

  • [Bug]: #2593 (older variant where the build failed instead of silently skipping)

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions