CoplayDev/unity-mcp · error · NotSupportedException
Unknown audio provider
Error message
Unknown audio provider '{id}'. What it means
AssetGenProviders.Audio lowercases the provider id and switches over it, returning an adapter for known audio providers ('fal' only). Any other id hits default and throws NotSupportedException.
Solutions
- Use the supported audio provider id: 'fal'.
- Enumerate providers via AssetGenProviders.List() and filter by Kind == 'audio' before selecting.
- If you need an unlisted audio provider, it must be implemented and registered first.
Defensive patterns
Strategy: validation
Validate before calling
var supported = AssetGenProviders.List().Where(p => p.Kind == "audio").Select(p => p.Id).ToHashSet();
if (!supported.Contains(id.ToLowerInvariant()))
throw new ArgumentException($"Unknown audio provider '{id}'. Supported: {string.Join(", ", supported)}");
var adapter = AssetGenProviders.Audio(id); Type guard
static readonly HashSet<string> KnownAudioProviders = new HashSet<string> { "fal" };
static bool IsKnownAudioProvider(string id) => KnownAudioProviders.Contains((id ?? "").ToLowerInvariant()); Try / catch
try { var adapter = AssetGenProviders.Audio(id); }
catch (NotSupportedException ex) when (ex.Message.Contains("Unknown audio provider"))
{
var adapter = AssetGenProviders.Audio("fal");
} Prevention
- Only 'fal' is supported for audio today; validate against List().
- Do not forward image-only provider ids to the audio path.
- Re-check supported ids after upgrades, since the set may grow.
When it happens
Trigger: Calling Audio() with an id other than 'fal', such as 'elevenlabs', 'suno', or a typo.
Common situations: An AI/LLM hallucinating an audio provider; assuming a provider that exists for images also exists for audio; config referencing an unimplemented audio provider.
Related errors
- Unknown image provider
- Unknown marketplace provider
- Unknown model provider
- fal failed (status= )
- fal submit returned no request_id
AI-assisted analysis of CoplayDev/unity-mcp@c21bf496bc (2026-08-13).
Data as JSON: /api/errors/b5e137e4415380f5.
Report an issue: GitHub.
Appendix: source
Thrown at MCPForUnity/Editor/Services/AssetGen/Providers/AssetGenProviders.cs:48
switch ((id ?? string.Empty).ToLowerInvariant())
{
case "fal":
return new FalAdapter();
case "openrouter":
return new OpenRouterAdapter();
default:
throw new NotSupportedException($"Unknown image provider '{id}'.");
}
}
public static IAudioProviderAdapter Audio(string id)
{
switch ((id ?? string.Empty).ToLowerInvariant())
{
case "fal":
return new FalAudioAdapter();
default:
throw new NotSupportedException($"Unknown audio provider '{id}'.");
}
}
public static IMarketplaceProviderAdapter Marketplace(string id)
{
switch ((id ?? string.Empty).ToLowerInvariant())
{
case "sketchfab":
return new SketchfabAdapter();
default:
throw new NotSupportedException($"Unknown marketplace provider '{id}'.");
}
}
public static IReadOnlyList<ProviderInfo> List()
{
return new List<ProviderInfo>
{View on GitHub (pinned to c21bf496bc)