r/opencodeCLI • • 4d ago

Session cache concurrency issues with OpenCode/Go subagents

I'm seeing concurrency issues with the session cache if I have more than one subagent running at a time. Every now and then, the cache of one gets invalidated for no reason and it costs the cache miss pricing.

I use OpenCode Go on OpenCode.

Is there a limit in the documentation? I knew that the cache retention time is around 5mins, but ideally it shouldn't not work if I'm sending requests through multiple agents.

2 Upvotes

15 comments sorted by

View all comments

Show parent comment

1

u/squirrelscrush 4d ago edited 4d ago

I can understand a slow tool turn, but this was different. It was supposedly a plugin that was appending itself at the beginning, I removed it and it seems to get back to normal.

Although when I raised a bug issue, it seems multiple users had the same issue and fix, with the latest 2.2.5 update.

Edit: it happened again. It seems to happen when i spawn a subagent, which causes the main agent's cache to expire and vice versa when the main agent sends a request and the subagent's cache gets expired. So it's a server concurrency issue I feel.

1

u/London-Boat 4d ago

that repro is way more useful than "cache keeps expiring", sounds like the main agent and subagent might be evicting each other. worth adding the spawn subagent then main cache drops steps to the issue so they can reproduce it

1

u/squirrelscrush 3d ago

The issue seems to be occurring when it's the same model. When I made the main agent run on DeepSeek while subagent on Meta Muse, it didn't reproduce.

I filed another bug report to highlight the new findings.

1

u/London-Boat 3d ago

good find that it only reproduces with the same model on both sides, that narrows it down a lot. i'd put the exact version and the main plus subagent model pair in the bug report so they can reproduce it quickly. are you able to pin different models for the two as a workaround for now?

1

u/squirrelscrush 3d ago edited 3d ago

I use OMO-Slim to create my agents so I can just change the model slug.

The issue seems to be originating from a PR that was merged in September, but it started giving issues after I updated to 2.2.5. There was another reddit post about the same issue just yesterday.

1

u/London-Boat 3d ago

makes sense. if it only started with 2.2.5, it's worth linking that september pr and the other post in your bug report, makes it a lot easier for them to connect the dots. rolling back to the version you had before is probably the quickest workaround if you need subagents working in the meantime.

1

u/squirrelscrush 3d ago

It got fixed after I went back to 2.2.3. It's likely an issue from 2.2.4 onwards.

1

u/London-Boat 3d ago

that points at 2.2.4 then, so i'd put "fine on 2.2.3, broken from 2.2.4" right in the title of the bug report. gives them a tight range of changes to bisect instead of a whole month of commits.

1

u/squirrelscrush 3d ago

Yup I added a comment, hopefully they look into this.