weaviate/weaviate · critical
could not check word presence: %w
Error message
could not check word presence: %w
What it means
individualWord starts by asking the remote contextionary IsWordPresent. If that RPC returns an error (as opposed to a clean 'false'), it is wrapped as 'could not check word presence: <err>' (note the double space in the message). This is a connectivity/remote failure, not an indication the word is missing — a missing word takes the individualWordNotPresent path instead.
Source
Thrown at modules/text2vec-contextionary/vectorizer/inspector.go:156
for _, word := range wordArray {
iw, err := i.individualWord(ctx, word)
if err != nil {
return nil, fmt.Errorf("word '%s': %w", word, err)
}
res = append(res, iw)
}
return res, nil
}
func (i *Inspector) individualWord(ctx context.Context,
word string,
) (*models.C11yWordsResponseIndividualWordsItems0, error) {
ok, err := i.client.IsWordPresent(ctx, word)
if err != nil {
return nil, fmt.Errorf("could not check word presence: %w", err)
}
if !ok {
return i.individualWordNotPresent(word), nil
}
return i.individualWordPresent(ctx, word)
}
func (i *Inspector) individualWordNotPresent(word string) *models.C11yWordsResponseIndividualWordsItems0 {
return &models.C11yWordsResponseIndividualWordsItems0{
Word: word,
Present: false,
}
}
func (i *Inspector) individualWordPresent(ctx context.Context,
word string,View on GitHub (pinned to 75aa4b6d11)
Solutions
- Verify the contextionary service is running and reachable (the wrapped error will show connection-refused if not).
- Retry the word inspection after restoring connectivity.
- Check the configured contextionary URI/port in Weaviate's environment configuration.
- Increase client timeouts if the failure is deadline-exceeded under heavy load.
Defensive patterns
Strategy: retry
Try / catch
present, err := client.IsWordPresent(ctx, word)
if err != nil {
if isConnectionErr(err) { /* retry / check contextionary */ }
return fmt.Errorf("word %q: %w", word, err)
} Prevention
- Check contextionary availability before word-inspection features.
- Use context timeouts so presence checks fail fast and cleanly.
- Retry transient gRPC errors with backoff.
- Monitor logs for connection-refused warnings (ModelUncontactable).
When it happens
Trigger: Calling GetWords when the contextionary is down/unreachable at the IsWordPresent step; gRPC transport errors, timeouts, or canceled contexts during the presence check.
Common situations: contextionary container not running, wrong port in configuration, transient network failures, deadline exceeded under load.
Related errors
- couldn't connect to remote contextionary gRPC server: %w
- could not get vector from remote: %w
- could not get nearest words by vector: %w
- remote shard %s
- get gRPC connection to %s: %w
AI-assisted analysis of weaviate/weaviate@75aa4b6d11 (2026-09-04).
Data as JSON: /api/errors/9fa4e81f0daaf52d.
Report an issue: GitHub.