openclaw - 💡(How to fix) Fix GHCR 2026.5.28 image emits stale Discord progress commentary config schema

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

The running GHCR/Docker OpenClaw artifact for 2026.5.28 emits a CLI config schema that rejects channels.discord.streaming.progress.commentary, even though the source/tag and some installed runtime files indicate that Discord progress commentary support should be present.

This is a packaging/generated-artifact report, not a request to re-implement #85200.

The previous source-level issue was closed as already implemented: #88779. ClawSweeper specifically suggested treating any remaining container-only mismatch as a fresh packaging report with image evidence, so this issue focuses on the running container artifact.

Error Message

Error: Dry run failed: config schema validation failed.

    • channels.discord.streaming.progress: invalid config: must not have additional properties: "commentary"

Root Cause

Because there is no Docker socket and no Portainer API key inside the container, I cannot include the image digest from this runtime. But the container was pulled from GHCR and the package/runtime version below is from inside that running container.

Code Example

node /app/openclaw.mjs --version
node -e "const p=require('/app/package.json'); console.log(JSON.stringify({packageName:p.name,packageVersion:p.version},null,2))"
hostname
cat /proc/self/cgroup | head -20

---

OpenClaw 2026.5.28
{
  "packageName": "openclaw",
  "packageVersion": "2026.5.28"
}
8f713a0550a4
9:blkio:/docker/8f713a0550a46406bb9be63d98a3d112de55365dbe8c7815634280de5431a610
8:devices:/docker/8f713a0550a46406bb9be63d98a3d112de55365dbe8c7815634280de5431a610
7:freezer:/docker/8f713a0550a46406bb9be63d98a3d112de55365dbe8c7815634280de5431a610
6:memory:/docker/8f713a0550a46406bb9be63d98a3d112de55365dbe8c7815634280de5431a610
5:cpu:/docker/8f713a0550a46406bb9be63d98a3d112de55365dbe8c7815634280de5431a610
4:cpuset:/docker/8f713a0550a46406bb9be63d98a3d112de55365dbe8c7815634280de5431a610
3:cpuacct:/docker/8f713a0550a46406bb9be63d98a3d112de55365dbe8c7815634280de5431a610
2:name=synomonitor:/system.slice/pkg-ContainerManager-dockerd.service
1:name=systemd:/docker/8f713a0550a46406bb9be63d98a3d112de55365dbe8c7815634280de5431a610

---

node /app/openclaw.mjs config schema > /tmp/openclaw-schema-current.json
node -e "const s=require('/tmp/openclaw-schema-current.json'); const props=s.properties.channels.properties.discord.properties.streaming.properties.progress.properties; console.log('hasCommentary=' + Object.prototype.hasOwnProperty.call(props,'commentary')); console.log(Object.keys(props).sort().join(','));"

---

hasCommentary=false
commandText,label,labels,maxLineChars,maxLines,render,toolProgress

---

node /app/openclaw.mjs config set channels.discord.streaming.progress.commentary true --strict-json --dry-run

---

Error: Dry run failed: config schema validation failed.
- - channels.discord.streaming.progress: invalid config: must not have additional properties: "commentary"

---

grep -RIn --exclude-dir=node_modules "streaming.progress.commentary\\|Discord Progress Commentary\\|resolveChannelStreamingProgressCommentary\\|DiscordStreamingProgressSchema" /app/dist 2>/dev/null | head -80

---

