#Railway fix

32 messages ยท Page 1 of 1 (latest)

normal zodiac
#

Hey

distant gateBOT
lusty walrusBOT
#

To help others find answers, you can mark your question as solved via Right click solution message -> Apps -> โœ… Mark Solution

distant gateBOT
lyric carbonBOT
#

hey, what are you running into?

If itโ€™s an OpenClaw issue, paste openclaw --version plus the error or log snippet, and Iโ€™ll help you sort it out. ๐Ÿฆ

normal zodiac
#

Config invalid
File: /data/.openclaw/openclaw.json
Problem:

  • channels.discord.streaming: Invalid input (allowed: true, false, "off", "partial", "block", "progress")

this the error im getting in logs and with openclaw doctor too

#

bot is down so gotta fix in cli

#

version 2026.3.13 (61d171a)

lyric carbonBOT
#

that looks like version mismatch.

Your running build is validating channels.discord.streaming as a scalar, so it wants one of:

  • true
  • false
  • "off"
  • "partial"
  • "block"
  • "progress"

So if your config currently has something like:

channels: {
  discord: {
#
    streaming: { mode: "partial" }
  }
}

change it to:

channels: {
  discord: {
    streaming: "partial"
  }
}

Or just disable it with:

#
channels: {
  discord: {
    streaming: "off"
  }
}

Then rerun:

openclaw doctor

Also paste:

#

yep, then do it straight in the config file.

  1. Open the file:
nano /data/.openclaw/openclaw.json
  1. Find channels.discord.streaming.

If it looks like this:

streaming: { mode: "partial" }

change it to this:

#
streaming: "partial"

Or safest for now:

streaming: "off"
  1. Save, then validate:
openclaw doctor
  1. Paste this too so we know which config shape your build expects:
#
openclaw --version
  1. If doctor passes, restart the process.
  • if you use the daemon:
openclaw gateway restart
  • if Railway is just running the app directly, restart/redeploy the Railway service

If you want, paste just your channels.discord section and Iโ€™ll rewrite the exact block for you.

#

yep, that explains it.

2026.3.13 is on the older Discord streaming shape, so on that version use:

channels: {
  discord: {
    streaming: "off" // or "partial" / "block" / "progress"
  }
}

Do not use this on that build:

streaming: { mode: "partial" }
#

So the fix is:

  1. edit /data/.openclaw/openclaw.json
  2. change channels.discord.streaming to a scalar string
  3. run:
openclaw doctor
  1. restart/redeploy Railway

If you want the newer streaming.mode shape, upgrade first, then run:

openclaw doctor --fix

If you paste your current channels.discord block, I can convert it line for line.

normal zodiac
#

nano cant work cam=nt we run a commad to change it

lyric carbonBOT
#

yep, use the CLI-native setter first:

openclaw config file
openclaw config set channels.discord.streaming off
openclaw doctor

If that passes, restart/redeploy Railway.

If you want streaming on after itโ€™s back up, use:

openclaw config set channels.discord.streaming partial

If config set refuses to touch the file because the config is already invalid, paste that output here and Iโ€™ll give you the fallback one-liner.

normal zodiac
#

Invalid config:

  • channels.discord.streaming: Invalid input (allowed: true, false, "off", "partial", "block", "progress")

this from doc

lyric carbonBOT
#

yep, that error is actually telling you the allowed values. So set it to one of those explicitly.

Safest fix on your version:

openclaw config set channels.discord.streaming false --strict-json
openclaw config get channels.discord.streaming
openclaw doctor

That should write:

streaming: false

which your build accepts.

#

If config set itself still refuses because the file is already too broken to load, paste the exact output from that command and Iโ€™ll give you a raw one-liner to rewrite the file directly.

normal zodiac
#

openclaw config get channels.discord.streaming
Invalid config at /data/.openclaw/openclaw.json:\n- channels.discord.streaming: Invalid input (allowed: true, false, "off", "partial", "block", "progress")

๐Ÿฆž OpenClaw 2026.3.13 (61d171a) โ€” Pairing codes exist because even bots believe in consentโ€”and good security hygiene.

Config invalid
File: /data/.openclaw/openclaw.json
Problem:

  • channels.discord.streaming: Invalid input (allowed: true, false, "off", "partial", "block", "progress")

Run: openclaw doctor --fix

lyric carbonBOT
#

perfect, that means config get/set wonโ€™t load the broken file first.

The recovery path is exactly what it printed:

openclaw doctor --fix

Then check again with:

openclaw doctor

If that comes back clean, restart/redeploy Railway.

If doctor --fix still fails, paste that output. Thatโ€™ll tell us whether it can auto-migrate the bad streaming shape or if we need a direct file rewrite.

normal zodiac
#

