moeru-ai/airi · warning
[markdown-stress] No active provider/model for online mode
Error message
[markdown-stress] No active provider/model for online mode
What it means
The markdown-stress devtools module disables its online scenario when no chat provider instance can be resolved from activeProvider, or activeModel is unset. runOnlineScenario() sets canRunOnline to false, calls stopCapture(), and returns - the stress test cannot stream assistant markdown without an LLM backend.
Source
Thrown at packages/stage-ui/src/stores/markdown-stress.ts:300
function generatePreview() {
const next = generateScenario()
scenario.value = next
payloadPreview.value = [
`User (t=0ms): ${next.userMessages[0].text}`,
`User (t=${next.userMessages[1].atMs}ms): ${next.userMessages[1].text}`,
'--- Assistant stream ---',
next.assistant.text,
].join('\n\n')
}
async function runOnlineScenario() {
const chatStore = useChatStore()
const targetScenario = ensureScenario()
const provider = await providersStore.getProviderInstance(activeProvider.value) as ChatProvider | undefined
if (!provider || !activeModel.value) {
console.warn('[markdown-stress] No active provider/model for online mode')
canRunOnline.value = false
stopCapture()
return
}
canRunOnline.value = true
const runStart = performance.now()
for (const message of targetScenario.userMessages) {
const delay = Math.max(0, runStart + message.atMs - performance.now())
const timer = setTimeout(async () => {
try {
await chatStore.ingest(message.text, {
model: activeModel.value!,
chatProvider: provider,
})
}
catch (error) {
console.error('[markdown-stress] Online send failed', error)View on GitHub (pinned to 677329427f)
Solutions
- Configure and select a working chat provider and model in settings, including required API keys
- Verify the provider resolves: getProviderInstance(activeProvider) should return an instance with a chat().stream implementation
- Re-run the scenario after configuration - canRunOnline is re-evaluated on the next attempt
- For provider-less runs, use the offline capture mode rather than online mode
Defensive patterns
Strategy: validation
Validate before calling
const provider = await providersStore.getProviderInstance(activeProvider.value)
if (!provider || !activeModel.value) {
canRunOnline.value = false
showConfigureProviderPrompt()
return
} Prevention
- Configure and verify a chat provider before enabling online stress scenarios
- Smoke-test getProviderInstance resolution when provider settings change
- Default devtools to offline capture mode until a provider is confirmed
When it happens
Trigger: Opening the markdown stress devtool before any chat provider is configured; activeProvider referencing a provider whose instantiation fails (missing API key, removed entry); cleared or reset settings while the devtool page is open.
Common situations: Fresh environment after clone/reset; provider credentials half-filled so getProviderInstance resolves to undefined; switching providers without re-running the scenario.
Related errors
- link failed
- Invalid transcription model "${currentModel}" detected. Rese
- [Speech Pipeline] OpenAI Compatible: No model in provider co
- [Speech Pipeline] OpenAI Compatible: No voice in provider co
- Plugin host debug bridge is not available in this runtime.
AI-assisted analysis of moeru-ai/airi@677329427f (2026-08-18).
Data as JSON: /api/errors/e3a3ca2d4104176a.
Report an issue: GitHub.