weaviate/weaviate · error
empty config
Error message
empty config
What it means
classSettings.Validate for generative-nvidia returns 'empty config' when the module config (ClassConfig) is nil. Per the in-code comment, this is expected on cross-class requests like Explore{} where no per-class moduleConfig exists to validate.
Source
Thrown at modules/generative-nvidia/config/class_settings.go:46
var (
DefaultBaseURL = "https://integrate.api.nvidia.com"
DefaultNvidiaModel = "nvidia/llama-3.1-nemotron-51b-instruct"
)
type classSettings struct {
cfg moduletools.ClassConfig
propertyValuesHelper basesettings.PropertyValuesHelper
}
func NewClassSettings(cfg moduletools.ClassConfig) *classSettings {
return &classSettings{cfg: cfg, propertyValuesHelper: basesettings.NewPropertyValuesHelper("generative-nvidia")}
}
func (ic *classSettings) Validate(class *models.Class) error {
if ic.cfg == nil {
// we would receive a nil-config on cross-class requests, such as Explore{}
return errors.New("empty config")
}
if err := ic.propertyValuesHelper.ValidateBaseURL(ic.BaseURL()); err != nil {
return err
}
return nil
}
func (ic *classSettings) BaseURL() string {
return ic.propertyValuesHelper.GetPropertyAsString(ic.cfg, baseURLProperty, DefaultBaseURL)
}
func (ic *classSettings) Model() string {
return ic.propertyValuesHelper.GetPropertyAsString(ic.cfg, modelProperty, DefaultNvidiaModel)
}
func (ic *classSettings) Temperature() *float64 {
return ic.propertyValuesHelper.GetPropertyAsFloat64(ic.cfg, temperatureProperty, nil)
}View on GitHub (pinned to 75aa4b6d11)
Solutions
- Use class-scoped Get{} queries with proper moduleConfig instead of Explore{} where validation matters.
- If hit during JoinNode/cluster sync, ensure the class definition in the schema carries its generative-nvidia moduleConfig.
- Treat as an expected guard on cross-class requests; report upstream if it appears on normal class requests.
- Check the class schema moduleConfig for generative-nvidia is present and non-empty.
Defensive patterns
Strategy: try-catch
Validate before calling
// ensure class schema carries moduleConfig before cluster ops
const cfg = schema.classes.find(c => c.class === 'Doc').moduleConfig?.['generative-nvidia'];
if (!cfg) throw new Error('class missing generative-nvidia moduleConfig'); Try / catch
try:
client.query.explore(...)
except WeaviateError as e:
if 'empty config' in str(e):
log.info('cross-class request: module config unavailable')
else:
raise Prevention
- Define class-level moduleConfig for generative-nvidia.
- Use class-scoped queries for generation features.
- Verify schema sync during JoinNode operations.
- Treat nil-config cross-class validation as expected.
When it happens
Trigger: Cross-class requests such as Explore{} (noted as called by JoinNode in this path) reaching generative-nvidia settings validation with nil cfg.
Common situations: Explore{} queries in deployments with generative-nvidia enabled; cluster join/node-sync paths validating classes without class-level moduleConfig; rarely a user misconfiguration.
Related errors
AI-assisted analysis of weaviate/weaviate@75aa4b6d11 (2026-09-04).
Data as JSON: /api/errors/3114e3077716c594.
Report an issue: GitHub.