openclaw - 💡(How to fix) Fix Telegram sticker cache not written when vision model is active (v2026.3.13) [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#49014Fetched 2026-04-08 00:49:45
View on GitHub
Comments
1
Participants
2
Timeline
1
Reactions
0
Timeline (top)
commented ×1

~/.openclaw/telegram/sticker-cache.json stops receiving new entries when the default model supports vision. The cache file was last written on March 5 and has not been updated since, despite static WEBP stickers being successfully downloaded and processed via native vision.

This means the AI can understand inbound stickers (via vision), but cannot learn new sticker fileIds for sending stickers back to users via sticker / sticker-search actions.

Error Message

  • Added console.error instrumentation to dispatchTelegramMessage() in three different bundle files - none produced output, suggesting the gateway daemon loads a different bundle copy than expected

Root Cause

~/.openclaw/telegram/sticker-cache.json stops receiving new entries when the default model supports vision. The cache file was last written on March 5 and has not been updated since, despite static WEBP stickers being successfully downloaded and processed via native vision.

This means the AI can understand inbound stickers (via vision), but cannot learn new sticker fileIds for sending stickers back to users via sticker / sticker-search actions.

Fix Action

Fix / Workaround

  • Sticker raw-update arrives at gateway (confirmed in debug logs)

  • Sticker webp file is downloaded to media/inbound/ (confirmed)

  • media:sticker placeholder appears in session context (confirmed)

  • Model receives native image and understands sticker content via vision (confirmed)

  • cacheSticker() in dispatchTelegramMessage() is never executed

  • sticker-cache.json is not updated

  • The cacheSticker() code exists in source (multiple bundle files: reply, discord, auth-profiles)

  • Added console.error instrumentation to dispatchTelegramMessage() in three different bundle files - none produced output, suggesting the gateway daemon loads a different bundle copy than expected

  • The sticker cache write block appears to never be reached during runtime

  • sendSticker outbound action also fails with 400 Bad Request wrong file identifier for cached entries (possibly stale fileIds)

RAW_BUFFERClick to expand / collapse

Summary

~/.openclaw/telegram/sticker-cache.json stops receiving new entries when the default model supports vision. The cache file was last written on March 5 and has not been updated since, despite static WEBP stickers being successfully downloaded and processed via native vision.

This means the AI can understand inbound stickers (via vision), but cannot learn new sticker fileIds for sending stickers back to users via sticker / sticker-search actions.

Environment

  • Version: OpenClaw 2026.3.13 (61d171a)
  • Platform: macOS (Apple Silicon), Node 25.8.1
  • Channel: Telegram (direct DM)
  • Config: channels.telegram.actions.sticker: true
  • Image model: google/gemini-3.1-pro-preview (supports vision)

Steps to Reproduce

  1. Configure a vision-capable model as default
  2. Enable channels.telegram.actions.sticker: true
  3. Send a static WEBP sticker to the bot via Telegram DM
  4. Check ~/.openclaw/telegram/sticker-cache.json - no new entry is added

Expected Behavior

New sticker metadata (fileId, fileUniqueId, emoji, setName, description) should be cached regardless of whether the model supports vision, so the AI can later send stickers back using sticker and sticker-search actions.

Actual Behavior

  • Sticker raw-update arrives at gateway (confirmed in debug logs)
  • Sticker webp file is downloaded to media/inbound/ (confirmed)
  • media:sticker placeholder appears in session context (confirmed)
  • Model receives native image and understands sticker content via vision (confirmed)
  • cacheSticker() in dispatchTelegramMessage() is never executed
  • sticker-cache.json is not updated

Investigation Notes

  • The cacheSticker() code exists in source (multiple bundle files: reply, discord, auth-profiles)
  • Added console.error instrumentation to dispatchTelegramMessage() in three different bundle files - none produced output, suggesting the gateway daemon loads a different bundle copy than expected
  • The sticker cache write block appears to never be reached during runtime
  • sendSticker outbound action also fails with 400 Bad Request wrong file identifier for cached entries (possibly stale fileIds)

Suggested Fix

Ensure cacheSticker() is called for inbound stickers regardless of stickerSupportsVision. Vision determines how the sticker is presented to the model, but caching the fileId is needed for the AI to send stickers back.

extent analysis

Fix Plan

To resolve the issue, we need to ensure that cacheSticker() is called for inbound stickers regardless of whether the model supports vision. Here are the steps to fix the issue:

  • Modify the dispatchTelegramMessage() function to call cacheSticker() for all inbound stickers, regardless of the model's vision support.
  • Update the condition to check if the sticker should be cached, ignoring the stickerSupportsVision flag.

Example code changes:

// Before
if (!stickerSupportsVision) {
  cacheSticker(sticker);
}

// After
cacheSticker(sticker);

Alternatively, if the stickerSupportsVision flag is required for other logic, you can modify the condition to:

// After
if (sticker && sticker.fileId) {
  cacheSticker(sticker);
}

Verification

To verify that the fix worked:

  • Send a static WEBP sticker to the bot via Telegram DM.
  • Check the ~/.openclaw/telegram/sticker-cache.json file for new entries.
  • Verify that the cacheSticker() function is called for inbound stickers by adding console logs or debugging statements.

Extra Tips

  • Ensure that the cacheSticker() function is properly implemented and updates the sticker-cache.json file correctly.
  • Review the dispatchTelegramMessage() function to ensure that it handles all possible scenarios and edge cases.
  • Consider adding additional logging or debugging statements to monitor the cacheSticker() function and sticker-cache.json file updates.

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…

Still need to ship something?

×6

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

Back to top recommendations

TRENDING