#Tavily free search fails, but the openclaw reorts no error
1 messages Ā· Page 1 of 1 (latest)
Let me check the current docs and source for Tavily specifically, because ādies with no logā usually means a startup/provider init regression rather than the search request itself.
Yeah, I think this is most likely a config-shape break from newer builds.
Tavily now needs to live on the plugin-owned path:
{
plugins: {
entries: {
tavily: {
enabled: true,
config: {
webSearch: {
apiKey: "tvly-..."
}
}
}
}
},
tools: {
web: {
search: {
provider: "tavily"
}
}
}
}
If your config is still using an older shape like tools.web.search.tavily.*, newer validation rejects it, and that can look like āOpenClaw just diesā instead of failing nicely.
Also, from current source, Tavily is explicitly excluded from the legacy web-search auto-migration, so openclaw doctor --fix may not repair this one for you automatically.
Can you paste these 3 outputs?
openclaw --version
openclaw config validate
openclaw doctor
Docs:
- https://docs.openclaw.ai/help/faq
- https://docs.openclaw.ai/tools/tavily
- https://docs.openclaw.ai/cli/config
If you want, paste your tools.web.search + plugins.entries.tavily config block and Iāll tell you the exact fix.
Ok, that was one problem, And I fixed it, but for some reason openclaw response flow is somehow messed up. When I ask it to do something, it does not do what I'm asking but goes on with the previous task, which was already done. What is really going on openclaw newest update v2026.4.14?
Iām checking whether this lines up with a known session/state bug, because ākeeps acting on the previous completed taskā sounds more like bad session resume/state than Tavily itself.
That sounds like a real bug, not Tavily.
I checked current changelog/source, and there is an unreleased fix that matches your symptom almost perfectly: on some fallback retries, OpenClaw was losing the current prompt and only sending a generic ācontinueā with session history. When that happens, the retrying model grabs the previous task in the thread and keeps going with that.
So the likely flow is:
- your turn hits a provider error or timeout,
- OpenClaw retries or falls back,
- the retry loses your new ask,
- the model continues the last task it still sees in session history.
Quick test:
- run
/newin that thread, - ask a totally different task,
- if that fixes it, itās very likely session/fallback contamination.
Iād also do these:
- restart the gateway after the update,
- if you have fallback enabled, temporarily pin one provider/model family,
- watch
openclaw logs --followduring one bad turn.
If you want, paste:
openclaw logs --follow
plus which provider family youāre using (OpenAI, Anthropic, Ollama, etc.), and I can narrow it down more.
If it still reproduces on a fresh /new session in 2026.4.14, Iād call that bug territory and file it here:
https://github.com/openclaw/openclaw/issues
After the /new and gw restart I had a converstaion like this (Esa is the bot): "Dale Herva, [16. Apr 2026 at 17.29.41]:
/new
Esa, [16. Apr 2026 at 17.29.47]:
Hello!
Dale Herva, [16. Apr 2026 at 17.31.49]:
Pls tell me what is 1+2?
Esa, [16. Apr 2026 at 17.31.54]:
1 + 2 = 3. What would you like to work on today?
Dale Herva, [16. Apr 2026 at 17.32.55]:
Ok, good. Next tell me how much people live in Helsinki?
Esa, [16. Apr 2026 at 17.33.02]:
Approx)", "basic", " }, { " 100-250", " }, { " об/об/мин", null ]
},
{ "": " " type="?https://((=}, " ]," ,as
)))Š¾ŃŠ²ŠµŃŃŠ°ŃŃļ¼ļ¼{:old"]}}__:" 1{2324})0}24)0:1150:0150/0360010102015020000450360050600200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
Ah, this changes the diagnosis a lot.
That is not a stale-session problem anymore. /new worked, the math reply was fine, then the Helsinki turn returned corrupted JSON-ish/tool-call garbage. That usually means the model/provider or tool-call path is breaking, not conversation memory.
My read is:
- simple text turn works,
- next turn likely triggered
web_searchor another tool path, - the provider/model streamed malformed structured output,
- OpenClaw surfaced the garbage instead of a normal answer.
So at this point Iād test without web search first:
openclaw config set tools.web.search.enabled false
Then ask the Helsinki question again.
- If it works, the breakage is in the search/tool path (possibly Tavily-related, possibly model+tool-call compatibility).
- If it still breaks, the issue is more likely your model/provider backend.
Then re-enable search later with:
openclaw config set tools.web.search.enabled true
Also, that kind of blob is especially common with local/OpenAI-compatible backends (Ollama, LM Studio, vLLM, custom proxies) or weaker tool-calling setups.
If you want, send me these next and I can narrow it down fast:
openclaw logs --follow
and tell me which provider family youāre using.
Docs:
- https://docs.openclaw.ai/tools/web
- https://docs.openclaw.ai/gateway/local-models
- https://docs.openclaw.ai/gateway/troubleshooting
If this reproduces with tools.web.search.enabled false, Iād file it as a real bug: https://github.com/openclaw/openclaw/issues
I now checked the json file and there is no tools.web.search.enabled true, actually there is not even any "tools.web.search" . So I assume that must be restored first, right?
Not necessarily.
If tools.web.search is missing entirely, OpenClaw treats web search as enabled by default and auto-detects a provider from whatever credentials are configured.
So:
- missing
tools.web.searchis not itself broken - you only need to add it if you want to:
- disable search for testing, or
- force Tavily specifically
That second bit matters here, because in auto-detect mode Tavily is just one candidate. If you have other search creds configured, OpenClaw may pick another provider first.
If you want to pin Tavily, make it explicit:
{
tools: {
web: {
search: {
enabled: true,
provider: "tavily",
},
},
},
plugins: {
entries: {
tavily: {
enabled: true,
config: {
webSearch: {
apiKey: "tvly-..."
},
},
},
},
},
}
And if you want to do the isolation test I mentioned earlier, then yes, add:
{
tools: {
web: {
search: {
enabled: false
}
}
}
}
So short version: no, you do not need to ārestoreā tools.web.search just to make search exist. But yes, itās useful to add it now if you want deterministic behavior while debugging.
Docs:
If you paste your current plugins.entries.tavily block, I can tell you whether Tavily is actually pinned or just auto-detected.
here is the current plugins block: " "plugins": {
"entries": {
"telegram": {
"enabled": true
},
"openrouter": {
"enabled": true
},
"anthropic": {
"enabled": true
},
"ollama": {
"enabled": true
},
"tavily": {
"enabled": true,
"config": {
"webSearch": {
"apiKey": "tvly-dev-XYZā
}
}
}
}
}"
Yep, this explains a lot.
Your plugins.entries.tavily block makes Tavily available, but it does not pin web search to Tavily.
Because you have openrouter enabled, and likely an OPENROUTER_API_KEY in env/config, auto-detect can pick Perplexity via OpenRouter before it ever gets to Tavily. Tavily is later in the auto-detect order.
So Iād add this explicitly:
{
tools: {
web: {
search: {
enabled: true,
provider: "tavily",
},
},
},
}
Your Tavily plugin block can stay as-is.
Two important gotchas:
- If that closing quote in your real file is literally a curly quote (
ā) instead of a normal", fix it. - If
tvly-dev-XYZwas a real public key and not redacted, rotate it, this thread is public.
After editing, run:
openclaw config validate
So short version: Tavily is configured, but not forced. Right now youāre probably debugging auto-detected search, not guaranteed Tavily.
Docs:
- https://docs.openclaw.ai/tools/web
- https://docs.openclaw.ai/tools/tavily
- https://docs.openclaw.ai/cli/config
If you want, paste your tools block too, and Iāll tell you exactly what OpenClaw is likely selecting.
Hello. I am a Senior Software Engineer. I think I can help you resolve your issue. If you have any questions or need assistance with project development, please contact me via DM.
Thanks, but please keep troubleshooting in the thread, not DMs, so others can benefit and it stays searchable on Answer Overflow.
daleh, the most useful next step is still to explicitly pin:
tools: {
web: {
search: {
enabled: true,
provider: "tavily",
},
},
}
Then run:
openclaw config validate
If it still breaks after that, paste the tools block and the bad-turn log snippet here.
After these changes that you provided, I had a discussion like this with bot by the name Esa: "Dale Herva, [16. Apr 2026 at 18.54.01]:
/new
Esa, [16. Apr 2026 at 18.54.09]:
Hey Dale! š It's Esa here, your warm and helpful AI assistant. I'm using the nemotron-free model today. What would you like to work on?
Dale Herva, [16. Apr 2026 at 18.54.26]:
What is 1+3?
Esa, [16. Apr 2026 at 18.54.31]:
1 + 3 equals 4.
Dale Herva, [16. Apr 2026 at 18.55.26]:
how much people live in Helsinki?
Esa, [16. Apr 2026 at 18.57.33]:
Helsinki has about 680,000 people living in the city itself, with around 1.5 million in the greater metropolitan area. Would you like more specific details?
Dale Herva, [16. Apr 2026 at 18.58.26]:
What is the weather tomorrow in Espoo?
Esa, [16. Apr 2026 at 18.58.44]:
Let me first check the current files to understand the context.
Let me look at AGENTS.md first to
Now let me check SOUL.md to understand myterior Š½ŃŠ¼ŠµŃŃ aconseguir
tall γιαā¦ā¦.ā
/taskattet/testingį»±uchnikactivitiesÅ”kih thinner waitedį»±uŠ”ŃŠ“Šøstitution.patch&\SÄdziowie"
Yeah, this makes it much clearer.
At this point, I do not think Tavily is the main problem anymore.
The Helsinki answer came back fine. The weather turn is where it broke, and it broke in a very specific way:
- it leaked internal planning text (
check AGENTS.md,SOUL.md) - then it degenerated into garbage output
That is classic model/tool reliability failure, not āTavily is misconfiguredā.
Also, your bot explicitly said it was on nemotron-free. That is a big clue. Weak/free models often do okay on tiny factual questions, then fall apart the moment the agent needs tools, skills, or stricter output discipline.
So my recommendation now is:
- Keep Tavily pinned
tools: {
web: {
search: {
enabled: true,
provider: "tavily",
},
},
}
-
Stop debugging Tavily for a moment
The remaining bug looks model-side. -
Switch away from the free/weak model for agent/tool work
Use a stronger tool-reliable model/provider from your allowlist.
- If you have fallbacks enabled, make sure it is not falling back to a weak/free model
That can make turns look randomly broken.
For current model recommendations, ask in #models, and check:
- https://docs.openclaw.ai/concepts/models
- https://docs.openclaw.ai/concepts/models#model-discussions-community-notes
So short version: Tavily config was one issue, but this latest transcript is a separate model-quality/tool-discipline issue.
Sad to hear that nvidia/nemotron is so bad LLM.
Yeah, I wouldnāt call it universally bad, but it does look bad for this kind of agent/tool workflow.
Thatās the annoying part, plain chat can look fine, then the moment it needs tool discipline or hidden planning, it falls apart.
So Iād frame it as:
- okay-ish for lightweight chat
- not reliable enough here for tool-enabled OpenClaw use
For up-to-date model picks, check #models and:
https://docs.openclaw.ai/concepts/models#model-discussions-community-notes
If this fixed the Tavily mystery, please right-click the solution message ā Apps ā ā Mark Solution so Answer Overflow can index it.
It tried to mark solution as checked but the application again refused to respond