#prevent spam

1 messages · Page 1 of 1 (latest)

hazy ermine
#

how to prevent spam ans or chat stuck? When model fallback fail, it stuck a replying ok or sth weird, then I keep send msg but not seeing it send out, when get back to model, it keep answering those msg that i thought was stuck or unsend

dawn grailBOT
mortal duneBOT
#

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

dawn grailBOT
floral vectorBOT
#

That sounds like queue backlog, not truly “unsent” messages. When the model/fallback hangs, OpenClaw can keep queued messages for that session, then drain them once it recovers.

I’d do this first:

  • Check version: openclaw --version
  • In that chat/session, set:
    • Recommended: /queue collect debounce:2s cap:5 drop:old
    • If you want newest message to win and kill backlog: /queue interrupt
  • When it starts the weird ok... loop, run /stop, then send one fresh message.
  • Avoid steer-backlog, it can look like duplicate replies later.

For a permanent config, set something like:

{
  messages: {
#
    queue: {
      mode: "collect",
      debounceMs: 2000,
      cap: 5,
      drop: "old",
      byChannel: {
        discord: "collect"
      }
    }
  },
  agents: {
    defaults: {
      model: {
        primary: "your-main-model",
        fallbacks: ["your-reliable-fallback-model"]
#
  • openclaw models status
  • the relevant lines from openclaw logs --follow
hazy ermine
#

whats bychannel mean and usage,

floral vectorBOT
#

byChannel means per chat platform/surface override, not per Discord room/thread ID.

So this:

messages: {
  queue: {
    mode: "collect",
    byChannel: {
      discord: "interrupt",
      telegram: "collect",
      whatsapp: "collect"
    }
  }
}
#

means:

  • default for everything = collect
  • but Discord uses interrupt
  • Telegram/WhatsApp use collect

So byChannel.discord = “for all Discord chats”.

If you want to change just one current thread/session, use /queue ... in that chat instead of config.

Also, same idea exists in other places, for example:

messages: {
  inbound: {
    debounceMs: 2000,
hazy ermine
#

i use tui, how to message and queue? and i see it always become connected | idle , but not finish the chat, stop at middle, how to i know its running or not, show i send a msg

floral vectorBOT
#

Yep, in TUI you can do both.

Send a message

  • Just type and press Enter
  • If you want replies posted out to a real chat channel too, turn on:
    • /deliver on

Change queue mode in TUI

Type these directly in the TUI input:

  • /queue collect debounce:2s cap:5 drop:old
    • good default, batches spammy followups
  • /queue interrupt
    • newest message wins, kills backlog
  • /queue default
    • reset to normal/default behavior
#

What connected | idle means

That usually means:

  • connected = TUI is still connected to the Gateway
  • idle = there is no active run right now

So if the reply stopped in the middle and it already says idle, it is not still generating. It probably ended, aborted, or errored.

How to tell if it’s running

In TUI status line:

  • running or streaming = active
  • idle = not running
  • error = failed

Also run:

#
  • /status

And outside TUI, check:

openclaw --version
openclaw status
openclaw models status
openclaw logs --follow

What to do when it cuts off mid-reply

Don’t keep sending many messages. I’d do:

  1. /status
  2. Esc or /abort
  3. send one fresh message
hazy ermine
#

/status

🦞 OpenClaw 2026.4.14 (323493f)
🧠 Model: nvidia/moonshotai/kimi-k2-thinking · 🔑 api-key (models.json)
🔄 Fallbacks: google/gemini-3.1-flash-lite-preview, google/gemini-3-flash-preview, ollama/glm-5:cloud,
nvidia/z-ai/glm4.7, google/gemini-2.5-flash, google/gemini-2.5-flash-lite, google/gemma-4-31b-it,
openrouter/google/gemma-4-31b-it:free, llamacpp/gemma-4-26B-A4B-it-UD-Q5_K_S
🧮 Tokens: 37k in / 177 out · 💵 Cost: $0.0000
🗄️ Cache: 99% hit · 3.8m cached, 0 new
📚 Context: 37k/252k (15%) · 🧹 Compactions: 1
🧵 Session: agent:main:main • updated just now
⚙️ Runtime: direct · Think: adaptive
🪢 Queue: collect (depth 0)
connected | idle
agent main (Yumika) | session main (openclaw-tui) | nvidia/moonshotai/kimi-k2-thinking | think
adaptive | tokens 37k/252k (15%)

hazy ermine
#

?

floral vectorBOT
#

For your case, I’d use this in TUI:

/queue collect debounce:2s cap:5 drop:old

Why:

  • collect = batches extra messages instead of replying to each one
  • debounce:2s = waits a bit before starting the followup
  • cap:5 = only keep a small backlog
  • drop:old = throw away older queued stuff, keep newer messages

If you want the newest message only and don’t care about backlog, use:

/queue interrupt