Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

[Bug] WeChat inbound images are downloaded but inaccessible to Claw analyze_image

Open
#2,358 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
52/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Quiet
Tech stack
rust
Domain
ai, backend

Research direction

Start by reading the WeChat inbound image conversion in src/crates/assembly/core/src/service/remote_connect/bot/weixin.rs around lines 220-255, then trace how text-only multimodal rendering handles the attachment in src/crates/assembly/core/src/agentic/execution/execution_engine.rs around lines 1908-1944. Reproduce the text-only Claw flow with a WeChat JPEG and verify that the image is inspectable without a missing workspace-relative path.

Written by the indexing model from the issue text.

Description

bug

Summary

When using BitFun's built-in WeChat gateway with Claw, an inbound image is downloaded successfully but cannot be inspected by a text-only primary model through the analyze_image tool.

The image is present as an inline data URL in the turn payload, but no local attachment path is created. Claw receives only the remote_img_<uuid> identifier and the tool treats it as a workspace-relative path.

Environment

  • BitFun: 0.2.17 (macOS Apple Silicon)
  • Channel: built-in WeChat gateway / Claw
  • Primary model: GLM-5.3 (text-only; image inputs disabled)
  • Reproduced: 2026-08-18

Steps to reproduce

  1. Configure a Claw session with a text-only primary model.
  2. Send a JPEG image to the Claw bot through WeChat.
  3. Let Claw try to inspect or describe the image.

Actual behavior

The image is received and displayed in the BitFun transcript, but Claw calls:

analyze_image(path="remote_img_<uuid>")

and fails with:

unable to locate image at <workspace>/remote_img_<uuid>: No such file or directory

The gateway logs show a successful CDN request immediately before the turn starts. The turn payload contains a valid data:image/jpeg;base64,... value, so the media download itself is not the failing step.

Expected behavior

One of these should happen:

  • Save the downloaded/decoded image in a session-scoped temporary directory and expose its real image_path; or
  • Make analyze_image accept the attachment ID / inline data URL directly; or
  • Route the attachment directly to a configured vision-capable primary model when available.

The current prompt says to use analyze_image when a path is available, but the WeChat adapter only supplies a data URL.

Upstream references

The current implementation still follows this path in 0.2.18:

I have not tested outbound file delivery in this report; this issue is specifically about inbound image inspection from WeChat.

Dominant language
Rust
Stars
2.3k
Forks
236
Avg merge
2h 56m
Merged PRs (30d)
619

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from GCWing/OpenBitFun

All issues in GCWing/OpenBitFun

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.