invoke-ai/InvokeAI · error · ExternalProviderCapabilityError
Mode '{request.mode}' is not supported by {request.model.nam
Error message
Mode '{request.mode}' is not supported by {request.model.name} What it means
ExternalProviderCapabilityError raised by _validate_request when request.mode is not present in the model's capabilities.modes list. The requested generation mode (e.g. text2img, img2img, inpaint) is not offered by that external model.
Source
Thrown at invokeai/app/services/external_generation/external_generation_default.py:106
time.sleep(delay)
raise ExternalProviderRateLimitError("Rate limit exceeded after all retries")
def get_provider_statuses(self) -> dict[str, ExternalProviderStatus]:
return {provider_id: provider.get_status() for provider_id, provider in self._providers.items()}
def _validate_request(self, request: ExternalGenerationRequest) -> None:
capabilities = request.model.capabilities
self._logger.debug(
"Validating external request provider=%s model=%s mode=%s supported=%s",
request.model.provider_id,
request.model.provider_model_id,
request.mode,
capabilities.modes,
)
if request.mode not in capabilities.modes:
raise ExternalProviderCapabilityError(f"Mode '{request.mode}' is not supported by {request.model.name}")
if request.reference_images and not capabilities.supports_reference_images:
raise ExternalProviderCapabilityError(f"Reference images are not supported by {request.model.name}")
if capabilities.max_reference_images is not None:
if len(request.reference_images) > capabilities.max_reference_images:
raise ExternalProviderCapabilityError(
f"{request.model.name} supports at most {capabilities.max_reference_images} reference images"
)
if capabilities.max_images_per_request is not None and request.num_images > capabilities.max_images_per_request:
raise ExternalProviderCapabilityError(
f"{request.model.name} supports at most {capabilities.max_images_per_request} images per request"
)
if capabilities.max_image_size is not None:
if request.width > capabilities.max_image_size.width or request.height > capabilities.max_image_size.height:
raise ExternalProviderCapabilityError(View on GitHub (pinned to 0b6a024f2f)
Solutions
- Use a mode listed in the model's capabilities.modes
- Select a different model that supports the desired mode
- Refresh model capabilities (_refresh_model_capabilities) so the model's mode list is current
- Fix UI/workflow code that sends a stale mode with the request
Example fix
// before
request.mode = "inpaint" # model only supports text2img
// after
if "inpaint" in model.capabilities.modes:
request.mode = "inpaint"
else:
request.mode = "text2img" Defensive patterns
Strategy: validation
Validate before calling
if request.mode not in request.model.capabilities.modes:
request.mode = request.model.capabilities.modes[0] Type guard
def mode_supported(model, mode: str) -> bool:
return mode in model.capabilities.modes Try / catch
try:
result = service.generate(request)
except ExternalProviderCapabilityError:
request.mode = request.model.capabilities.modes[0]
result = service.generate(request) Prevention
- Derive the mode selector UI from model.capabilities.modes
- Reset mode to a supported default whenever the selected model changes
- Keep model capability metadata refreshed from the provider
- Unit-test workflow templates against each model's capability set
When it happens
Trigger: generate() called with a request whose mode (from ExternalGenerationRequest) fails the `request.mode not in capabilities.modes` check for the selected model.
Common situations: Selecting an inpaint mode against a pure text-to-image model; UI state retaining an old mode after the user switched models; model capability metadata outdated relative to what the provider actually offers.
Related errors
- Reference images are not supported by {request.model.name}
- {request.model.name} supports at most {capabilities.max_refe
- {request.model.name} supports at most {capabilities.max_imag
- {request.model.name} supports a maximum size of {capabilitie
- {request.model.name} does not support aspect ratio {ratio_la
AI-assisted analysis of invoke-ai/InvokeAI@0b6a024f2f (2026-08-29).
Data as JSON: /api/errors/e1ab5e1dfffe2904.
Report an issue: GitHub.