L Loach Docs
Ctrl K

Sending & receiving messages

Generation runs through a single FIFO queue and Loach exposes whatever the provider reports. Most message-level oddities trace back to one of those two facts.

My new message is stuck on “waiting”

You sent a prompt in one chat but it shows a spinner without streaming anything.

Loach runs one generation at a time across all chats. If another chat is busy, your message is parked in a FIFO queue, and the chat shows a Waiting for other chats to finish… card.

See Concurrency & queue for the full rules.

The reply stopped halfway and shows an error

A streaming reply errored, and the bubble ends with an italic error line starting with ⚠.

Whatever streamed before the failure is kept - open the message’s … menu and use Copy message if you want to preserve it. To get a full answer, send the same prompt again, or click Regenerate in the same menu if it’s there (it’s offered on the last reply only). If errors repeat, see Providers & connections or Performance & VRAM.

An error line saying the reply stopped mid-reply means the server itself broke off partway: Ollama’s model runner crashed or ran out of memory, or an OpenAI-compatible server sent an error in the middle of the stream. The text after the colon is the reason, when the server gave one.

A reply you stopped yourself, or one cut short by Respond now, also keeps its partial text but gets no error line.

I see no “thinking” trace even though the model supports reasoning

A reasoning model is selected but no thinking block appears above the answer.

  1. Open the Parameters panel (Ctrl + Shift + P) and confirm the Thinking toggle is on for this chat. If it starts off in every new chat, check Settings → Features → Thinking and the model’s Allow thinking step switch on its page under Models.
  2. Make sure the model actually advertises the thinking capability - when it doesn’t, the Thinking row in the panel is disabled with This model doesn’t support a thinking step. Many tags of the same base model differ on this.
  3. The Thinking toggle is Ollama-only. In a chat on an OpenAI-compatible provider it’s disabled and reads off; a thinking block still appears there only if the server streams its reasoning as a separate reasoning_content or reasoning field (some DeepSeek, vLLM, llama.cpp and OpenRouter setups do, and so does Ollama’s own /v1 endpoint).

A formula shows as raw TeX instead of rendering

The reply contains \frac{a}{b} or similar and you see the source, not typeset math.

Which case it is:

See LaTeX math for the full rules.

The metrics chip is missing or doesn’t match my provider

A reply has no tokens-per-second chip, or its token count or speed doesn’t line up with what the backend or your provider’s dashboard reports.

See Generation stats for what each number means.

Compact context is greyed out or won’t run

The Compact context button in the context-usage popover is disabled, or compacting shows an error.

See Context & compaction.

Replies are off-topic, repetitive, or too short

The model is technically responding but the quality is poor.

Open the Parameters panel. Temperature, Max Tokens and Repeat Penalty only appear in its Advanced view:

Check the chat’s instructions too: in a Space with its own instructions, the chat’s Additional instructions are ignored. See Per-chat instructions.

An HTML preview shows the page but nothing on it works

In the code canvas, buttons, games or animations on a previewed page do nothing.

Previews open with the page’s scripts off - markup and styles only - and the bar above the page reads Offline sandbox · scripts off. Click Run scripts to turn them on for that page; another code block, or an edit to this one, starts with them off again. On macOS and Linux the preview runs on Loach’s own thread, so a script that never ends freezes the whole app until you quit it - only run pages you’re willing to restart for. While the reply is still streaming, the preview reads The preview appears when the code finishes generating. and Run scripts stays disabled until it’s done.

If the page still misbehaves with scripts on:

See HTML preview.

A message starting with / ran a command instead of sending

You typed a message that begins with /, and a command ran - or a Command failed notice appeared - instead of the message going to the model.

When the first word after the / is a slash command, Enter runs the command rather than sending. A command that fails - /new idea answers /new doesn’t take arguments. - leaves your text in the message box to fix. Anything else that starts with /, such as a path like /etc/hosts, is sent as a normal message, and so is text that starts with // or with / and a space (a // comment): those never open the command palette. To send text that begins with a command name, put a word before the slash.