weaviate/weaviate · error
vectorize move to: %v
Error message
vectorize move to: %v
What it means
Raised in vectorFromNearTextParam when vectorizing the moveTo target fails: either the moveTo concepts could not be embedded by the module vectorizer, or (inside vectorFromValuesAndObjects) an object-referenced vector could not be fetched via findVectorFn. The underlying cause is wrapped with the 'vectorize move to: %v' prefix.
Source
Thrown at usecases/modulecomponents/arguments/nearText/searcher.go:71
return s.vectorFromNearTextParam(ctx, params.(*NearTextParams), className, findVectorFn, cfg)
}
func (s *vectorForParams[T]) vectorFromNearTextParam(ctx context.Context,
params *NearTextParams, className string, findVectorFn modulecapabilities.FindVectorFn[T],
cfg moduletools.ClassConfig,
) (T, error) {
tenant := cfg.Tenant()
vector, err := s.vectorizer.Texts(ctx, params.Values, cfg)
if err != nil {
return nil, errors.Errorf("vectorize keywords: %v", err)
}
moveTo := params.MoveTo
if moveTo.Force > 0 && (len(moveTo.Values) > 0 || len(moveTo.Objects) > 0) {
moveToVector, err := s.vectorFromValuesAndObjects(ctx, moveTo.Values,
moveTo.Objects, className, findVectorFn, cfg, tenant)
if err != nil {
return nil, errors.Errorf("vectorize move to: %v", err)
}
afterMoveTo, err := s.movements.MoveTo(vector, moveToVector, moveTo.Force)
if err != nil {
return nil, err
}
vector = afterMoveTo
}
moveAway := params.MoveAwayFrom
if moveAway.Force > 0 && (len(moveAway.Values) > 0 || len(moveAway.Objects) > 0) {
moveAwayVector, err := s.vectorFromValuesAndObjects(ctx, moveAway.Values,
moveAway.Objects, className, findVectorFn, cfg, tenant)
if err != nil {
return nil, errors.Errorf("vectorize move away from: %v", err)
}
afterMoveFrom, err := s.movements.MoveAwayFrom(vector, moveAwayVector, moveAway.Force)View on GitHub (pinned to 75aa4b6d11)
Solutions
- Inspect the wrapped inner error to distinguish vectorizer failure vs. object lookup failure
- If using moveTo objects, verify the UUID/beacon exists in the same class (and same tenant)
- Fix the beacon format (must be a valid weaviate cross-ref beacon) or use id directly
- If using moveTo concepts, check vectorizer health/credentials as with the main concepts
- Retry transient vectorizer failures with backoff
Example fix
// before
moveTo: { force: 0.5, objects: [{ beacon: "weaviate://wrong-host/Article/uuid" }] }
// after
moveTo: { force: 0.5, objects: [{ id: "00000000-0000-0000-0000-000000000001" }] } Defensive patterns
Strategy: validation
Validate before calling
import uuid
for obj in move_to.get('objects', []):
if 'id' in obj:
uuid.UUID(obj['id']) # raises on malformed id
if 'beacon' in obj and not obj['beacon'].startswith('weaviate://'):
raise ValueError('invalid beacon format') Type guard
function isValidMoveTarget(m: { force?: number; concepts?: string[]; objects?: { id?: string; beacon?: string }[] }): boolean {
const UUID = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
return (m.objects ?? []).every(o => (o.id && UUID.test(o.id)) || !!o.beacon);
} Try / catch
try:
res = client.query.get('Article').with_near_text({'concepts': c, 'moveTo': {'force': 0.5, 'objects': [{'id': ref_id}]}}).do()
except weaviate.exceptions.UnexpectedStatusCodeException as e:
if 'vectorize move to' in str(e):
# verify referenced object exists in this class/tenant, then retry
logger.warning('moveTo vectorization failed: %s', e)
else:
raise Prevention
- Verify moveTo object references exist (and belong to the active tenant) before searching
- Use id rather than hand-built beacons when possible; generate beacons via client helpers
- Validate concept strings for moveTo the same way as main concepts
- Handle transient vectorizer failures with retry/backoff
When it happens
Trigger: A nearText query with `moveTo: { force: >0, concepts: [...] }` where Texts() fails on the move-to concepts, or `moveTo: { force: >0, objects: [{ id/beacon }] }` where findVectorFn fails — object does not exist, wrong className, cross-ref beacon unparseable, or tenant mismatch in multi-tenancy.
Common situations: moveTo objects referencing deleted or non-existent UUIDs; beacon strings malformed (wrong format for weaviate://... beacons); multi-tenant collections where the object lives in another tenant; the move-to concept strings hitting a vectorizer API error (auth/rate-limit).
Related errors
- vectorize keywords: %v
- inputs are not equal to vectors returned
- empty vector
- configured properties don't exist or are not of text or blob
- vectorizing text data is not supported for multi2multivec-we
AI-assisted analysis of weaviate/weaviate@75aa4b6d11 (2026-09-04).
Data as JSON: /api/errors/c0c3d822d3e55071.
Report an issue: GitHub.