#Railway fix
32 messages ยท Page 1 of 1 (latest)
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. ๐ฆ
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)
that looks like version mismatch.
Your running build is validating channels.discord.streaming as a scalar, so it wants one of:
truefalse"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:
openclaw --version
because newer builds/docs use the nested shape (channels.discord.streaming.mode), but your logs show the Railway instance is on a build that still expects the older scalar form.
Docs for the newer shape:
If you paste your current channels.discord block, I can rewrite it exactly.
yep, then do it straight in the config file.
- Open the file:
nano /data/.openclaw/openclaw.json
- Find
channels.discord.streaming.
If it looks like this:
streaming: { mode: "partial" }
change it to this:
streaming: "partial"
Or safest for now:
streaming: "off"
- Save, then validate:
openclaw doctor
- Paste this too so we know which config shape your build expects:
openclaw --version
- If
doctorpasses, 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:
- edit
/data/.openclaw/openclaw.json - change
channels.discord.streamingto a scalar string - run:
openclaw doctor
- 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.
nano cant work cam=nt we run a commad to change it
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.
Invalid config:
- channels.discord.streaming: Invalid input (allowed: true, false, "off", "partial", "block", "progress")
this from doc
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.
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
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.
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.
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.
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": {}
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.
updated /data/.openclaw/openclaw.json backup: /data/.openclaw/openclaw.json.bak
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.
โ 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.
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.