Gateway โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚ โ”‚
โ”‚ systemd user services are unavailable; install/enable systemd or run the gateway under โ”‚
โ”‚ your supervisor. โ”‚
โ”‚ If you're in a container, run the gateway in the foreground instead of openclaw โ”‚ โ”‚ gateway. โ”‚
โ”‚ โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ
Invalid config:

  • channels.discord.streaming: Invalid input (allowed: true, false, "off", "partial", "block", "progress")
    โ”‚
    โ”” Doctor complete.
lyric carbonBOT
#

ignore the systemd bit, thatโ€™s normal on Railway/container setups.

The important part is: doctor --fix didnโ€™t auto-migrate this one, so I want the exact config shape before I give you a rewrite command.

Run one of these and paste the output:

rg -n -C 6 'discord|streaming' /data/.openclaw/openclaw.json

or if rg isnโ€™t installed:

grep -n -C 6 -E 'discord|streaming' /data/.openclaw/openclaw.json

Once I see that block, I can give you the exact one-liner to fix it safely.

normal zodiac
#

grep -n -C 6 -E 'discord|streaming' /data/.openclaw/openclaw.json
63- }
64- },
65- "tools": {
66- "elevated": {
67- "enabled": true,
68- "allowFrom": {
69: "discord": [
70- "907550180855922709"
71- ]
72- }
73- }
74- },
75- "messages": {

79- "native": "auto",
80- "nativeSkills": "auto",
81- "restart": true,
82- "ownerDisplay": "raw"
83- },
84- "channels": {
85: "discord": {
86- "enabled": true,
87- "token": "my bot token",
88- "groupPolicy": "allowlist",
89: "streaming": {
90- "mode": "off"
91- },
92- "dmPolicy": "pairing",
93- "dm": {
94- "enabled": true
95- },

133- },
134- "plugins": {
135- "slots": {
136- "memory": "clawvault"
137- },
138- "entries": {
139: "discord": {
140- "enabled": true,
141- "config": {}
142- },
143- "diffs": {
144- "enabled": true,
145- "config": {}

lyric carbonBOT
#

nice, weโ€™ve got the exact bad shape now.

Run this exact rewrite, it makes a backup first:

node -e 'const fs=require("fs"); const p="/data/.openclaw/openclaw.json"; const s=fs.readFileSync(p,"utf8"); const next=s.replace(/"streaming"\s*:\s*\{\s*"mode"\s*:\s*"([^"]+)"\s*\}/m, (_,m)=>`"streaming": "${m}"`); if(next===s){console.error("No match found"); process.exit(1)} fs.copyFileSync(p,p+".bak"); fs.writeFileSync(p,next); console.log("updated", p, "backup:", p+".bak");'

Then validate:

openclaw doctor

If that comes back clean, restart/redeploy the Railway service.

If you want, paste the openclaw doctor output after that and Iโ€™ll sanity-check it.

normal zodiac
#

updated /data/.openclaw/openclaw.json backup: /data/.openclaw/openclaw.json.bak

lyric carbonBOT
#

good, that part worked ๐ŸŽ‰

Now run:

openclaw doctor

If itโ€™s clean, restart/redeploy the Railway service.

If doctor still complains, paste the new output and Iโ€™ll keep going with you.

normal zodiac
#

โ—‡ Gateway โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚ โ”‚
โ”‚ Gateway not running. โ”‚
โ”‚ โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ
โ”‚
โ—‡ Gateway connection โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚ โ”‚
โ”‚ Gateway target: ws://127.0.0.1:18789 โ”‚
โ”‚ Source: local loopback โ”‚
โ”‚ Config: /data/.openclaw/openclaw.json โ”‚
โ”‚ Bind: loopback โ”‚
โ”‚ โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ
โ”‚
โ—‡ Gateway โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚ โ”‚
โ”‚ systemd user services are unavailable; install/enable systemd or run the gateway under โ”‚
โ”‚ your supervisor. โ”‚
โ”‚ If you're in a container, run the gateway in the foreground instead of openclaw โ”‚ โ”‚ gateway. โ”‚
โ”‚ โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ
Run "openclaw doctor --fix" to apply changes.
Config was last written by a newer OpenClaw (2026.4.9); current version is 2026.3.13.
โ”‚
โ”” Doctor complete.

lyric carbonBOT
#

okay, the streaming shape is fixed now. The new blocker is version skew:

  • your runtime: 2026.3.13
  • config last written by: 2026.4.9

So the real fix now is to upgrade the Railway deploy to 2026.4.9 or newer, then redeploy.

Also, ignore the systemd user services are unavailable warning. On Railway thatโ€™s expected, because itโ€™s a container, not a systemd host.

Relevant docs:

If you paste your Railway start command, Dockerfile, or how you installed OpenClaw there, I can tell you the exact thing to change.