openclaw - ✅(Solved) Fix [Bug]: gog gmail watch serve + Pub/Sub: active watch but no /hooks/gmail deliveries on OpenClaw 2026.4.5 [1 pull requests, 1 comments, 2 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#61697Fetched 2026-04-08 02:55:46
View on GitHub
Comments
1
Participants
2
Timeline
5
Reactions
0
Participants
Timeline (top)
labeled ×2commented ×1cross-referenced ×1unsubscribed ×1

Gmail watch via gog gmail watch serve and Pub/Sub appears active and healthy, but no Gmail webhook requests ever reach OpenClaw’s /hooks/gmail endpoint.

Error Message

04:13:17+00:00 warn gateway/hooks {"subsystem":"gateway/hooks"} gmail watcher not started: gmail topic required

Root Cause

Gmail watch via gog gmail watch serve and Pub/Sub appears active and healthy, but no Gmail webhook requests ever reach OpenClaw’s /hooks/gmail endpoint.

Fix Action

Fixed

PR fix notes

PR #61704: fix: improve gmail watcher log message for external webhook setups

Description (problem / solution / changelog)

Summary

Improves Gmail watcher log message to better clarify behavior when using external webhook setups (e.g. gog + Pub/Sub).

Problem

Users may see:

gmail watcher not started: gmail topic required

This can be confusing, as external webhook setups do not require the internal watcher.

Solution

  • Add clarification to log message
  • Indicate that external webhook setups are valid
  • Suggest checking /hooks/gmail endpoint

Impact

  • Better debugging experience
  • Reduces confusion for Gmail integrations

Related: #61697

Changed files

  • docs/.i18n/glossary.zh-CN.json (modified, +8/-0)
  • docs/docs.json (modified, +9/-0)
  • docs/tools/exec-approval-limitations.md (added, +21/-0)
  • src/hooks/gmail-watcher-lifecycle.test.ts (modified, +8/-2)
  • src/hooks/gmail-watcher-lifecycle.ts (modified, +5/-1)

Code Example

Include the key snippets we already gathered. You can paste this into that field:


**gog version:**


PS> .\gog.exe version
v0.12.0 (c18c58c 2026-03-09T05:53:14Z)


**gog Gmail watch status:**


PS> .\gog.exe gmail watch status --account zeus.lobster@gmail.com

account zeus.lobster@gmail.com
topic projects/zeus-god-is-alive/topics/gog-gmail-watch
labels INBOX
history_id 6038
expiration 2026-04-06T14:46:30-06:00
provider_expiration 2026-04-06T14:46:30-06:00
updated_at 2026-03-30T17:52:18-06:00
last_delivery_status ok
last_delivery_at 2026-03-30T17:52:18-06:00
last_push_message_id 18715057819460205


**Tailscale funnel:**


PS> tailscale funnel status

# Funnel on:
# - https://zeusdriver.tail4e3da6.ts.net

https://zeusdriver.tail4e3da6.ts.net (Funnel on)
|-- /gmail-pubsub proxy http://127.0.0.1:8789


**OpenClaw logs around startup and channels (no /hooks/gmail mentions even after test emails):**


04:13:17+00:00 info gateway {"subsystem":"gateway"} ready ()
04:13:17+00:00 warn gateway/hooks {"subsystem":"gateway/hooks"} gmail watcher not started: gmail topic required
04:13:56+00:00 info Discord: ok (@Zeus_bot) ()
04:13:56+00:00 info Telegram: ok (@Zeus_Claw_God_bot) ()
 (cron timers, channel restarts, etc.) 
(no /hooks/gmail or gmail entries while sending test emails)


**OpenClaw hooks config (excerpt):**


"hooks": {
  "enabled": true,
  "path": "/hooks",
  "mappings": [
    {
      "match": { "path": "gmail" },
      "action": "agent",
      "wakeMode": "now",
      "name": "Gmail",
      "sessionKey": "hook:gmail:{{messages[0].id}}",
      "messageTemplate": "New email from {{messages[0].from}}\nSubject: {{messages[0].subject}}\n{{messages[0].snippet}}\n{{messages[0].body}}",
      "deliver": true,
      "channel": "telegram",
      "to": "telegram:1888587348"
    },
    {
      "match": { "path": "gmail" },
      "action": "agent",
      "wakeMode": "now",
      "name": "Gmail (Discord)",
      "sessionKey": "hook:gmail:{{messages[0].id}}:discord",
      "messageTemplate": "New email from {{messages[0].from}}\nSubject: {{messages[0].subject}}\n{{messages[0].snippet}}\n{{messages[0].body}}",
      "deliver": true,
      "channel": "discord",
      "to": "discord:channel:1490559277901942915"
    }
  ],
  "gmail": {
    "account": "[email protected]"
  }
}
RAW_BUFFERClick to expand / collapse

Bug type

Regression (worked before, now fails)

Beta release blocker

No

Summary

Gmail watch via gog gmail watch serve and Pub/Sub appears active and healthy, but no Gmail webhook requests ever reach OpenClaw’s /hooks/gmail endpoint.

Steps to reproduce

  1. Install OpenClaw 2026.4.5 on Windows 10 with the gateway bound to loopback on port 18789.
  2. Install gog v0.12.0 and configure a Gmail watch for [email protected] with:
    • topic: projects/zeus-god-is-alive/topics/gog-gmail-watch
    • labels: INBOX.
  3. Configure Tailscale funnel so:
    • https://zeusdriver.tail4e3da6.ts.net/gmail-pubsub proxies to http://127.0.0.1:8789.
  4. Run gog.exe gmail watch serve so it listens on /gmail-pubsub and forwards to OpenClaw’s /hooks/gmail.
  5. In openclaw.json, enable hooks with a Gmail mapping:
    • "path": "/hooks" and a mapping with "match": { "path": "gmail" }.
  6. Start the OpenClaw gateway and channels; verify openclaw status shows Discord and Telegram OK.
  7. In a terminal, run openclaw logs --follow.
  8. From another account, send one or more test emails to [email protected].
  9. Observe that gog gmail watch status reports an active watch with last_delivery_status ok, but openclaw logs never show any POST /hooks/gmail or gmail entries and no Gmail hook mappings fire.

Expected behavior

Every time Gmail sends a Pub/Sub push for a new INBOX message, gog gmail watch serve should receive it and trigger an HTTP request that hits OpenClaw’s /hooks/gmail endpoint, causing the configured Gmail hook mappings (Telegram/Discord notifications) to fire.

Actual behavior

gog gmail watch status reports an active INBOX watch with last_delivery_status ok, Tailscale funnel and gog.exe are running, but when test emails are sent to [email protected] there are no POST /hooks/gmail or gmail entries in openclaw logs --follow and the configured Gmail hook mappings never fire, so no notifications are delivered.

OpenClaw version

2026.4.5

Operating system

windows 11

Install method

npm global

Model

Model gpt-5.1

Provider / routing chain

(Gmail webhook / gog integration issue)

Additional provider/model setup details

Primary models configured via local Ollama and OpenAI Codex:

  • Local provider: Ollama at http://127.0.0.1:11434 with models:
    • qwen3:8b (default primary),
    • gemma3:12b,
    • qwen3-coder:30b.
  • Cloud provider: OpenAI Codex (openai-codex/gpt-5.1) configured via OAuth profile in openclaw.json.

No Gmail behavior is tied to a specific model; the issue occurs regardless of which model is active.

Logs, screenshots, and evidence

Include the key snippets we already gathered. You can paste this into that field:


**gog version:**


PS> .\gog.exe version
v0.12.0 (c18c58c 2026-03-09T05:53:14Z)


**gog Gmail watch status:**


PS> .\gog.exe gmail watch status --account [email protected]

account [email protected]
topic projects/zeus-god-is-alive/topics/gog-gmail-watch
labels INBOX
history_id 6038
expiration 2026-04-06T14:46:30-06:00
provider_expiration 2026-04-06T14:46:30-06:00
updated_at 2026-03-30T17:52:18-06:00
last_delivery_status ok
last_delivery_at 2026-03-30T17:52:18-06:00
last_push_message_id 18715057819460205


**Tailscale funnel:**


PS> tailscale funnel status

# Funnel on:
# - https://zeusdriver.tail4e3da6.ts.net

https://zeusdriver.tail4e3da6.ts.net (Funnel on)
|-- /gmail-pubsub proxy http://127.0.0.1:8789


**OpenClaw logs around startup and channels (no /hooks/gmail mentions even after test emails):**


04:13:17+00:00 info gateway {"subsystem":"gateway"} ready ()
04:13:17+00:00 warn gateway/hooks {"subsystem":"gateway/hooks"} gmail watcher not started: gmail topic required
04:13:56+00:00 info Discord: ok (@Zeus_bot) ()
04:13:56+00:00 info Telegram: ok (@Zeus_Claw_God_bot) ()
(cron timers, channel restarts, etc.)(no /hooks/gmail or gmail entries while sending test emails)


**OpenClaw hooks config (excerpt):**


"hooks": {
  "enabled": true,
  "path": "/hooks",
  "mappings": [
    {
      "match": { "path": "gmail" },
      "action": "agent",
      "wakeMode": "now",
      "name": "Gmail",
      "sessionKey": "hook:gmail:{{messages[0].id}}",
      "messageTemplate": "New email from {{messages[0].from}}\nSubject: {{messages[0].subject}}\n{{messages[0].snippet}}\n{{messages[0].body}}",
      "deliver": true,
      "channel": "telegram",
      "to": "telegram:1888587348"
    },
    {
      "match": { "path": "gmail" },
      "action": "agent",
      "wakeMode": "now",
      "name": "Gmail (Discord)",
      "sessionKey": "hook:gmail:{{messages[0].id}}:discord",
      "messageTemplate": "New email from {{messages[0].from}}\nSubject: {{messages[0].subject}}\n{{messages[0].snippet}}\n{{messages[0].body}}",
      "deliver": true,
      "channel": "discord",
      "to": "discord:channel:1490559277901942915"
    }
  ],
  "gmail": {
    "account": "[email protected]"
  }
}

Impact and severity

Affected users/systems/channels:

  • Single-user OpenClaw assistant on Windows, using gog Gmail watch.
  • Channels: Discord and Telegram hooks that depend on /hooks/gmail.

Severity:

  • Blocks the intended Gmail → Zeus notification workflow (no automated inbox alerts).
  • Does not corrupt data, but removes a core feature of the setup.

Frequency:

  • Always reproducible since the issue started; no /hooks/gmail deliveries observed for any test emails.

Consequence:

  • New emails to [email protected] never trigger OpenClaw hooks, so there are no Discord/Telegram notifications and the assistant cannot react to new mail in real time.

Additional information

This appears to be a regression from a previously working state:

  • The same gog + Pub/Sub + Tailscale + /hooks/gmail setup initially delivered Gmail events into OpenClaw, and Discord/Telegram hooks fired as expected.
  • Without intentional changes to the Pub/Sub topic or the local webhook path, deliveries stopped; gog gmail watch status still reports last_delivery_status ok, but OpenClaw no longer sees any /hooks/gmail requests.
  • The break was first noticed around the time of upgrading OpenClaw from 2026.3.28 through 2026.4.2 and continuing into 2026.4.5, but based on logs it seems tied more to gog/Pub/Sub behavior than to the OpenClaw version itself.

extent analysis

TL;DR

The issue can be resolved by verifying the Tailscale funnel configuration and ensuring that gog.exe is correctly forwarding requests to OpenClaw's /hooks/gmail endpoint.

Guidance

  1. Verify Tailscale funnel configuration: Ensure that the Tailscale funnel is correctly configured to proxy requests from https://zeusdriver.tail4e3da6.ts.net/gmail-pubsub to http://127.0.0.1:8789.
  2. Check gog.exe forwarding: Confirm that gog.exe is correctly forwarding requests from /gmail-pubsub to OpenClaw's /hooks/gmail endpoint.
  3. Inspect OpenClaw logs: Closely examine the OpenClaw logs to identify any potential issues or errors that may be preventing the /hooks/gmail requests from being processed.
  4. Test with a different endpoint: Attempt to send a request to a different endpoint in OpenClaw to verify that the issue is specific to the /hooks/gmail endpoint.
  5. Review gog and Pub/Sub configuration: Double-check the gog and Pub/Sub configuration to ensure that it is correctly set up to send requests to the Tailscale funnel.

Example

No code snippet is provided as the issue appears to be related to configuration and setup rather than code.

Notes

The issue may be related to changes in the gog or Pub/Sub configuration, or issues with the Tailscale funnel setup. Further investigation is needed to determine the root cause of the problem.

Recommendation

Apply a workaround by verifying the Tailscale funnel configuration and ensuring that gog.exe is correctly forwarding requests to OpenClaw's /hooks/gmail endpoint. This should help to identify and potentially resolve the issue.

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

Every time Gmail sends a Pub/Sub push for a new INBOX message, gog gmail watch serve should receive it and trigger an HTTP request that hits OpenClaw’s /hooks/gmail endpoint, causing the configured Gmail hook mappings (Telegram/Discord notifications) to fire.

Still need to ship something?

×6

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

Back to top recommendations

TRENDING