Chat works, but memory search says embedding credits are exhausted

Adapted community discussion: Paraphrased and condensed from an anonymized public OpenClaw Discord support conversation from August 2026. Technical guidance was reviewed for OpenClaw 2026.9.3.

Chat is working through my monthly OpenAI subscription, but memory indexing fails with a 429 credit-balance error for an embedding model. I expected the subscription login to cover it, and the memory status says nothing has been indexed yet.

Do memory search and normal chat use different credentials?

Yes. Chat completion and memory embeddings can use different providers and credentials. A ChatGPT or Codex subscription does not automatically include OpenAI Platform API credits for embedding requests.

The choices are a separately funded embedding API credential, a supported local embedding provider, or keyword-only memory if your OpenClaw release supports that mode. Before choosing, run:

openclaw --version
openclaw memory status --deep --agent main

The zero indexed-file count confirms the search index has not been built. Keep memory results and provider credentials private.

I do not have Ollama, and the subscription OAuth cannot do embeddings. Does that mean I should use keyword-only memory? Is there a command to set it?

Keyword-only memory is a reasonable fallback because it does not require an embedding API. The provider setting moved between OpenClaw releases, and Windows Command Prompt handles quotes differently from a Unix shell. Check the installed version and stop if its config schema rejects the path rather than forcing an unknown key.

The direct command failed immediately because Windows treated the single quotes as literal characters. Then config get said that path did not exist.

That quoting was my mistake. I removed the strict JSON form and suggested the plain-string value, but the next validation result still matters more than the quoting fix.

The plain value parsed, but configuration validation still rejected memory.search as an unrecognized key on my installed release.

That confirms the installed release used a different config path. On OpenClaw 2026.9.3, keyword-only memory uses the none provider. Set it, verify it, then rebuild and inspect the index:

openclaw config set memory.search.provider none
openclaw config get memory.search.provider
openclaw memory index --force --agent main
openclaw memory status --deep --agent main

Normal Codex chat can remain on its existing authentication. This change concerns only the provider used to build the memory-search index.

Worth separating the two things colliding here: the chat credential and the embedding credential are independent, and a subscription login only covers the first. So the practical options are exactly the three the support replies name. If you want semantic recall without paying an embedding API, the local route is an Ollama embedder like nomic-embed-text: it runs fine on modest CPU hardware, and it is the same embedder we use for our LoCoMo benchmark runs, so it is a serious option, not a toy fallback. If you would rather not run any embedding provider, keyword-only memory is stronger than people expect, particularly when memory files are date-stamped so lexical search can sort by recency. Hybrid setups do this anyway: lexical (BM25) retrieval keeps working when the embedding provider is down or out of credits, which is the failure mode this thread documents. (I build ScallopBot, a self-hosted assistant with its own memory subsystem; the retrieval design is written up at ScallopBot Memory: Sleep & Self-Reflection .)