conductor-oss/conductor · error · TerminateWorkflowException

No non-empty user prompt or media was available for the LLM

Error message

No non-empty user prompt or media was available for the LLM call. The execution started with an empty prompt or an upstream step produced empty output.

What it means

Error "No non-empty user prompt or media was available for the LLM call. The execution started with an empty prompt or an upstream step produced empty output." thrown in conductor-oss/conductor.

Source

Thrown at agentspan/src/main/java/org/conductoross/conductor/ai/agentspan/runtime/ai/AgentChatCompleteTaskMapper.java:305

            }
            for (ToolCall tc : msg.getToolCalls()) {
                String name = tc.getName() != null ? tc.getName() : "";
                if (WRITE_ONLY_TOOLS.stream().anyMatch(name::contains)) {
                    msg.setMessage("[ok]");
                    if (tc.getOutput() != null) {
                        Map<String, Object> compactedOutput = new HashMap<>(tc.getOutput());
                        compactedOutput.put("result", "[ok]");
                        tc.setOutput(compactedOutput);
                    }
                }
            }
        }
    }

    void validateRunnableConversation(ChatCompletion chatCompletion) {
        List<ChatMessage> messages = chatCompletion.getMessages();
        if (messages == null || messages.isEmpty()) {
            throw new TerminateWorkflowException(
                    "No non-empty user prompt or media was available for the LLM call. "
                            + "The execution started with an empty prompt or an upstream step produced empty output.");
        }

        boolean hasUserInput = messages.stream().anyMatch(this::isMeaningfulUserMessage);
        if (!hasUserInput) {
            throw new TerminateWorkflowException(
                    "No non-empty user prompt or media was available for the LLM call. "
                            + "The execution started with an empty prompt or an upstream step produced empty output.");
        }
    }

    private boolean isMeaningfulUserMessage(ChatMessage message) {
        return message != null
                && message.getRole() == ChatMessage.Role.user
                && (hasMeaningfulText(message.getMessage()) || hasMeaningfulMedia(message));
    }

View on GitHub (pinned to cf7c3e4a8a)

Solutions

  1. Provide a non-empty prompt, at least one media item, or non-empty context on the agent execution start request.
  2. Check the upstream step wiring; an upstream task producing empty output flows into this LLM call.
  3. Validate workflow input mappings so the prompt parameter is actually populated.

When it happens

Trigger: Thrown at agentspan/src/main/java/org/conductoross/conductor/ai/agentspan/runtime/ai/AgentChatCompleteTaskMapper.java:305 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of conductor-oss/conductor@cf7c3e4a8a (2026-08-14). Data as JSON: /api/errors/8631357204f31065. Report an issue: GitHub.