Module generates config keys rejected by OpenClaw 2026.1.29 #15

Closed
opened 2026-02-15 17:04:29 -05:00 by yindo · 0 comments
Owner

Originally created by @mrh00d on GitHub (Jan 30, 2026).

Problem

The home-manager module generates a messages.queue.byProvider key in the output JSON config that OpenClaw 2026.1.29 rejects as unrecognized:

Invalid config at ~/.openclaw/openclaw.json:
- messages.queue: Unrecognized key: "byProvider"

This causes openclaw status to report the config as invalid and openclaw doctor to recommend running --fix to remove the key.

Root Cause

In nix/modules/home-manager/openclaw.nix, mkRoutingConfig unconditionally emits messages.queue.byProvider:

mkRoutingConfig = inst: {
    messages = {
      queue = {
        mode = inst.routing.queue.mode;
        byProvider = inst.routing.queue.byProvider;
      };
    };
  };

The default value for routing.queue.byProvider is:

byProvider = lib.mkOption {
    type = lib.types.attrs;
    default = {
      telegram = "interrupt";
      discord = "queue";
      webchat = "queue";
    };
};

This key is always included in the generated config even though OpenClaw's schema no longer accepts it.

Additionally

The following keys that were previously valid top-level config are also rejected by 2026.1.29 if passed via configOverrides:

  • gateway.host
  • webchat (top-level)
  • bridge (top-level)

These come from user config rather than the module itself, but it may be worth noting in migration guidance or removing them from examples/documentation.

Expected Behavior

The module should either:

  1. Stop emitting messages.queue.byProvider if the upstream schema no longer supports it
  2. Or conditionally emit it only when the user explicitly sets a non-default value

Environment

  • OpenClaw: 2026.1.29
  • nix-openclaw: 4731fa63ad163538cacc084e609f78ad5bfd95b2
  • Platform: Linux (NixOS LXC)
Originally created by @mrh00d on GitHub (Jan 30, 2026). ## Problem The home-manager module generates a `messages.queue.byProvider` key in the output JSON config that OpenClaw 2026.1.29 rejects as unrecognized: ``` Invalid config at ~/.openclaw/openclaw.json: - messages.queue: Unrecognized key: "byProvider" ``` This causes `openclaw status` to report the config as invalid and `openclaw doctor` to recommend running `--fix` to remove the key. ## Root Cause In `nix/modules/home-manager/openclaw.nix`, `mkRoutingConfig` unconditionally emits `messages.queue.byProvider`: ```nix mkRoutingConfig = inst: { messages = { queue = { mode = inst.routing.queue.mode; byProvider = inst.routing.queue.byProvider; }; }; }; ``` The default value for `routing.queue.byProvider` is: ```nix byProvider = lib.mkOption { type = lib.types.attrs; default = { telegram = "interrupt"; discord = "queue"; webchat = "queue"; }; }; ``` This key is always included in the generated config even though OpenClaw's schema no longer accepts it. ## Additionally The following keys that were previously valid top-level config are also rejected by 2026.1.29 if passed via `configOverrides`: - `gateway.host` - `webchat` (top-level) - `bridge` (top-level) These come from user config rather than the module itself, but it may be worth noting in migration guidance or removing them from examples/documentation. ## Expected Behavior The module should either: 1. Stop emitting `messages.queue.byProvider` if the upstream schema no longer supports it 2. Or conditionally emit it only when the user explicitly sets a non-default value ## Environment - OpenClaw: 2026.1.29 - nix-openclaw: `4731fa63ad163538cacc084e609f78ad5bfd95b2` - Platform: Linux (NixOS LXC)
yindo closed this issue 2026-02-15 17:04:29 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: openclaw/nix-openclaw#15