moeru-ai/airi · warning
Invalid transcription model "${currentModel}" detected. Rese
Error message
Invalid transcription model "${currentModel}" detected. Resetting to default "whisper-1". What it means
Emitted by the OpenAI-compatible audio transcription settings page in onMounted. The page validates the persisted transcription model with isValidTranscriptionModel(); if the stored value is not a recognized transcription model (e.g. a chat model such as gpt-4o-mini), it warns and overwrites the setting with 'whisper-1'. It is a self-healing guard against provider settings saved for a different provider kind, not a thrown exception.
Source
Thrown at packages/stage-pages/src/pages/settings/providers/transcription/openai-compatible-audio-transcription.vue:173
if (modelName.includes('gpt-4') && !modelName.includes('transcribe') && !modelName.includes('whisper'))
return false
return true
}
// Initialize provider settings on mount
onMounted(async () => {
providersStore.initializeProvider(providerId)
// Initialize baseUrl with default if not set
if (!providers.value[providerId]?.baseUrl) {
const defaultBaseUrl = providersStore.getDefaultProviderConfig(providerId).baseUrl as string | undefined
if (defaultBaseUrl) {
baseUrl.value = defaultBaseUrl
}
}
// Validate and reset model if it's invalid (e.g., a chat model)
const currentModel = model.value
if (currentModel && !isValidTranscriptionModel(currentModel)) {
console.warn(`Invalid transcription model "${currentModel}" detected. Resetting to default "whisper-1".`)
model.value = 'whisper-1'
}
// Load models if API key and base URL are configured
if (apiKey.value && baseUrl.value) {
await providersStore.loadModelsForConfiguredProviders()
await providersStore.fetchModelsForProvider(providerId)
}
})
// Watch for API key and base URL changes to reload models
watch([apiKey, baseUrl], async ([newApiKey, newBaseUrl]) => {
if (newApiKey && newBaseUrl) {
await providersStore.fetchModelsForProvider(providerId)
}
})
// Watch model changes to save to provider config
watch(model, () => {View on GitHub (pinned to 677329427f)
Solutions
- Let the auto-reset apply (the page already writes model = 'whisper-1'), then select a real transcription model in the provider settings and save
- Inspect the persisted providers store (localStorage) for the openai-compatible-audio-transcription entry and remove the stale model value
- If your endpoint offers transcription models the validator rejects, extend isValidTranscriptionModel to accept them
- With API key and base URL configured, let the page fetch models and pick one returned by the endpoint
Example fix
// before (settings page saves whatever the user typed)
model.value = selectedModelId
// after (validate at save time)
if (selectedModelId && !isValidTranscriptionModel(selectedModelId)) {
console.warn(`Invalid transcription model "${selectedModelId}" detected. Resetting to default "whisper-1".`)
model.value = 'whisper-1'
}
else {
model.value = selectedModelId
} Defensive patterns
Strategy: validation
Validate before calling
// Before saving the transcription model in provider settings
import { isValidTranscriptionModel } from '../validations'
function saveTranscriptionModel(value: string) {
if (!isValidTranscriptionModel(value)) {
console.warn(`Invalid transcription model "${value}" detected. Resetting to default "whisper-1".`)
return 'whisper-1'
}
return value
} Type guard
function isTranscriptionModelName(value: unknown): value is string {
return typeof value === 'string' && value.length > 0 && isValidTranscriptionModel(value)
} Prevention
- Validate the model field at save time, not only at page mount, so invalid values never persist
- When reusing provider configs across provider kinds, clear model fields that do not apply
- Extend the validator whenever you add a custom transcription endpoint with new model names
When it happens
Trigger: Opening Settings > Providers > openai-compatible-audio-transcription when the stored model value fails isValidTranscriptionModel(): a chat model id saved in the field earlier, a hand-edited providers localStorage entry, or a value left over from before this provider was split from a shared config.
Common situations: User pasted a chat model id into the transcription model field; settings persisted by an older app version where the model field was shared across provider kinds; a custom OpenAI-compatible endpoint whose transcription models are not on the validator's allowlist.
Related errors
- Failed to initialize transcription provider
- [Speech Pipeline] OpenAI Compatible: No model in provider co
- [Speech Pipeline] OpenAI Compatible: No voice in provider co
- Web Speech API is not available in this environment. It requ
- MiMo transcription failed: ${response.status} ${response.sta
AI-assisted analysis of moeru-ai/airi@677329427f (2026-08-18).
Data as JSON: /api/errors/aa1c5012b8ee7aaa.
Report an issue: GitHub.