/app/dist/bundled-channel-config-schema-B8zs_onv.js:120:const DiscordStreamingProgressSchema = ChannelStreamingProgressSchema.extend({ commentary: boolean().optional() }).strict();
/app/dist/bundled-channel-config-schema-B8zs_onv.js:130:const DiscordPreviewStreamingConfigSchema = ChannelPreviewStreamingConfigSchema.extend({ progress: DiscordStreamingProgressSchema.optional() }).strict();
/app/dist/config-schema-BeUb0EJF.js:95:  "streaming.progress.commentary": {
/app/dist/config-schema-BeUb0EJF.js:96:    label: "Discord Progress Commentary",
/app/dist/message-handler.process-CP-OZdtT.js:610: const commentaryProgressEnabled = Boolean(draftStream) && resolveChannelStreamingProgressCommentary(params.discordConfig);
/app/dist/streaming-Bv78t77e.js:412:function resolveChannelStreamingProgressCommentary(entry, defaultValue = false) {

---

{
  "channels": {
    "discord": {
      "streaming": {
        "mode": "progress",
        "progress": {
          "commentary": true
        }
      }
    }
  }
}

---

node /app/openclaw.mjs config schema
RAW_BUFFERClick to expand / collapse

Summary

The running GHCR/Docker OpenClaw artifact for 2026.5.28 emits a CLI config schema that rejects channels.discord.streaming.progress.commentary, even though the source/tag and some installed runtime files indicate that Discord progress commentary support should be present.

This is a packaging/generated-artifact report, not a request to re-implement #85200.

The previous source-level issue was closed as already implemented: #88779. ClawSweeper specifically suggested treating any remaining container-only mismatch as a fresh packaging report with image evidence, so this issue focuses on the running container artifact.

Environment

  • Deployment source: GHCR OpenClaw Docker image (ghcr.io/openclaw/...)
  • Runtime path: containerized OpenClaw, /app/openclaw.mjs
  • Running container hostname: 8f713a0550a4
  • Running Docker container id from cgroup: 8f713a0550a46406bb9be63d98a3d112de55365dbe8c7815634280de5431a610
  • Docker socket: not mounted in this container
  • Portainer API key: not available inside this container
  • GHCR manifest/digest lookup from inside the container: unauthenticated registry requests returned 401

Because there is no Docker socket and no Portainer API key inside the container, I cannot include the image digest from this runtime. But the container was pulled from GHCR and the package/runtime version below is from inside that running container.

Running version proof

node /app/openclaw.mjs --version
node -e "const p=require('/app/package.json'); console.log(JSON.stringify({packageName:p.name,packageVersion:p.version},null,2))"
hostname
cat /proc/self/cgroup | head -20

Output:

OpenClaw 2026.5.28
{
  "packageName": "openclaw",
  "packageVersion": "2026.5.28"
}
8f713a0550a4
9:blkio:/docker/8f713a0550a46406bb9be63d98a3d112de55365dbe8c7815634280de5431a610
8:devices:/docker/8f713a0550a46406bb9be63d98a3d112de55365dbe8c7815634280de5431a610
7:freezer:/docker/8f713a0550a46406bb9be63d98a3d112de55365dbe8c7815634280de5431a610
6:memory:/docker/8f713a0550a46406bb9be63d98a3d112de55365dbe8c7815634280de5431a610
5:cpu:/docker/8f713a0550a46406bb9be63d98a3d112de55365dbe8c7815634280de5431a610
4:cpuset:/docker/8f713a0550a46406bb9be63d98a3d112de55365dbe8c7815634280de5431a610
3:cpuacct:/docker/8f713a0550a46406bb9be63d98a3d112de55365dbe8c7815634280de5431a610
2:name=synomonitor:/system.slice/pkg-ContainerManager-dockerd.service
1:name=systemd:/docker/8f713a0550a46406bb9be63d98a3d112de55365dbe8c7815634280de5431a610

Reproduction

Inside that running container:

node /app/openclaw.mjs config schema > /tmp/openclaw-schema-current.json
node -e "const s=require('/tmp/openclaw-schema-current.json'); const props=s.properties.channels.properties.discord.properties.streaming.properties.progress.properties; console.log('hasCommentary=' + Object.prototype.hasOwnProperty.call(props,'commentary')); console.log(Object.keys(props).sort().join(','));"

Output:

hasCommentary=false
commandText,label,labels,maxLineChars,maxLines,render,toolProgress

Attempting to validate the documented/implemented setting fails:

node /app/openclaw.mjs config set channels.discord.streaming.progress.commentary true --strict-json --dry-run

Output:

Error: Dry run failed: config schema validation failed.
- - channels.discord.streaming.progress: invalid config: must not have additional properties: "commentary"

Why this looks like an artifact mismatch

The same installed /app/dist tree contains runtime/UI-hint references to the field:

grep -RIn --exclude-dir=node_modules "streaming.progress.commentary\\|Discord Progress Commentary\\|resolveChannelStreamingProgressCommentary\\|DiscordStreamingProgressSchema" /app/dist 2>/dev/null | head -80

Relevant output from the same running container:

/app/dist/bundled-channel-config-schema-B8zs_onv.js:120:const DiscordStreamingProgressSchema = ChannelStreamingProgressSchema.extend({ commentary: boolean().optional() }).strict();
/app/dist/bundled-channel-config-schema-B8zs_onv.js:130:const DiscordPreviewStreamingConfigSchema = ChannelPreviewStreamingConfigSchema.extend({ progress: DiscordStreamingProgressSchema.optional() }).strict();
/app/dist/config-schema-BeUb0EJF.js:95:  "streaming.progress.commentary": {
/app/dist/config-schema-BeUb0EJF.js:96:    label: "Discord Progress Commentary",
/app/dist/message-handler.process-CP-OZdtT.js:610: const commentaryProgressEnabled = Boolean(draftStream) && resolveChannelStreamingProgressCommentary(params.discordConfig);
/app/dist/streaming-Bv78t77e.js:412:function resolveChannelStreamingProgressCommentary(entry, defaultValue = false) {

So the running artifact appears internally inconsistent:

  • Runtime/UI-hint files include streaming.progress.commentary.
  • The CLI schema emitted by node /app/openclaw.mjs config schema omits commentary.
  • Strict validated config writes reject the field.

Expected behavior

For a 2026.5.28 GHCR image that includes the #85200 runtime/docs/schema work, this should validate:

{
  "channels": {
    "discord": {
      "streaming": {
        "mode": "progress",
        "progress": {
          "commentary": true
        }
      }
    }
  }
}

At minimum, the generated CLI schema in the shipped Docker image should agree with the runtime resolver and UI hints in the same image.

Actual behavior

The GHCR-pulled running container reports OpenClaw 2026.5.28 / [email protected], but its live CLI schema rejects channels.discord.streaming.progress.commentary.

Related context

  • #83307: original feature request, "Discord progress drafts should support assistant commentary events"
  • #85200: merged implementation, "Show assistant commentary in Discord progress drafts"
  • #88779: earlier issue closed as already implemented in source; follow-up comments include the same live container evidence

Suggested investigation

Please check whether the GHCR Docker image published for 2026.5.28 includes a stale generated root config schema or mixed generated artifacts. A useful regression would be an image/package-level smoke test that runs:

node /app/openclaw.mjs config schema

and asserts that channels.discord.streaming.progress.properties.commentary exists when the Discord runtime bundle includes resolveChannelStreamingProgressCommentary.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

FAQ

Expected behavior

For a 2026.5.28 GHCR image that includes the #85200 runtime/docs/schema work, this should validate:

{
  "channels": {
    "discord": {
      "streaming": {
        "mode": "progress",
        "progress": {
          "commentary": true
        }
      }
    }
  }
}

At minimum, the generated CLI schema in the shipped Docker image should agree with the runtime resolver and UI hints in the same image.

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

openclaw - 💡(How to fix) Fix GHCR 2026.5.28 image emits stale Discord progress commentary config schema