xtekky/gpt4free · warning · ValueError
Label must be provided
Error message
Label must be provided
What it means
ValueError from ProviderUtils.get_by_label() guarding against empty lookup input. The method resolves a provider by exact name first, then by prefix match over _provider_names; an empty/None label cannot match anything meaningfully, so it fails fast before searching.
Source
Thrown at g4f/Provider/__init__.py:515
return [(k, self[k]) for k in _provider_names]
def get(self, item, default=None):
try:
return self[item]
except KeyError:
return default
__map__ = _ConvertDict()
class ProviderUtils:
convert = __map__
@classmethod
def get_by_label(cls, label: str) -> ProviderType:
if not label:
raise ValueError("Label must be provided")
# Check explicit map
try:
return __getattr__(label)
except AttributeError:
pass
# Fallback to search
for provider_name in _provider_names:
if provider_name.lower().startswith(label.lower()):
provider = __map__[provider_name]
if provider.working:
return provider
raise ValueError(f"Provider with label '{label}' not found")
import sysView on GitHub (pinned to 973504e177)
Solutions
- Default the label to a real provider name: get_by_label(label or 'DeepInfra')
- Validate config before calling: reject empty provider settings with a clear message
- Skip provider selection entirely when the field is empty (use client default)
Example fix
# before
provider = ProviderUtils.get_by_label(os.getenv('G4F_PROVIDER', ''))
# after
label = os.getenv('G4F_PROVIDER') or 'DeepInfra'
provider = ProviderUtils.get_by_label(label) Defensive patterns
Strategy: validation
Validate before calling
if not label or not label.strip():
raise ValueError('provider label missing') # clearer than the library's message
provider = ProviderUtils.get_by_label(label.strip()) Type guard
def is_valid_label(label) -> bool:
return isinstance(label, str) and bool(label.strip()) Try / catch
try:
provider = ProviderUtils.get_by_label(label or '')
except ValueError:
provider = default_provider Prevention
- Never forward optional env/config values unchecked into label lookup
- Provide a sensible default provider in config schemas
When it happens
Trigger: Calling ProviderUtils.get_by_label('') or get_by_label(None), typically because an optional config field defaulted to empty string.
Common situations: Config-driven code like get_by_label(os.getenv('G4F_PROVIDER', '')) where the env var is unset; form inputs left blank; CLI flags with empty defaults.
Related errors
- Provider '{item}' not found
- Provider with label '{label}' not found
- Prompt is empty.
- Prompt is empty.
- Prompt is empty.
AI-assisted analysis of xtekky/gpt4free@973504e177 (2026-08-14).
Data as JSON: /api/errors/18ef3864aadc55d4.
Report an issue: GitHub.