My workflow is not doing what I expect
The first diagnostic step is usually to temporarily display the suspected value in a Simple message with {{codeblock myVariable}}.
The bot does not answer
Probable cause: Start is not connected, or a route ends without a block that produces an answer.
Where to look: follow every link from Start, including Else and failure branches. Check the problems panel.
Fix: connect every route to a response, an action that cleanly ends the turn, or a fallback.
A variable is empty or displayed literally
Probable cause: the identifier or alias changed, the reference contains a typo, or the producer block did not run on this route.
Where to look: type {{ in the field and compare suggestions with your reference. Display the producer block’s complete output.
Fix: select the variable from autocomplete and confirm the block is upstream on the same branch.
The bot does not cite documents
Probable cause: MCP Retriever is unavailable, the model does not call it, or the instruction does not require citations from its results.
Where to look: inspect {{listTools-1.tools}}, {{chatCompletion-1.genericToolCalls}}, then {{codeblock callTools-1.toolCallResults}}. Also check the Retriever server URL, allowed tools, and metadata.
Fix: make retriever_retrieve_information available, pass the catalog to both the LLM instruction and request, then require a search before answering and citations containing available document names and pages.
The user sees a technical error
Probable cause: an After failure output is not connected.
Where to look: LLM requests, MCP catalogs, tool calls, and any business HTTP calls unrelated to RAG.
Fix: connect each failure to a message such as: “I encountered a technical issue. Please try again in a few minutes.”
An MCP tool is never called
Probable cause: tools are not passed to the LLM request, or the genericToolCalls condition is incorrect.
Where to look: the request must receive {{listTools-1.tools}}. The condition can use gt (length chatCompletion-1.genericToolCalls) 0 without braces around the whole expression.
Fix: inspect the complete chain: catalog → instruction → LLM request → condition → tool call → rephrasing.
Saving is rejected
Probable cause: missing required field, unknown reference, or invalid JSON.
Where to look: the problems panel lets you navigate to every affected field.
Fix: resolve issues one at a time. Headers are objects {}, HTTP codes are arrays [200], and documents are arrays of objects.
A condition always chooses the same route
Probable cause: unexpected value type, entire expression wrapped in braces, empty variable, or overly complex condition.
Fix: display each value, reduce the expression to one simple test, then recombine tests with and, or, or not.
An HTTP call works outside Studio but fails here
Check Content-Type, body type, interpolated headers, accepted codes, response format, network access from the platform, and timeout.
Potential improvements
The source documentation identifies four areas for a simpler Studio experience:
- aliases generated from block names and references updated after renaming;
- dropdowns listing compatible blocks for documents, tools, instructions, and routing;
- URLs, headers, and rare options grouped under advanced configuration;
- ready-to-use blocks and examples for common architectures.
These are experience goals, not guaranteed current features.