openclaw - 💡(How to fix) Fix Control UI form mode cannot render channel accounts config [1 participants]

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…
GitHub stats
openclaw/openclaw#44557Fetched 2026-04-08 00:45:15
View on GitHub
Comments
0
Participants
1
Timeline
0
Reactions
0
Author
Participants

The Control UI Config page in Form mode cannot render the accounts object under channel configurations (e.g. channels.telegram.accounts, channels.line.accounts). It shows an unsupported/unknown field warning instead of rendering the nested account entries.

Root Cause

The Control UI Config page in Form mode cannot render the accounts object under channel configurations (e.g. channels.telegram.accounts, channels.line.accounts). It shows an unsupported/unknown field warning instead of rendering the nested account entries.

Fix Action

Workaround

Switch to Raw mode to edit accounts configuration.

Code Example

{
  "channels": {
    "telegram": {
      "enabled": true,
      "accounts": {
        "default": {
          "name": "My Bot",
          "botToken": "<token>",
          "chatId": "123456"
        }
      }
    }
  }
}
RAW_BUFFERClick to expand / collapse

Description

The Control UI Config page in Form mode cannot render the accounts object under channel configurations (e.g. channels.telegram.accounts, channels.line.accounts). It shows an unsupported/unknown field warning instead of rendering the nested account entries.

Steps to Reproduce

  1. Configure a Telegram channel with accounts:
{
  "channels": {
    "telegram": {
      "enabled": true,
      "accounts": {
        "default": {
          "name": "My Bot",
          "botToken": "<token>",
          "chatId": "123456"
        }
      }
    }
  }
}
  1. Open Control UI → Config → Form mode
  2. Navigate to Channels → Telegram
  3. Observe that the accounts section is not rendered properly

Expected Behavior

Form mode should render the accounts entries with editable fields for each account (name, botToken, chatId, enabled, etc.).

Current Behavior

The accounts field is shown as an unsupported/unknown type, requiring users to switch to Raw mode to edit it.

Affected Channels

  • Telegram
  • LINE
  • Likely all channels that support multi-account config via accounts

Workaround

Switch to Raw mode to edit accounts configuration.

Environment

  • OpenClaw version: 2026.3.11
  • Browser: Safari/Chrome (mobile + desktop)

extent analysis

Fix Plan

The fix involves updating the Control UI configuration to recognize and render the accounts object under channel configurations.

Step-by-Step Solution

  1. Update Control UI Config: Modify the Control UI configuration to include a schema for the accounts object.
  2. Add Accounts Schema: Define a schema for the accounts object, including the nested account entries.
  3. Implement Recursive Rendering: Update the Form mode rendering logic to recursively render the accounts object.

Example Code

// Update Control UI Config
const channelConfig = {
  // ...
  properties: {
    // ...
    accounts: {
      type: 'object',
      properties: {
        default: {
          type: 'object',
          properties: {
            name: { type: 'string' },
            botToken: { type: 'string' },
            chatId: { type: 'string' },
          },
        },
      },
    },
  },
};

// Implement Recursive Rendering
function renderForm(mode, config) {
  // ...
  if (config.properties.accounts) {
    renderAccounts(config.properties.accounts);
  }
}

function renderAccounts(accountsConfig) {
  // ...
  Object.keys(accountsConfig.properties).forEach((accountName) => {
    const accountConfig = accountsConfig.properties[accountName];
    renderAccount(accountConfig);
  });
}

function renderAccount(accountConfig) {
  // ...
  Object.keys(accountConfig.properties).forEach((fieldName) => {
    const fieldConfig = accountConfig.properties[fieldName];
    renderField(fieldConfig);
  });
}

Verification

To verify the fix, follow these steps:

  1. Update the Control UI configuration with the new schema.
  2. Restart the application.
  3. Open Control UI → Config → Form mode.
  4. Navigate to Channels → Telegram.
  5. Verify that the accounts section is rendered properly with editable fields for each account.

Extra Tips

  • Ensure that the schema is correctly defined to match the structure of the accounts object.
  • Test the fix with different channel configurations to ensure that it works as expected.
  • Consider adding validation for the accounts object to prevent invalid configurations.

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…

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 Control UI form mode cannot render channel accounts config [1 participants]