Skip to content

[Bug]: Matrix channel sends all messages of an iteration at once, hitting rate limits #45118

@MexHigh

Description

@MexHigh

Bug type

Behavior bug (incorrect output/state without crash)

Summary

I'm using the Matrix channel with OpenClaw.

During agentic workflows triggert via the Matrix channel that generate multiple messages (e.g., "translate these five files"), all individual messages are batched and sent at the end of the iteration instead of being delivered immediately as they are generated.

Despite being "unnatural", this causes Matrix rate-limit hits when ~10 messages are sent within this one second, resulting in lost messages beyond the rate limit.

Steps to reproduce

  1. Configure the Matrix channel
  2. Send a promt that causes multiple steps or iterations like "Read all files in and check, if these are in englisch and if so, translate to spanish".
  3. Wait for the responses to arrive
  4. Observe the rate limit errors in the gateway logs and the missing messages in Matrix

Expected behavior

I expect the messages to appear once they are generated, and not all at once when the iteration finishes.

Additionally, I expect that when hitting the channel's rate limits, the delivery of messages is retried later (Matrix returns, how long the rate limit will last and when additional requests can be made). However, when sending the messages one by one, it would stronly expect that rate limiting will not be a problem anymore.

Actual behavior

Messages are sent all at once, hitting rate limits around ~10 messages.

OpenClaw version

2026.3.8

Operating system

Ubuntu 24.04.4 LTS

Install method

Custom docker compose stack, but using the official Docker image

Model

ollama/glm-5:cloud and ollama/kimi-K2.5:cloud

Provider / routing chain

openclaw > local ollama in seperate Docker container > Ollama Cloud

Config file / key location

{
  // ...
  "channels": {
    "matrix": {
      "enabled": true,
      "homeserver": "https://matrix.READACTED",
      "accessToken": "READACTED",
      "encryption": true,
      "dm": {
        "policy": "allowlist",
        "allowFrom": [
          "@READACTED:matrix.READACTED"
        ]
      }
    }
  },
  // ...
  "plugins": {
    "allow": [
      "matrix"
    ],
    "entries": {
      "matrix": {
        "enabled": true
      }
    },
    "installs": {
      "matrix": {
        "source": "npm",
        "spec": "@openclaw/matrix",
        "installPath": "/home/node/.openclaw/extensions/matrix",
        "version": "2026.3.7",
        "resolvedName": "@openclaw/matrix",
        "resolvedVersion": "2026.3.7",
        "resolvedSpec": "@openclaw/matrix@2026.3.7",
        "integrity": "sha512-2Lh6F5te556Ks5UqNpKXOlpiaAU1qCaUEL7zlWyWHUvUQJ9Qg8Y8Fk1yCBCR2HVV2FVOBJqisqJ4STkJeT8QWw==",
        "shasum": "e85786d012256a552b08095f780d5864383d5491",
        "resolvedAt": "2026-03-11T18:27:19.310Z",
        "installedAt": "2026-03-11T18:27:33.066Z"
      }
    }
  }
}

Additional provider/model setup details

No response

Logs, screenshots, and evidence

2026-03-13T12:39:50.811+00:00 [matrix] final reply failed: Error: M_LIMIT_EXCEEDED: Too Many Requests
2026-03-13T12:39:51.548+00:00 MatrixHttpClient (REQ-4746) {
   errcode: 'M_LIMIT_EXCEEDED',
   error: 'Too Many Requests',
   retry_after_ms: 642
 }

Impact and severity

Affected: Users of the Matrix channel (and maybe other channels as well, see below)
Severity: Results in message loss, and is annoying
Frequency: always on slightly more complex prompts
Consequence: missed messages

Additional information

I only use the Matrix channel. I don't know if this affects other channels.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingbug:behaviorIncorrect behavior without a crash

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions