openclaw - 💡(How to fix) Fix [Bug]: msteams "JWT Validation Failed" on 2026.4.25+ [1 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
openclaw/openclaw#73068Fetched 2026-04-28 06:27:55
View on GitHub
Comments
0
Participants
1
Timeline
3
Reactions
0
Participants
Timeline (top)
labeled ×2cross-referenced ×1

After upgrading to 2026.4.25, the msteams channel is broken. The bot doesn't respond to anyone and I see this in the logs when a message is sent. It's also happening on 2026.4.26-beta.1

I'm aware of #70724 but that landed in 2026.4.23 I believe, and that version (as well as 4.24) works for me.

{
    "0": "{\"name\":\"msteams\"}",
    "1": "JWT validation failed",
    "_meta": {
        "runtime": "node",
        "runtimeVersion": "24.14.0",
        "hostname": "f80b752ca85f",
        "name": "{\"name\":\"msteams\"}",
        "parentNames": [
            "openclaw"
        ],
        "date": "2026-04-27T22:22:36.650Z",
        "logLevelId": 2,
        "logLevelName": "DEBUG",
        "path": {
            "fullFilePath": "file:///app/dist/plugins/runtime/index.js:146:39",
            "fileName": "index.js",
            "fileNameWithLine": "index.js:146",
            "fileColumn": "39",
            "fileLine": "146",
            "filePath": "dist/plugins/runtime/index.js",
            "filePathWithLine": "dist/plugins/runtime/index.js:146",
            "method": "Object.debug"
        }
    },
    "time": "2026-04-27T22:22:36.651+00:00",
    "hostname": "f80b752ca85f",
    "message": "JWT validation failed"
}

My channel config:

  "channels": {
    "msteams": {
      "enabled": true,
      "configWrites": false,
      "replyStyle": "top-level",
      "dmPolicy": "open",
      "allowFrom": ["*"],
      "groupPolicy": "open",
      "groupAllowFrom": ["*"],
      "authType": "federated",
      "appId": "${MSTEAMS_APP_ID}",
      "tenantId": "${MSTEAMS_TENANT_ID}",
      "certificatePath": "/home/node/.openclaw/certs/msteams.pem",
      "sharePointSiteId": "redacted",
      "webhook": {
        "port": 3978,
        "path": "/api/messages"
      },
      "teams": {
        "My Team": {
          "requireMention": true,
          "tools": {
            "allow": [
              "read",
              "group:messaging",
              "group:sessions",
              "group:memory",
              "rag_query"
            ]
          }
        }
      }
    }
  },

Error Message

The bot doesn't respond due to a JWT validation error on the MS Teams webhook

Root Cause

After upgrading to 2026.4.25, the msteams channel is broken. The bot doesn't respond to anyone and I see this in the logs when a message is sent. It's also happening on 2026.4.26-beta.1

I'm aware of #70724 but that landed in 2026.4.23 I believe, and that version (as well as 4.24) works for me.

{
    "0": "{\"name\":\"msteams\"}",
    "1": "JWT validation failed",
    "_meta": {
        "runtime": "node",
        "runtimeVersion": "24.14.0",
        "hostname": "f80b752ca85f",
        "name": "{\"name\":\"msteams\"}",
        "parentNames": [
            "openclaw"
        ],
        "date": "2026-04-27T22:22:36.650Z",
        "logLevelId": 2,
        "logLevelName": "DEBUG",
        "path": {
            "fullFilePath": "file:///app/dist/plugins/runtime/index.js:146:39",
            "fileName": "index.js",
            "fileNameWithLine": "index.js:146",
            "fileColumn": "39",
            "fileLine": "146",
            "filePath": "dist/plugins/runtime/index.js",
            "filePathWithLine": "dist/plugins/runtime/index.js:146",
            "method": "Object.debug"
        }
    },
    "time": "2026-04-27T22:22:36.651+00:00",
    "hostname": "f80b752ca85f",
    "message": "JWT validation failed"
}

My channel config:

  "channels": {
    "msteams": {
      "enabled": true,
      "configWrites": false,
      "replyStyle": "top-level",
      "dmPolicy": "open",
      "allowFrom": ["*"],
      "groupPolicy": "open",
      "groupAllowFrom": ["*"],
      "authType": "federated",
      "appId": "${MSTEAMS_APP_ID}",
      "tenantId": "${MSTEAMS_TENANT_ID}",
      "certificatePath": "/home/node/.openclaw/certs/msteams.pem",
      "sharePointSiteId": "redacted",
      "webhook": {
        "port": 3978,
        "path": "/api/messages"
      },
      "teams": {
        "My Team": {
          "requireMention": true,
          "tools": {
            "allow": [
              "read",
              "group:messaging",
              "group:sessions",
              "group:memory",
              "rag_query"
            ]
          }
        }
      }
    }
  },

Code Example

{
    "0": "{\"name\":\"msteams\"}",
    "1": "JWT validation failed",
    "_meta": {
        "runtime": "node",
        "runtimeVersion": "24.14.0",
        "hostname": "f80b752ca85f",
        "name": "{\"name\":\"msteams\"}",
        "parentNames": [
            "openclaw"
        ],
        "date": "2026-04-27T22:22:36.650Z",
        "logLevelId": 2,
        "logLevelName": "DEBUG",
        "path": {
            "fullFilePath": "file:///app/dist/plugins/runtime/index.js:146:39",
            "fileName": "index.js",
            "fileNameWithLine": "index.js:146",
            "fileColumn": "39",
            "fileLine": "146",
            "filePath": "dist/plugins/runtime/index.js",
            "filePathWithLine": "dist/plugins/runtime/index.js:146",
            "method": "Object.debug"
        }
    },
    "time": "2026-04-27T22:22:36.651+00:00",
    "hostname": "f80b752ca85f",
    "message": "JWT validation failed"
}

---

"channels": {
    "msteams": {
      "enabled": true,
      "configWrites": false,
      "replyStyle": "top-level",
      "dmPolicy": "open",
      "allowFrom": ["*"],
      "groupPolicy": "open",
      "groupAllowFrom": ["*"],
      "authType": "federated",
      "appId": "${MSTEAMS_APP_ID}",
      "tenantId": "${MSTEAMS_TENANT_ID}",
      "certificatePath": "/home/node/.openclaw/certs/msteams.pem",
      "sharePointSiteId": "redacted",
      "webhook": {
        "port": 3978,
        "path": "/api/messages"
      },
      "teams": {
        "My Team": {
          "requireMention": true,
          "tools": {
            "allow": [
              "read",
              "group:messaging",
              "group:sessions",
              "group:memory",
              "rag_query"
            ]
          }
        }
      }
    }
  },

---

ingress:
  - hostname: example.com
    path: /api/messages
    service: http://localhost:3978
  - service: http_status:404

---
RAW_BUFFERClick to expand / collapse

Bug type

Regression (worked before, now fails)

Beta release blocker

No

Summary

After upgrading to 2026.4.25, the msteams channel is broken. The bot doesn't respond to anyone and I see this in the logs when a message is sent. It's also happening on 2026.4.26-beta.1

I'm aware of #70724 but that landed in 2026.4.23 I believe, and that version (as well as 4.24) works for me.

{
    "0": "{\"name\":\"msteams\"}",
    "1": "JWT validation failed",
    "_meta": {
        "runtime": "node",
        "runtimeVersion": "24.14.0",
        "hostname": "f80b752ca85f",
        "name": "{\"name\":\"msteams\"}",
        "parentNames": [
            "openclaw"
        ],
        "date": "2026-04-27T22:22:36.650Z",
        "logLevelId": 2,
        "logLevelName": "DEBUG",
        "path": {
            "fullFilePath": "file:///app/dist/plugins/runtime/index.js:146:39",
            "fileName": "index.js",
            "fileNameWithLine": "index.js:146",
            "fileColumn": "39",
            "fileLine": "146",
            "filePath": "dist/plugins/runtime/index.js",
            "filePathWithLine": "dist/plugins/runtime/index.js:146",
            "method": "Object.debug"
        }
    },
    "time": "2026-04-27T22:22:36.651+00:00",
    "hostname": "f80b752ca85f",
    "message": "JWT validation failed"
}

My channel config:

  "channels": {
    "msteams": {
      "enabled": true,
      "configWrites": false,
      "replyStyle": "top-level",
      "dmPolicy": "open",
      "allowFrom": ["*"],
      "groupPolicy": "open",
      "groupAllowFrom": ["*"],
      "authType": "federated",
      "appId": "${MSTEAMS_APP_ID}",
      "tenantId": "${MSTEAMS_TENANT_ID}",
      "certificatePath": "/home/node/.openclaw/certs/msteams.pem",
      "sharePointSiteId": "redacted",
      "webhook": {
        "port": 3978,
        "path": "/api/messages"
      },
      "teams": {
        "My Team": {
          "requireMention": true,
          "tools": {
            "allow": [
              "read",
              "group:messaging",
              "group:sessions",
              "group:memory",
              "rag_query"
            ]
          }
        }
      }
    }
  },

Steps to reproduce

  1. Connect msteams channel to 2026.4.25 or 2026.4.26-beta.1
  2. Enable debug logging
  3. Message bot
  4. Observe no reply and "JWT Validation Failed" log entry in daily log file

Expected behavior

The bot responds

Actual behavior

The bot doesn't respond due to a JWT validation error on the MS Teams webhook

OpenClaw version

2026.4.25

Operating system

Ubuntu 24.04.4 LTS

Install method

docker

Model

openai/gpt-5.4

Provider / routing chain

openclaw -> openai

Additional provider/model setup details

The MS Teams webhook is exposed with a cloudflared tunnel and port 3978 is exposed on the docker container to the host: 0.0.0.0:3978->3978/tcp

ingress:
  - hostname: example.com
    path: /api/messages
    service: http://localhost:3978
  - service: http_status:404

Logs, screenshots, and evidence

Impact and severity

Affected: MS Teams users on 2026.4.25+ Severity: High Frequency: Always Consequences: Broken bot

Additional information

No response

extent analysis

TL;DR

The most likely fix is to investigate and resolve the JWT validation issue, potentially related to changes in the 2026.4.25 and 2026.4.26-beta.1 versions.

Guidance

  • Verify the JWT validation process and check for any updates or changes in the 2026.4.25 and 2026.4.26-beta.1 versions that may be causing the issue.
  • Review the channel configuration, especially the authType set to federated, and ensure that the appId and tenantId are correctly set and match the expected values.
  • Check the certificate path /home/node/.openclaw/certs/msteams.pem and ensure it is correctly configured and accessible.
  • Consider testing with a previous version, such as 2026.4.23 or 2026.4.24, to isolate the issue and determine if it is specific to the newer versions.

Example

No code example is provided as the issue seems to be related to configuration and version changes rather than a specific code snippet.

Notes

The issue may be related to changes in the JWT validation process or the federated auth type configuration. Further investigation is needed to determine the root cause.

Recommendation

Apply a workaround by testing with a previous version, such as 2026.4.23 or 2026.4.24, to isolate the issue and determine if it is specific to the newer versions. This will help to identify if the issue is version-specific and potentially provide a temporary solution until the root cause is resolved.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

FAQ

Expected behavior

The bot responds

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

openclaw - 💡(How to fix) Fix [Bug]: msteams "JWT Validation Failed" on 2026.4.25+ [1 participants]